Skip to content

Commit

Permalink
chore: refactor cleanup fn in mvcc test
Browse files Browse the repository at this point in the history
The tmp path is cleanup by go testing so that the `cleanup` doesn't need
to call `os.Remove`.

Signed-off-by: Wei Fu <[email protected]>
  • Loading branch information
fuweid committed Mar 19, 2023
1 parent 830d9e9 commit eb09e00
Show file tree
Hide file tree
Showing 9 changed files with 128 additions and 138 deletions.
12 changes: 6 additions & 6 deletions server/storage/mvcc/hash_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ import (
// output which would have catastrophic consequences. Expected output is just
// hardcoded, so please regenerate it every time you change input parameters.
func TestHashByRevValue(t *testing.T) {
b, tmpPath := betesting.NewDefaultTmpBackend(t)
b, _ := betesting.NewDefaultTmpBackend(t)
s := NewStore(zaptest.NewLogger(t), b, &lease.FakeLessor{}, StoreConfig{})
defer cleanup(s, b, tmpPath)
defer cleanup(s, b)

var totalRevisions int64 = 1210
assert.Less(t, int64(s.cfg.CompactionBatchLimit), totalRevisions)
Expand Down Expand Up @@ -73,9 +73,9 @@ func TestHashByRevValue(t *testing.T) {
}

func TestHashByRevValueLastRevision(t *testing.T) {
b, tmpPath := betesting.NewDefaultTmpBackend(t)
b, _ := betesting.NewDefaultTmpBackend(t)
s := NewStore(zaptest.NewLogger(t), b, &lease.FakeLessor{}, StoreConfig{})
defer cleanup(s, b, tmpPath)
defer cleanup(s, b)

var totalRevisions int64 = 1210
assert.Less(t, int64(s.cfg.CompactionBatchLimit), totalRevisions)
Expand Down Expand Up @@ -133,9 +133,9 @@ func testHashByRev(t *testing.T, s *store, rev int64) KeyValueHash {
// TestCompactionHash tests compaction hash
// TODO: Change this to fuzz test
func TestCompactionHash(t *testing.T) {
b, tmpPath := betesting.NewDefaultTmpBackend(t)
b, _ := betesting.NewDefaultTmpBackend(t)
s := NewStore(zaptest.NewLogger(t), b, &lease.FakeLessor{}, StoreConfig{})
defer cleanup(s, b, tmpPath)
defer cleanup(s, b)

testutil.TestCompactionHash(context.Background(), t, hashTestCase{s}, s.cfg.CompactionBatchLimit)
}
Expand Down
75 changes: 37 additions & 38 deletions server/storage/mvcc/kv_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,9 @@ func TestKVRange(t *testing.T) { testKVRange(t, normalRangeFunc) }
func TestKVTxnRange(t *testing.T) { testKVRange(t, txnRangeFunc) }

func testKVRange(t *testing.T, f rangeFunc) {
b, tmpPath := betesting.NewDefaultTmpBackend(t)
b, _ := betesting.NewDefaultTmpBackend(t)
s := NewStore(zaptest.NewLogger(t), b, &lease.FakeLessor{}, StoreConfig{})
defer cleanup(s, b, tmpPath)
defer cleanup(s, b)

kvs := put3TestKVs(s)

Expand Down Expand Up @@ -145,9 +145,9 @@ func TestKVRangeRev(t *testing.T) { testKVRangeRev(t, normalRangeFunc) }
func TestKVTxnRangeRev(t *testing.T) { testKVRangeRev(t, txnRangeFunc) }

func testKVRangeRev(t *testing.T, f rangeFunc) {
b, tmpPath := betesting.NewDefaultTmpBackend(t)
b, _ := betesting.NewDefaultTmpBackend(t)
s := NewStore(zaptest.NewLogger(t), b, &lease.FakeLessor{}, StoreConfig{})
defer cleanup(s, b, tmpPath)
defer cleanup(s, b)

kvs := put3TestKVs(s)

Expand Down Expand Up @@ -181,9 +181,9 @@ func TestKVRangeBadRev(t *testing.T) { testKVRangeBadRev(t, normalRangeFunc)
func TestKVTxnRangeBadRev(t *testing.T) { testKVRangeBadRev(t, txnRangeFunc) }

func testKVRangeBadRev(t *testing.T, f rangeFunc) {
b, tmpPath := betesting.NewDefaultTmpBackend(t)
b, _ := betesting.NewDefaultTmpBackend(t)
s := NewStore(zaptest.NewLogger(t), b, &lease.FakeLessor{}, StoreConfig{})
defer cleanup(s, b, tmpPath)
defer cleanup(s, b)

put3TestKVs(s)
if _, err := s.Compact(traceutil.TODO(), 4); err != nil {
Expand Down Expand Up @@ -214,9 +214,9 @@ func TestKVRangeLimit(t *testing.T) { testKVRangeLimit(t, normalRangeFunc) }
func TestKVTxnRangeLimit(t *testing.T) { testKVRangeLimit(t, txnRangeFunc) }

func testKVRangeLimit(t *testing.T, f rangeFunc) {
b, tmpPath := betesting.NewDefaultTmpBackend(t)
b, _ := betesting.NewDefaultTmpBackend(t)
s := NewStore(zaptest.NewLogger(t), b, &lease.FakeLessor{}, StoreConfig{})
defer cleanup(s, b, tmpPath)
defer cleanup(s, b)

kvs := put3TestKVs(s)

Expand Down Expand Up @@ -260,9 +260,9 @@ func TestKVPutMultipleTimes(t *testing.T) { testKVPutMultipleTimes(t, normalP
func TestKVTxnPutMultipleTimes(t *testing.T) { testKVPutMultipleTimes(t, txnPutFunc) }

func testKVPutMultipleTimes(t *testing.T, f putFunc) {
b, tmpPath := betesting.NewDefaultTmpBackend(t)
b, _ := betesting.NewDefaultTmpBackend(t)
s := NewStore(zaptest.NewLogger(t), b, &lease.FakeLessor{}, StoreConfig{})
defer cleanup(s, b, tmpPath)
defer cleanup(s, b)

for i := 0; i < 10; i++ {
base := int64(i + 1)
Expand Down Expand Up @@ -322,7 +322,7 @@ func testKVDeleteRange(t *testing.T, f deleteRangeFunc) {
}

for i, tt := range tests {
b, tmpPath := betesting.NewDefaultTmpBackend(t)
b, _ := betesting.NewDefaultTmpBackend(t)
s := NewStore(zaptest.NewLogger(t), b, &lease.FakeLessor{}, StoreConfig{})

s.Put([]byte("foo"), []byte("bar"), lease.NoLease)
Expand All @@ -334,17 +334,17 @@ func testKVDeleteRange(t *testing.T, f deleteRangeFunc) {
t.Errorf("#%d: n = %d, rev = %d, want (%d, %d)", i, n, rev, tt.wN, tt.wrev)
}

cleanup(s, b, tmpPath)
cleanup(s, b)
}
}

func TestKVDeleteMultipleTimes(t *testing.T) { testKVDeleteMultipleTimes(t, normalDeleteRangeFunc) }
func TestKVTxnDeleteMultipleTimes(t *testing.T) { testKVDeleteMultipleTimes(t, txnDeleteRangeFunc) }

func testKVDeleteMultipleTimes(t *testing.T, f deleteRangeFunc) {
b, tmpPath := betesting.NewDefaultTmpBackend(t)
b, _ := betesting.NewDefaultTmpBackend(t)
s := NewStore(zaptest.NewLogger(t), b, &lease.FakeLessor{}, StoreConfig{})
defer cleanup(s, b, tmpPath)
defer cleanup(s, b)

s.Put([]byte("foo"), []byte("bar"), lease.NoLease)

Expand All @@ -365,9 +365,9 @@ func TestKVPutWithSameLease(t *testing.T) { testKVPutWithSameLease(t, normalP
func TestKVTxnPutWithSameLease(t *testing.T) { testKVPutWithSameLease(t, txnPutFunc) }

func testKVPutWithSameLease(t *testing.T, f putFunc) {
b, tmpPath := betesting.NewDefaultTmpBackend(t)
b, _ := betesting.NewDefaultTmpBackend(t)
s := NewStore(zaptest.NewLogger(t), b, &lease.FakeLessor{}, StoreConfig{})
defer cleanup(s, b, tmpPath)
defer cleanup(s, b)
leaseID := int64(1)

// put foo
Expand Down Expand Up @@ -398,9 +398,9 @@ func testKVPutWithSameLease(t *testing.T, f putFunc) {
// TestKVOperationInSequence tests that range, put, delete on single key in
// sequence repeatedly works correctly.
func TestKVOperationInSequence(t *testing.T) {
b, tmpPath := betesting.NewDefaultTmpBackend(t)
b, _ := betesting.NewDefaultTmpBackend(t)
s := NewStore(zaptest.NewLogger(t), b, &lease.FakeLessor{}, StoreConfig{})
defer cleanup(s, b, tmpPath)
defer cleanup(s, b)

for i := 0; i < 10; i++ {
base := int64(i*2 + 1)
Expand Down Expand Up @@ -445,7 +445,7 @@ func TestKVOperationInSequence(t *testing.T) {
}

func TestKVTxnBlockWriteOperations(t *testing.T) {
b, tmpPath := betesting.NewDefaultTmpBackend(t)
b, _ := betesting.NewDefaultTmpBackend(t)
s := NewStore(zaptest.NewLogger(t), b, &lease.FakeLessor{}, StoreConfig{})

tests := []func(){
Expand Down Expand Up @@ -475,13 +475,13 @@ func TestKVTxnBlockWriteOperations(t *testing.T) {
}

// only close backend when we know all the tx are finished
cleanup(s, b, tmpPath)
cleanup(s, b)
}

func TestKVTxnNonBlockRange(t *testing.T) {
b, tmpPath := betesting.NewDefaultTmpBackend(t)
b, _ := betesting.NewDefaultTmpBackend(t)
s := NewStore(zaptest.NewLogger(t), b, &lease.FakeLessor{}, StoreConfig{})
defer cleanup(s, b, tmpPath)
defer cleanup(s, b)

txn := s.Write(traceutil.TODO())
defer txn.End()
Expand All @@ -501,9 +501,9 @@ func TestKVTxnNonBlockRange(t *testing.T) {
// TestKVTxnOperationInSequence tests that txn range, put, delete on single key
// in sequence repeatedly works correctly.
func TestKVTxnOperationInSequence(t *testing.T) {
b, tmpPath := betesting.NewDefaultTmpBackend(t)
b, _ := betesting.NewDefaultTmpBackend(t)
s := NewStore(zaptest.NewLogger(t), b, &lease.FakeLessor{}, StoreConfig{})
defer cleanup(s, b, tmpPath)
defer cleanup(s, b)

for i := 0; i < 10; i++ {
txn := s.Write(traceutil.TODO())
Expand Down Expand Up @@ -551,9 +551,9 @@ func TestKVTxnOperationInSequence(t *testing.T) {
}

func TestKVCompactReserveLastValue(t *testing.T) {
b, tmpPath := betesting.NewDefaultTmpBackend(t)
b, _ := betesting.NewDefaultTmpBackend(t)
s := NewStore(zaptest.NewLogger(t), b, &lease.FakeLessor{}, StoreConfig{})
defer cleanup(s, b, tmpPath)
defer cleanup(s, b)

s.Put([]byte("foo"), []byte("bar0"), 1)
s.Put([]byte("foo"), []byte("bar1"), 2)
Expand Down Expand Up @@ -605,9 +605,9 @@ func TestKVCompactReserveLastValue(t *testing.T) {
}

func TestKVCompactBad(t *testing.T) {
b, tmpPath := betesting.NewDefaultTmpBackend(t)
b, _ := betesting.NewDefaultTmpBackend(t)
s := NewStore(zaptest.NewLogger(t), b, &lease.FakeLessor{}, StoreConfig{})
defer cleanup(s, b, tmpPath)
defer cleanup(s, b)

s.Put([]byte("foo"), []byte("bar0"), lease.NoLease)
s.Put([]byte("foo"), []byte("bar1"), lease.NoLease)
Expand Down Expand Up @@ -638,15 +638,15 @@ func TestKVHash(t *testing.T) {

for i := 0; i < len(hashes); i++ {
var err error
b, tmpPath := betesting.NewDefaultTmpBackend(t)
b, _ := betesting.NewDefaultTmpBackend(t)
kv := NewStore(zaptest.NewLogger(t), b, &lease.FakeLessor{}, StoreConfig{})
kv.Put([]byte("foo0"), []byte("bar0"), lease.NoLease)
kv.Put([]byte("foo1"), []byte("bar0"), lease.NoLease)
hashes[i], _, err = kv.hash()
if err != nil {
t.Fatalf("failed to get hash: %v", err)
}
cleanup(kv, b, tmpPath)
cleanup(kv, b)
}

for i := 1; i < len(hashes); i++ {
Expand Down Expand Up @@ -676,7 +676,7 @@ func TestKVRestore(t *testing.T) {
},
}
for i, tt := range tests {
b, tmpPath := betesting.NewDefaultTmpBackend(t)
b, _ := betesting.NewDefaultTmpBackend(t)
s := NewStore(zaptest.NewLogger(t), b, &lease.FakeLessor{}, StoreConfig{})
tt(s)
var kvss [][]mvccpb.KeyValue
Expand All @@ -702,7 +702,7 @@ func TestKVRestore(t *testing.T) {
r, _ := ns.Range(context.TODO(), []byte("a"), []byte("z"), RangeOptions{Rev: k})
nkvss = append(nkvss, r.KVs)
}
cleanup(ns, b, tmpPath)
cleanup(ns, b)

if !reflect.DeepEqual(nkvss, kvss) {
t.Errorf("#%d: kvs history = %+v, want %+v", i, nkvss, kvss)
Expand All @@ -720,9 +720,9 @@ func readGaugeInt(g prometheus.Gauge) int {
}

func TestKVSnapshot(t *testing.T) {
b, tmpPath := betesting.NewDefaultTmpBackend(t)
b, _ := betesting.NewDefaultTmpBackend(t)
s := NewStore(zaptest.NewLogger(t), b, &lease.FakeLessor{}, StoreConfig{})
defer cleanup(s, b, tmpPath)
defer cleanup(s, b)

wkvs := put3TestKVs(s)

Expand Down Expand Up @@ -756,9 +756,9 @@ func TestKVSnapshot(t *testing.T) {
}

func TestWatchableKVWatch(t *testing.T) {
b, tmpPath := betesting.NewDefaultTmpBackend(t)
b, _ := betesting.NewDefaultTmpBackend(t)
s := WatchableKV(newWatchableStore(zaptest.NewLogger(t), b, &lease.FakeLessor{}, StoreConfig{}))
defer cleanup(s, b, tmpPath)
defer cleanup(s, b)

w := s.NewWatchStream()
defer w.Close()
Expand Down Expand Up @@ -860,10 +860,9 @@ func TestWatchableKVWatch(t *testing.T) {
}
}

func cleanup(s KV, b backend.Backend, path string) {
func cleanup(s KV, b backend.Backend) {
s.Close()
b.Close()
os.Remove(path)
}

func put3TestKVs(s KV) []mvccpb.KeyValue {
Expand Down
20 changes: 10 additions & 10 deletions server/storage/mvcc/kvstore_bench_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ import (
)

func BenchmarkStorePut(b *testing.B) {
be, tmpPath := betesting.NewDefaultTmpBackend(b)
be, _ := betesting.NewDefaultTmpBackend(b)
s := NewStore(zaptest.NewLogger(b), be, &lease.FakeLessor{}, StoreConfig{})
defer cleanup(s, be, tmpPath)
defer cleanup(s, be)

// arbitrary number of bytes
bytesN := 64
Expand All @@ -48,9 +48,9 @@ func BenchmarkStoreRangeKey1(b *testing.B) { benchmarkStoreRange(b, 1) }
func BenchmarkStoreRangeKey100(b *testing.B) { benchmarkStoreRange(b, 100) }

func benchmarkStoreRange(b *testing.B, n int) {
be, tmpPath := betesting.NewDefaultTmpBackend(b)
be, _ := betesting.NewDefaultTmpBackend(b)
s := NewStore(zaptest.NewLogger(b), be, &lease.FakeLessor{}, StoreConfig{})
defer cleanup(s, be, tmpPath)
defer cleanup(s, be)

// 64 byte key/val
keys, val := createBytesSlice(64, n), createBytesSlice(64, 1)
Expand Down Expand Up @@ -97,9 +97,9 @@ func BenchmarkConsistentIndex(b *testing.B) {

// BenchmarkStorePutUpdate is same as above, but instead updates single key
func BenchmarkStorePutUpdate(b *testing.B) {
be, tmpPath := betesting.NewDefaultTmpBackend(b)
be, _ := betesting.NewDefaultTmpBackend(b)
s := NewStore(zaptest.NewLogger(b), be, &lease.FakeLessor{}, StoreConfig{})
defer cleanup(s, be, tmpPath)
defer cleanup(s, be)

// arbitrary number of bytes
keys := createBytesSlice(64, 1)
Expand All @@ -115,9 +115,9 @@ func BenchmarkStorePutUpdate(b *testing.B) {
// with transaction begin and end, where transaction involves
// some synchronization operations, such as mutex locking.
func BenchmarkStoreTxnPut(b *testing.B) {
be, tmpPath := betesting.NewDefaultTmpBackend(b)
be, _ := betesting.NewDefaultTmpBackend(b)
s := NewStore(zaptest.NewLogger(b), be, &lease.FakeLessor{}, StoreConfig{})
defer cleanup(s, be, tmpPath)
defer cleanup(s, be)

// arbitrary number of bytes
bytesN := 64
Expand All @@ -135,10 +135,10 @@ func BenchmarkStoreTxnPut(b *testing.B) {

// benchmarkStoreRestore benchmarks the restore operation
func benchmarkStoreRestore(revsPerKey int, b *testing.B) {
be, tmpPath := betesting.NewDefaultTmpBackend(b)
be, _ := betesting.NewDefaultTmpBackend(b)
s := NewStore(zaptest.NewLogger(b), be, &lease.FakeLessor{}, StoreConfig{})
// use closure to capture 's' to pick up the reassignment
defer func() { cleanup(s, be, tmpPath) }()
defer func() { cleanup(s, be) }()

// arbitrary number of bytes
bytesN := 64
Expand Down
12 changes: 4 additions & 8 deletions server/storage/mvcc/kvstore_compaction_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ package mvcc

import (
"context"
"os"
"reflect"
"testing"
"time"
Expand Down Expand Up @@ -68,7 +67,7 @@ func TestScheduleCompaction(t *testing.T) {
},
}
for i, tt := range tests {
b, tmpPath := betesting.NewDefaultTmpBackend(t)
b, _ := betesting.NewDefaultTmpBackend(t)
s := NewStore(zaptest.NewLogger(t), b, &lease.FakeLessor{}, StoreConfig{})
fi := newFakeIndex()
fi.indexCompactRespc <- tt.keep
Expand Down Expand Up @@ -103,17 +102,14 @@ func TestScheduleCompaction(t *testing.T) {
}
tx.Unlock()

cleanup(s, b, tmpPath)
cleanup(s, b)
}
}

func TestCompactAllAndRestore(t *testing.T) {
b, tmpPath := betesting.NewDefaultTmpBackend(t)
b, _ := betesting.NewDefaultTmpBackend(t)
s0 := NewStore(zaptest.NewLogger(t), b, &lease.FakeLessor{}, StoreConfig{})
defer func() {
b.Close()
os.Remove(tmpPath)
}()
defer b.Close()

s0.Put([]byte("foo"), []byte("bar"), lease.NoLease)
s0.Put([]byte("foo"), []byte("bar1"), lease.NoLease)
Expand Down
Loading

0 comments on commit eb09e00

Please sign in to comment.