Skip to content

Commit 0f2e629

Browse files
author
Ibrahim Jarif
authored
Fix windows build (#1177)
Fix windows build and some deepsource warnings
1 parent 03af216 commit 0f2e629

File tree

6 files changed

+62
-30
lines changed

6 files changed

+62
-30
lines changed

backup_test.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ func TestBackupRestore2(t *testing.T) {
129129
if err != nil {
130130
t.Fatal(err)
131131
}
132+
defer db1.Close()
132133
key1 := []byte("key1")
133134
key2 := []byte("key2")
134135
rawValue := []byte("NotLongValue")
@@ -164,6 +165,7 @@ func TestBackupRestore2(t *testing.T) {
164165
if err != nil {
165166
t.Fatal(err)
166167
}
168+
defer db2.Close()
167169
err = db2.Load(&backup, 16)
168170
if err != nil {
169171
t.Fatal(err)
@@ -215,6 +217,7 @@ func TestBackupRestore2(t *testing.T) {
215217
if err != nil {
216218
t.Fatal(err)
217219
}
220+
defer db3.Close()
218221

219222
err = db3.Load(&backup, 16)
220223
if err != nil {
@@ -330,7 +333,6 @@ func TestBackup(t *testing.T) {
330333

331334
func TestBackupRestore3(t *testing.T) {
332335
var bb bytes.Buffer
333-
334336
tmpdir, err := ioutil.TempDir("", "badger-test")
335337
if err != nil {
336338
t.Fatal(err)
@@ -346,7 +348,7 @@ func TestBackupRestore3(t *testing.T) {
346348
if err != nil {
347349
t.Fatal(err)
348350
}
349-
351+
defer db1.Close()
350352
require.NoError(t, populateEntries(db1, entries))
351353

352354
_, err = db1.Backup(&bb, 0)
@@ -361,6 +363,7 @@ func TestBackupRestore3(t *testing.T) {
361363
if err != nil {
362364
t.Fatal(err)
363365
}
366+
defer db2.Close()
364367
require.NoError(t, db2.Load(&bb, 16))
365368

366369
// verify
@@ -406,6 +409,7 @@ func TestBackupLoadIncremental(t *testing.T) {
406409
if err != nil {
407410
t.Fatal(err)
408411
}
412+
defer db1.Close()
409413

410414
require.NoError(t, populateEntries(db1, entries))
411415
since, err := db1.Backup(&bb, 0)
@@ -466,6 +470,8 @@ func TestBackupLoadIncremental(t *testing.T) {
466470
if err != nil {
467471
t.Fatal(err)
468472
}
473+
defer db2.Close()
474+
469475
require.NoError(t, db2.Load(&bb, 16))
470476

471477
// verify

db2_test.go

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -627,22 +627,29 @@ func TestL0GCBug(t *testing.T) {
627627
return []byte(fmt.Sprintf("%10d", i))
628628
}
629629
val := []byte{1, 1, 1, 1, 1, 1, 1, 1}
630-
// Insert 100 entries. This will create about 50 vlog files and 2 SST files.
631-
for i := 0; i < 100; i++ {
632-
err = db1.Update(func(txn *Txn) error {
633-
return txn.SetEntry(NewEntry(key(i), val))
634-
})
635-
require.NoError(t, err)
630+
// Insert 100 entries. This will create about 50*3 vlog files and 6 SST files.
631+
for i := 0; i < 3; i++ {
632+
for j := 0; j < 100; j++ {
633+
err = db1.Update(func(txn *Txn) error {
634+
return txn.SetEntry(NewEntry(key(j), val))
635+
})
636+
require.NoError(t, err)
637+
}
636638
}
637639
// Run value log GC multiple times. This would ensure at least
638640
// one value log file is garbage collected.
641+
success := 0
639642
for i := 0; i < 10; i++ {
640643
err := db1.RunValueLogGC(0.01)
644+
if err == nil {
645+
success++
646+
}
641647
if err != nil && err != ErrNoRewrite {
642648
t.Fatalf(err.Error())
643649
}
644650
}
645-
651+
// Ensure alteast one GC call was successful.
652+
require.NotZero(t, success)
646653
// CheckKeys reads all the keys previously stored.
647654
checkKeys := func(db *DB) {
648655
for i := 0; i < 100; i++ {
@@ -665,7 +672,12 @@ func TestL0GCBug(t *testing.T) {
665672
if db1.valueDirGuard != nil {
666673
require.NoError(t, db1.valueDirGuard.release())
667674
}
668-
require.NoError(t, db1.vlog.Close())
675+
for _, f := range db1.vlog.filesMap {
676+
require.NoError(t, f.fd.Close())
677+
}
678+
require.NoError(t, db1.registry.Close())
679+
require.NoError(t, db1.lc.close())
680+
require.NoError(t, db1.manifest.close())
669681

670682
db2, err := Open(opts)
671683
require.NoError(t, err)
@@ -723,7 +735,6 @@ func TestWindowsDataLoss(t *testing.T) {
723735
opt.Truncate = true
724736
db, err = Open(opt)
725737
require.NoError(t, err)
726-
727738
// Return after reading one entry. We're simulating a crash.
728739
// Simulate a crash by not closing db but releasing the locks.
729740
if db.dirLockGuard != nil {
@@ -735,6 +746,12 @@ func TestWindowsDataLoss(t *testing.T) {
735746
// Don't use vlog.Close here. We don't want to fix the file size. Only un-mmap
736747
// the data so that we can truncate the file durning the next vlog.Open.
737748
require.NoError(t, y.Munmap(db.vlog.filesMap[db.vlog.maxFid].fmap))
749+
for _, f := range db.vlog.filesMap {
750+
require.NoError(t, f.fd.Close())
751+
}
752+
require.NoError(t, db.registry.Close())
753+
require.NoError(t, db.manifest.close())
754+
require.NoError(t, db.lc.close())
738755

739756
fmt.Println()
740757
fmt.Println("Third DB Open")

db_test.go

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1161,6 +1161,9 @@ func TestExpiryImproperDBClose(t *testing.T) {
11611161
// it would return Truncate Required Error.
11621162
require.NoError(t, db0.vlog.Close())
11631163

1164+
require.NoError(t, db0.registry.Close())
1165+
require.NoError(t, db0.manifest.close())
1166+
11641167
db1, err := Open(opt)
11651168
require.NoError(t, err)
11661169
err = db1.View(func(txn *Txn) error {
@@ -1200,7 +1203,7 @@ func randBytes(n int) []byte {
12001203
recv := make([]byte, n)
12011204
in, err := rand.Read(recv)
12021205
if err != nil {
1203-
log.Fatal(err)
1206+
panic(err)
12041207
}
12051208
return recv[:in]
12061209
}
@@ -1670,12 +1673,12 @@ func TestGoroutineLeak(t *testing.T) {
16701673
func ExampleOpen() {
16711674
dir, err := ioutil.TempDir("", "badger-test")
16721675
if err != nil {
1673-
log.Fatal(err)
1676+
panic(err)
16741677
}
16751678
defer removeDir(dir)
16761679
db, err := Open(DefaultOptions(dir))
16771680
if err != nil {
1678-
log.Fatal(err)
1681+
panic(err)
16791682
}
16801683
defer db.Close()
16811684

@@ -1687,17 +1690,17 @@ func ExampleOpen() {
16871690
})
16881691

16891692
if err != nil {
1690-
log.Fatal(err)
1693+
panic(err)
16911694
}
16921695

16931696
txn := db.NewTransaction(true) // Read-write txn
16941697
err = txn.SetEntry(NewEntry([]byte("key"), []byte("value")))
16951698
if err != nil {
1696-
log.Fatal(err)
1699+
panic(err)
16971700
}
16981701
err = txn.Commit()
16991702
if err != nil {
1700-
log.Fatal(err)
1703+
panic(err)
17011704
}
17021705

17031706
err = db.View(func(txn *Txn) error {
@@ -1714,7 +1717,7 @@ func ExampleOpen() {
17141717
})
17151718

17161719
if err != nil {
1717-
log.Fatal(err)
1720+
panic(err)
17181721
}
17191722

17201723
// Output:
@@ -1725,13 +1728,13 @@ func ExampleOpen() {
17251728
func ExampleTxn_NewIterator() {
17261729
dir, err := ioutil.TempDir("", "badger-test")
17271730
if err != nil {
1728-
log.Fatal(err)
1731+
panic(err)
17291732
}
17301733
defer removeDir(dir)
17311734

17321735
db, err := Open(DefaultOptions(dir))
17331736
if err != nil {
1734-
log.Fatal(err)
1737+
panic(err)
17351738
}
17361739
defer db.Close()
17371740

@@ -1749,13 +1752,13 @@ func ExampleTxn_NewIterator() {
17491752
for i := 0; i < n; i++ {
17501753
err := txn.SetEntry(NewEntry(bkey(i), bval(i)))
17511754
if err != nil {
1752-
log.Fatal(err)
1755+
panic(err)
17531756
}
17541757
}
17551758

17561759
err = txn.Commit()
17571760
if err != nil {
1758-
log.Fatal(err)
1761+
panic(err)
17591762
}
17601763

17611764
opt := DefaultIteratorOptions
@@ -1772,7 +1775,7 @@ func ExampleTxn_NewIterator() {
17721775
return nil
17731776
})
17741777
if err != nil {
1775-
log.Fatal(err)
1778+
panic(err)
17761779
}
17771780
fmt.Printf("Counted %d elements", count)
17781781
// Output:
@@ -1957,7 +1960,7 @@ func TestMain(m *testing.M) {
19571960
// call flag.Parse() here if TestMain uses flags
19581961
go func() {
19591962
if err := http.ListenAndServe("localhost:8080", nil); err != nil {
1960-
log.Fatalf("Unable to open http port at 8080")
1963+
panic("Unable to open http port at 8080")
19611964
}
19621965
}()
19631966
os.Exit(m.Run())
@@ -1977,12 +1980,12 @@ func ExampleDB_Subscribe() {
19771980
// Open the DB.
19781981
dir, err := ioutil.TempDir("", "badger-test")
19791982
if err != nil {
1980-
log.Fatal(err)
1983+
panic(err)
19811984
}
19821985
defer removeDir(dir)
19831986
db, err := Open(DefaultOptions(dir))
19841987
if err != nil {
1985-
log.Fatal(err)
1988+
panic(err)
19861989
}
19871990
defer db.Close()
19881991

@@ -2002,7 +2005,7 @@ func ExampleDB_Subscribe() {
20022005
return nil
20032006
}
20042007
if err := db.Subscribe(ctx, cb, prefix); err != nil && err != context.Canceled {
2005-
log.Fatal(err)
2008+
panic(err)
20062009
}
20072010
log.Printf("subscription closed")
20082011
}()
@@ -2012,11 +2015,11 @@ func ExampleDB_Subscribe() {
20122015
// Write both keys, but only one should be printed in the Output.
20132016
err = db.Update(func(txn *Txn) error { return txn.Set(aKey, aValue) })
20142017
if err != nil {
2015-
log.Fatal(err)
2018+
panic(err)
20162019
}
20172020
err = db.Update(func(txn *Txn) error { return txn.Set(bKey, bValue) })
20182021
if err != nil {
2019-
log.Fatal(err)
2022+
panic(err)
20202023
}
20212024

20222025
log.Printf("stopping subscription")

manifest_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ func TestOverlappingKeyRangeError(t *testing.T) {
168168
defer removeDir(dir)
169169
kv, err := Open(DefaultOptions(dir))
170170
require.NoError(t, err)
171+
defer kv.Close()
171172

172173
lh0 := newLevelHandler(kv, 0)
173174
lh1 := newLevelHandler(kv, 1)

value.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ func (lf *logFile) encryptionEnabled() bool {
197197
}
198198

199199
func (lf *logFile) munmap() (err error) {
200-
if lf.loadingMode != options.MemoryMap {
200+
if lf.loadingMode != options.MemoryMap || len(lf.fmap) == 0 {
201201
// Nothing to do
202202
return nil
203203
}

value_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -780,6 +780,9 @@ func TestPenultimateLogCorruption(t *testing.T) {
780780
if db0.valueDirGuard != nil {
781781
require.NoError(t, db0.valueDirGuard.release())
782782
}
783+
require.NoError(t, db0.vlog.Close())
784+
require.NoError(t, db0.manifest.close())
785+
require.NoError(t, db0.registry.Close())
783786

784787
opt.Truncate = true
785788
db1, err := Open(opt)
@@ -799,7 +802,9 @@ func TestPenultimateLogCorruption(t *testing.T) {
799802
func checkKeys(t *testing.T, kv *DB, keys [][]byte) {
800803
i := 0
801804
txn := kv.NewTransaction(false)
805+
defer txn.Discard()
802806
iter := txn.NewIterator(IteratorOptions{})
807+
defer iter.Close()
803808
for iter.Seek(keys[0]); iter.Valid(); iter.Next() {
804809
require.Equal(t, iter.Item().Key(), keys[i])
805810
i++

0 commit comments

Comments
 (0)