From 33dc88b374a8ae8ce011b8360ba1a53ba57b0620 Mon Sep 17 00:00:00 2001 From: Alexander Chuprov Date: Wed, 29 Nov 2023 10:46:46 +0300 Subject: [PATCH] [#651] shard/test: Refactor Shard_Delete Signed-off-by: Alexander Chuprov --- pkg/local_object_storage/shard/delete_test.go | 98 +++++++------------ 1 file changed, 37 insertions(+), 61 deletions(-) diff --git a/pkg/local_object_storage/shard/delete_test.go b/pkg/local_object_storage/shard/delete_test.go index 910528f8..846cb0e3 100644 --- a/pkg/local_object_storage/shard/delete_test.go +++ b/pkg/local_object_storage/shard/delete_test.go @@ -12,88 +12,64 @@ import ( "github.com/stretchr/testify/require" ) -func TestShard_Delete(t *testing.T) { - t.Parallel() - - t.Run("without write cache", func(t *testing.T) { +func TestShard_Delete_SmallObject(t *testing.T) { + t.Run("small object without write cache", func(t *testing.T) { t.Parallel() - testShardDelete(t, false) + testShard(t, false, 1<<5) }) - t.Run("with write cache", func(t *testing.T) { + t.Run("small object with write cache", func(t *testing.T) { t.Parallel() - testShardDelete(t, true) + testShard(t, true, 1<<5) }) } -func testShardDelete(t *testing.T, hasWriteCache bool) { +func TestShard_Delete_BigObject(t *testing.T) { + t.Run("big object without write cache", func(t *testing.T) { + t.Parallel() + testShard(t, false, 1<<20) + }) + + t.Run("big object with write cache", func(t *testing.T) { + t.Parallel() + testShard(t, true, 1<<20) + }) +} + +func testShard(t *testing.T, hasWriteCache bool, payloadSize int) { sh := newShard(t, hasWriteCache) cnr := cidtest.ID() obj := testutil.GenerateObjectWithCID(cnr) testutil.AddAttribute(obj, "foo", "bar") + testutil.AddPayload(obj, payloadSize) var putPrm PutPrm + putPrm.SetObject(obj) + var getPrm GetPrm + getPrm.SetAddress(object.AddressOf(obj)) - t.Run("big object", func(t *testing.T) { - testutil.AddPayload(obj, 1<<20) + var delPrm DeletePrm + delPrm.SetAddresses(object.AddressOf(obj)) - putPrm.SetObject(obj) - getPrm.SetAddress(object.AddressOf(obj)) + _, err := sh.Put(context.Background(), putPrm) + require.NoError(t, err) - var delPrm DeletePrm - delPrm.SetAddresses(object.AddressOf(obj)) + _, err = testGet(t, sh, getPrm, hasWriteCache) + require.NoError(t, err) - _, err := sh.Put(context.Background(), putPrm) - require.NoError(t, err) - - _, err = testGet(t, sh, getPrm, hasWriteCache) - require.NoError(t, err) - - if hasWriteCache { - require.Eventually(t, func() bool { - _, err = sh.Delete(context.Background(), delPrm) - return err == nil - }, 30*time.Second, 100*time.Millisecond) - } else { + if hasWriteCache { + require.Eventually(t, func() bool { _, err = sh.Delete(context.Background(), delPrm) - require.NoError(t, err) - } - - _, err = sh.Get(context.Background(), getPrm) - require.True(t, client.IsErrObjectNotFound(err)) - }) - - t.Run("small object", func(t *testing.T) { - obj := testutil.GenerateObjectWithCID(cnr) - testutil.AddAttribute(obj, "foo", "bar") - testutil.AddPayload(obj, 1<<5) - - putPrm.SetObject(obj) - getPrm.SetAddress(object.AddressOf(obj)) - - var delPrm DeletePrm - delPrm.SetAddresses(object.AddressOf(obj)) - - _, err := sh.Put(context.Background(), putPrm) + return err == nil + }, 30*time.Second, 10*time.Millisecond) + } else { + _, err = sh.Delete(context.Background(), delPrm) require.NoError(t, err) + } - _, err = sh.Get(context.Background(), getPrm) - require.NoError(t, err) - - if hasWriteCache { - require.Eventually(t, func() bool { - _, err = sh.Delete(context.Background(), delPrm) - return err == nil - }, 10*time.Second, 100*time.Millisecond) - } else { - _, err = sh.Delete(context.Background(), delPrm) - require.NoError(t, err) - } - - _, err = sh.Get(context.Background(), getPrm) - require.True(t, client.IsErrObjectNotFound(err)) - }) + _, err = sh.Get(context.Background(), getPrm) + require.True(t, client.IsErrObjectNotFound(err)) }