diff --git a/storagenode/piecestore/endpoint_test.go b/storagenode/piecestore/endpoint_test.go index 81b1bfafe..0ed19fd51 100644 --- a/storagenode/piecestore/endpoint_test.go +++ b/storagenode/piecestore/endpoint_test.go @@ -85,13 +85,29 @@ func TestUploadAndPartialDownload(t *testing.T) { // check rough limits for the upload and download totalUpload := int64(len(expectedData)) - t.Log(totalUpload, totalBandwidthUsage.Put, int64(len(planet.StorageNodes))*totalUpload) - assert.True(t, totalUpload < totalBandwidthUsage.Put && totalBandwidthUsage.Put < int64(len(planet.StorageNodes))*totalUpload) + totalUploadOrderMax := calcUploadOrderMax(totalUpload) + t.Log(totalUpload, totalBandwidthUsage.Put, totalUploadOrderMax, int64(len(planet.StorageNodes))*totalUploadOrderMax) + assert.True(t, totalUpload < totalBandwidthUsage.Put && totalBandwidthUsage.Put < int64(len(planet.StorageNodes))*totalUploadOrderMax) t.Log(totalDownload, totalBandwidthUsage.Get, int64(len(planet.StorageNodes))*totalDownload) assert.True(t, totalBandwidthUsage.Get < int64(len(planet.StorageNodes))*totalDownload) }) } +func calcUploadOrderMax(size int64) (ordered int64) { + initialStep := 64 * memory.KiB.Int64() + maxStep := 256 * memory.KiB.Int64() + currentStep := initialStep + ordered = 0 + for ordered < size { + ordered += currentStep + currentStep = currentStep * 3 / 2 + if currentStep > maxStep { + currentStep = maxStep + } + } + return ordered +} + func TestUpload(t *testing.T) { testplanet.Run(t, testplanet.Config{ SatelliteCount: 1, StorageNodeCount: 1, UplinkCount: 1,