From 429f941cdaed1dbf8d77e4e25c27e3dc90ae269a Mon Sep 17 00:00:00 2001
From: Evgenii Stratonikov <e.stratonikov@yadro.com>
Date: Wed, 6 Sep 2023 17:18:04 +0300
Subject: [PATCH] [#668] shard/test: Release shard in t.Cleanup()

Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
---
 pkg/local_object_storage/shard/delete_test.go | 1 -
 pkg/local_object_storage/shard/get_test.go    | 1 -
 pkg/local_object_storage/shard/head_test.go   | 1 -
 pkg/local_object_storage/shard/inhume_test.go | 1 -
 pkg/local_object_storage/shard/list_test.go   | 2 --
 pkg/local_object_storage/shard/shard_test.go  | 4 +++-
 6 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/pkg/local_object_storage/shard/delete_test.go b/pkg/local_object_storage/shard/delete_test.go
index 8ee613186..3421ac9e0 100644
--- a/pkg/local_object_storage/shard/delete_test.go
+++ b/pkg/local_object_storage/shard/delete_test.go
@@ -28,7 +28,6 @@ func TestShard_Delete(t *testing.T) {
 
 func testShardDelete(t *testing.T, hasWriteCache bool) {
 	sh := newShard(t, hasWriteCache)
-	defer releaseShard(sh, t)
 
 	cnr := cidtest.ID()
 
diff --git a/pkg/local_object_storage/shard/get_test.go b/pkg/local_object_storage/shard/get_test.go
index d3aeb5339..19a5e8d70 100644
--- a/pkg/local_object_storage/shard/get_test.go
+++ b/pkg/local_object_storage/shard/get_test.go
@@ -32,7 +32,6 @@ func TestShard_Get(t *testing.T) {
 
 func testShardGet(t *testing.T, hasWriteCache bool) {
 	sh := newShard(t, hasWriteCache)
-	defer releaseShard(sh, t)
 
 	var putPrm PutPrm
 	var getPrm GetPrm
diff --git a/pkg/local_object_storage/shard/head_test.go b/pkg/local_object_storage/shard/head_test.go
index bf6ba990b..dfae48e84 100644
--- a/pkg/local_object_storage/shard/head_test.go
+++ b/pkg/local_object_storage/shard/head_test.go
@@ -30,7 +30,6 @@ func TestShard_Head(t *testing.T) {
 
 func testShardHead(t *testing.T, hasWriteCache bool) {
 	sh := newShard(t, hasWriteCache)
-	defer releaseShard(sh, t)
 
 	var putPrm PutPrm
 	var headPrm HeadPrm
diff --git a/pkg/local_object_storage/shard/inhume_test.go b/pkg/local_object_storage/shard/inhume_test.go
index 33d483b5e..6c8e46faf 100644
--- a/pkg/local_object_storage/shard/inhume_test.go
+++ b/pkg/local_object_storage/shard/inhume_test.go
@@ -27,7 +27,6 @@ func TestShard_Inhume(t *testing.T) {
 
 func testShardInhume(t *testing.T, hasWriteCache bool) {
 	sh := newShard(t, hasWriteCache)
-	defer releaseShard(sh, t)
 
 	cnr := cidtest.ID()
 
diff --git a/pkg/local_object_storage/shard/list_test.go b/pkg/local_object_storage/shard/list_test.go
index 33b94ce06..9ca1753c4 100644
--- a/pkg/local_object_storage/shard/list_test.go
+++ b/pkg/local_object_storage/shard/list_test.go
@@ -18,14 +18,12 @@ func TestShard_List(t *testing.T) {
 	t.Run("without write cache", func(t *testing.T) {
 		t.Parallel()
 		sh := newShard(t, false)
-		defer releaseShard(sh, t)
 		testShardList(t, sh)
 	})
 
 	t.Run("with write cache", func(t *testing.T) {
 		t.Parallel()
 		shWC := newShard(t, true)
-		defer releaseShard(shWC, t)
 		testShardList(t, shWC)
 	})
 }
diff --git a/pkg/local_object_storage/shard/shard_test.go b/pkg/local_object_storage/shard/shard_test.go
index d1bfc0880..1550af5c0 100644
--- a/pkg/local_object_storage/shard/shard_test.go
+++ b/pkg/local_object_storage/shard/shard_test.go
@@ -31,10 +31,12 @@ func (s epochState) CurrentEpoch() uint64 {
 }
 
 func newShard(t testing.TB, enableWriteCache bool) *Shard {
-	return newCustomShard(t, t.TempDir(), enableWriteCache,
+	sh := newCustomShard(t, t.TempDir(), enableWriteCache,
 		writecacheconfig.Options{Type: writecacheconfig.TypeBBolt},
 		nil,
 		nil)
+	t.Cleanup(func() { releaseShard(sh, t) })
+	return sh
 }
 
 func newCustomShard(t testing.TB, rootPath string, enableWriteCache bool, wcOpts writecacheconfig.Options, bsOpts []blobstor.Option, metaOptions []meta.Option) *Shard {