From 4ecafa250e832c071cd90a421c8c172f463f0ce4 Mon Sep 17 00:00:00 2001 From: Aman Mangal Date: Thu, 23 Mar 2023 04:22:58 +0530 Subject: [PATCH] cleanup sstable file after tests (#1912) --- badger/cmd/pick_table_bench.go | 7 +++++++ iterator_test.go | 1 + table/builder_test.go | 2 ++ table/table_test.go | 27 ++++++++++++++++----------- 4 files changed, 26 insertions(+), 11 deletions(-) diff --git a/badger/cmd/pick_table_bench.go b/badger/cmd/pick_table_bench.go index d4d2d2878..a7fa74cec 100644 --- a/badger/cmd/pick_table_bench.go +++ b/badger/cmd/pick_table_bench.go @@ -74,6 +74,13 @@ func pickTableBench(cmd *cobra.Command, args []string) error { boundaries := getBoundaries(db) tables := genTables(boundaries) + defer func() { + for _, tbl := range tables { + if err := tbl.DecrRef(); err != nil { + panic(err) + } + } + }() handler.init(tables) keys, err = getSampleKeys(db, pickOpts.sampleSize) y.Check(err) diff --git a/iterator_test.go b/iterator_test.go index a6670e9e3..a80a4394e 100644 --- a/iterator_test.go +++ b/iterator_test.go @@ -84,6 +84,7 @@ func TestPickSortTables(t *testing.T) { opts := table.Options{ChkMode: options.OnTableAndBlockRead} tbl := buildTable(t, [][]string{{mk.small, "some value"}, {mk.large, "some value"}}, opts) + defer func() { require.NoError(t, tbl.DecrRef()) }() out = append(out, tbl) } return out diff --git a/table/builder_test.go b/table/builder_test.go index 157858c63..0045b8887 100644 --- a/table/builder_test.go +++ b/table/builder_test.go @@ -143,6 +143,7 @@ func TestInvalidCompression(t *testing.T) { keyPrefix := "key" opts := Options{BlockSize: 4 << 10, Compression: options.ZSTD} tbl := buildTestTable(t, keyPrefix, 1000, opts) + defer func() { require.NoError(t, tbl.DecrRef()) }() mf := tbl.MmapFile t.Run("with correct decompression algo", func(t *testing.T) { _, err := OpenTable(mf, opts) @@ -237,6 +238,7 @@ func TestBloomfilter(t *testing.T) { opts.BloomFalsePositive = 0.01 } tab := buildTestTable(t, keyPrefix, keyCount, opts) + defer func() { require.NoError(t, tab.DecrRef()) }() require.Equal(t, withBlooms, tab.hasBloomFilter) // Forward iteration it := tab.NewIterator(0) diff --git a/table/table_test.go b/table/table_test.go index bd6609831..378390f7f 100644 --- a/table/table_test.go +++ b/table/table_test.go @@ -367,7 +367,6 @@ func TestConcatIteratorOneTable(t *testing.T) { {"k1", "a1"}, {"k2", "a2"}, }, opts) - defer func() { require.NoError(t, tbl.DecrRef()) }() it := NewConcatIterator([]*Table{tbl}, 0) @@ -385,10 +384,10 @@ func TestConcatIteratorOneTable(t *testing.T) { func TestConcatIterator(t *testing.T) { opts := getTestTableOptions() tbl := buildTestTable(t, "keya", 10000, opts) - tbl2 := buildTestTable(t, "keyb", 10000, opts) - tbl3 := buildTestTable(t, "keyc", 10000, opts) defer func() { require.NoError(t, tbl.DecrRef()) }() + tbl2 := buildTestTable(t, "keyb", 10000, opts) defer func() { require.NoError(t, tbl2.DecrRef()) }() + tbl3 := buildTestTable(t, "keyc", 10000, opts) defer func() { require.NoError(t, tbl3.DecrRef()) }() { @@ -464,11 +463,14 @@ func TestMergingIterator(t *testing.T) { {"k4", "a4"}, {"k5", "a5"}, }, opts) + defer func() { require.NoError(t, tbl1.DecrRef()) }() + tbl2 := buildTable(t, [][]string{ {"k2", "b2"}, {"k3", "b3"}, {"k4", "b4"}, }, opts) + defer func() { require.NoError(t, tbl2.DecrRef()) }() expected := []struct { key string @@ -480,8 +482,7 @@ func TestMergingIterator(t *testing.T) { {"k4", "a4"}, {"k5", "a5"}, } - defer func() { require.NoError(t, tbl1.DecrRef()) }() - defer func() { require.NoError(t, tbl2.DecrRef()) }() + it1 := tbl1.NewIterator(0) it2 := NewConcatIterator([]*Table{tbl2}, 0) it := NewMergeIterator([]y.Iterator{it1, it2}, false) @@ -508,12 +509,15 @@ func TestMergingIteratorReversed(t *testing.T) { {"k4", "a4"}, {"k5", "a5"}, }, opts) + defer func() { require.NoError(t, tbl1.DecrRef()) }() + tbl2 := buildTable(t, [][]string{ {"k1", "b2"}, {"k3", "b3"}, {"k4", "b4"}, {"k5", "b5"}, }, opts) + defer func() { require.NoError(t, tbl2.DecrRef()) }() expected := []struct { key string @@ -525,8 +529,7 @@ func TestMergingIteratorReversed(t *testing.T) { {"k2", "a2"}, {"k1", "a1"}, } - defer func() { require.NoError(t, tbl1.DecrRef()) }() - defer func() { require.NoError(t, tbl2.DecrRef()) }() + it1 := tbl1.NewIterator(REVERSED) it2 := NewConcatIterator([]*Table{tbl2}, REVERSED) it := NewMergeIterator([]y.Iterator{it1, it2}, true) @@ -553,9 +556,8 @@ func TestMergingIteratorTakeOne(t *testing.T) { {"k1", "a1"}, {"k2", "a2"}, }, opts) - t2 := buildTable(t, [][]string{{"l1", "b1"}}, opts) - defer func() { require.NoError(t, t1.DecrRef()) }() + t2 := buildTable(t, [][]string{{"l1", "b1"}}, opts) defer func() { require.NoError(t, t2.DecrRef()) }() it1 := NewConcatIterator([]*Table{t1}, 0) @@ -594,12 +596,12 @@ func TestMergingIteratorTakeOne(t *testing.T) { func TestMergingIteratorTakeTwo(t *testing.T) { opts := getTestTableOptions() t1 := buildTable(t, [][]string{{"l1", "b1"}}, opts) + defer func() { require.NoError(t, t1.DecrRef()) }() + t2 := buildTable(t, [][]string{ {"k1", "a1"}, {"k2", "a2"}, }, opts) - - defer func() { require.NoError(t, t1.DecrRef()) }() defer func() { require.NoError(t, t2.DecrRef()) }() it1 := NewConcatIterator([]*Table{t1}, 0) @@ -681,6 +683,7 @@ func TestTableChecksum(t *testing.T) { opts := getTestTableOptions() opts.ChkMode = options.OnTableAndBlockRead tbl := buildTestTable(t, "k", 10000, opts) + defer func() { require.NoError(t, tbl.DecrRef()) }() // Write random bytes at random location. start := rand.Intn(len(tbl.Data) - len(rb)) n := copy(tbl.Data[start:], rb) @@ -691,6 +694,8 @@ func TestTableChecksum(t *testing.T) { _, err := OpenTable(tbl.MmapFile, opts) if strings.Contains(err.Error(), "checksum") { panic("checksum mismatch") + } else { + require.NoError(t, err) } }) }