0
0

fix issues identified by errcheck

This commit is contained in:
Marty Schoch 2015-04-10 14:59:05 -04:00
parent 54ab493b3e
commit 5f66bd84c7
3 changed files with 225 additions and 42 deletions

View File

@ -35,9 +35,11 @@ func Open(path string, config map[string]interface{}) (*Store, error) {
opts: &opt.Options{}, opts: &opt.Options{},
} }
applyConfig(rv.opts, config) _, err := applyConfig(rv.opts, config)
if err != nil {
return nil, err
}
var err error
rv.db, err = leveldb.OpenFile(rv.path, rv.opts) rv.db, err = leveldb.OpenFile(rv.path, rv.opts)
if err != nil { if err != nil {
return nil, err return nil, err
@ -89,8 +91,7 @@ func (ldbs *Store) deletelocked(key []byte) error {
} }
func (ldbs *Store) Close() error { func (ldbs *Store) Close() error {
ldbs.db.Close() return ldbs.db.Close()
return nil
} }
func (ldbs *Store) iterator(key []byte) store.KVIterator { func (ldbs *Store) iterator(key []byte) store.KVIterator {

View File

@ -22,25 +22,45 @@ var leveldbTestOptions = map[string]interface{}{
} }
func TestLevelDBStore(t *testing.T) { func TestLevelDBStore(t *testing.T) {
defer os.RemoveAll("test") defer func() {
err := os.RemoveAll("test")
if err != nil {
t.Fatal(err)
}
}()
s, err := Open("test", leveldbTestOptions) s, err := Open("test", leveldbTestOptions)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
defer s.Close() defer func() {
err := s.Close()
if err != nil {
t.Fatal(err)
}
}()
CommonTestKVStore(t, s) CommonTestKVStore(t, s)
} }
func TestReaderIsolation(t *testing.T) { func TestReaderIsolation(t *testing.T) {
defer os.RemoveAll("test") defer func() {
err := os.RemoveAll("test")
if err != nil {
t.Fatal(err)
}
}()
s, err := Open("test", leveldbTestOptions) s, err := Open("test", leveldbTestOptions)
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
defer s.Close() defer func() {
err := s.Close()
if err != nil {
t.Fatal(err)
}
}()
CommonTestReaderIsolation(t, s) CommonTestReaderIsolation(t, s)
} }
@ -79,13 +99,21 @@ func CommonTestKVStore(t *testing.T, s store.KVStore) {
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
writer.Close() err = writer.Close()
if err != nil {
t.Fatal(err)
}
reader, err := s.Reader() reader, err := s.Reader()
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} }
defer reader.Close() defer func() {
err := reader.Close()
if err != nil {
t.Fatal(err)
}
}()
it := reader.Iterator([]byte("b")) it := reader.Iterator([]byte("b"))
key, val, valid := it.Current() key, val, valid := it.Current()
if !valid { if !valid {
@ -122,7 +150,10 @@ func CommonTestKVStore(t *testing.T, s store.KVStore) {
t.Fatalf("expected value val-i, got %s", val) t.Fatalf("expected value val-i, got %s", val)
} }
it.Close() err = it.Close()
if err != nil {
t.Fatal(err)
}
} }
func CommonTestReaderIsolation(t *testing.T, s store.KVStore) { func CommonTestReaderIsolation(t *testing.T, s store.KVStore) {
@ -135,14 +166,22 @@ func CommonTestReaderIsolation(t *testing.T, s store.KVStore) {
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
writer.Close() err = writer.Close()
if err != nil {
t.Fatal(err)
}
// create an isolated reader // create an isolated reader
reader, err := s.Reader() reader, err := s.Reader()
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} }
defer reader.Close() defer func() {
err := reader.Close()
if err != nil {
t.Fatal(err)
}
}()
// verify that we see the value already inserted // verify that we see the value already inserted
val, err := reader.Get([]byte("a")) val, err := reader.Get([]byte("a"))
@ -156,7 +195,12 @@ func CommonTestReaderIsolation(t *testing.T, s store.KVStore) {
// verify that an iterator sees it // verify that an iterator sees it
count := 0 count := 0
it := reader.Iterator([]byte{0}) it := reader.Iterator([]byte{0})
defer it.Close() defer func() {
err := it.Close()
if err != nil {
t.Fatal(err)
}
}()
for it.Valid() { for it.Valid() {
it.Next() it.Next()
count++ count++
@ -174,14 +218,22 @@ func CommonTestReaderIsolation(t *testing.T, s store.KVStore) {
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
writer.Close() err = writer.Close()
if err != nil {
t.Fatal(err)
}
// ensure that a newer reader sees it // ensure that a newer reader sees it
newReader, err := s.Reader() newReader, err := s.Reader()
if err != nil { if err != nil {
t.Error(err) t.Error(err)
} }
defer newReader.Close() defer func() {
err := newReader.Close()
if err != nil {
t.Fatal(err)
}
}()
val, err = newReader.Get([]byte("b")) val, err = newReader.Get([]byte("b"))
if err != nil { if err != nil {
t.Error(err) t.Error(err)
@ -193,7 +245,12 @@ func CommonTestReaderIsolation(t *testing.T, s store.KVStore) {
// ensure that the director iterator sees it // ensure that the director iterator sees it
count = 0 count = 0
it = newReader.Iterator([]byte{0}) it = newReader.Iterator([]byte{0})
defer it.Close() defer func() {
err := it.Close()
if err != nil {
t.Fatal(err)
}
}()
for it.Valid() { for it.Valid() {
it.Next() it.Next()
count++ count++
@ -214,7 +271,12 @@ func CommonTestReaderIsolation(t *testing.T, s store.KVStore) {
// and ensure that the iterator on the isolated reader also does not // and ensure that the iterator on the isolated reader also does not
count = 0 count = 0
it = reader.Iterator([]byte{0}) it = reader.Iterator([]byte{0})
defer it.Close() defer func() {
err := it.Close()
if err != nil {
t.Fatal(err)
}
}()
for it.Valid() { for it.Valid() {
it.Next() it.Next()
count++ count++

View File

@ -25,8 +25,18 @@ func BenchmarkLevelDBIndexing1Workers(b *testing.B) {
if err != nil { if err != nil {
b.Fatal(err) b.Fatal(err)
} }
defer os.RemoveAll("test") defer func() {
defer s.Close() err := os.RemoveAll("test")
if err != nil {
b.Fatal(err)
}
}()
defer func() {
err := s.Close()
if err != nil {
b.Fatal(err)
}
}()
CommonBenchmarkIndex(b, s, 1) CommonBenchmarkIndex(b, s, 1)
} }
@ -36,8 +46,18 @@ func BenchmarkLevelDBIndexing2Workers(b *testing.B) {
if err != nil { if err != nil {
b.Fatal(err) b.Fatal(err)
} }
defer os.RemoveAll("test") defer func() {
defer s.Close() err := os.RemoveAll("test")
if err != nil {
b.Fatal(err)
}
}()
defer func() {
err := s.Close()
if err != nil {
b.Fatal(err)
}
}()
CommonBenchmarkIndex(b, s, 2) CommonBenchmarkIndex(b, s, 2)
} }
@ -47,8 +67,18 @@ func BenchmarkLevelDBIndexing4Workers(b *testing.B) {
if err != nil { if err != nil {
b.Fatal(err) b.Fatal(err)
} }
defer os.RemoveAll("test") defer func() {
defer s.Close() err := os.RemoveAll("test")
if err != nil {
b.Fatal(err)
}
}()
defer func() {
err := s.Close()
if err != nil {
b.Fatal(err)
}
}()
CommonBenchmarkIndex(b, s, 4) CommonBenchmarkIndex(b, s, 4)
} }
@ -60,8 +90,18 @@ func BenchmarkLevelDBIndexing1Workers10Batch(b *testing.B) {
if err != nil { if err != nil {
b.Fatal(err) b.Fatal(err)
} }
defer os.RemoveAll("test") defer func() {
defer s.Close() err := os.RemoveAll("test")
if err != nil {
b.Fatal(err)
}
}()
defer func() {
err := s.Close()
if err != nil {
b.Fatal(err)
}
}()
CommonBenchmarkIndexBatch(b, s, 1, 10) CommonBenchmarkIndexBatch(b, s, 1, 10)
} }
@ -71,8 +111,18 @@ func BenchmarkLevelDBIndexing2Workers10Batch(b *testing.B) {
if err != nil { if err != nil {
b.Fatal(err) b.Fatal(err)
} }
defer os.RemoveAll("test") defer func() {
defer s.Close() err := os.RemoveAll("test")
if err != nil {
b.Fatal(err)
}
}()
defer func() {
err := s.Close()
if err != nil {
b.Fatal(err)
}
}()
CommonBenchmarkIndexBatch(b, s, 2, 10) CommonBenchmarkIndexBatch(b, s, 2, 10)
} }
@ -82,8 +132,18 @@ func BenchmarkLevelDBIndexing4Workers10Batch(b *testing.B) {
if err != nil { if err != nil {
b.Fatal(err) b.Fatal(err)
} }
defer os.RemoveAll("test") defer func() {
defer s.Close() err := os.RemoveAll("test")
if err != nil {
b.Fatal(err)
}
}()
defer func() {
err := s.Close()
if err != nil {
b.Fatal(err)
}
}()
CommonBenchmarkIndexBatch(b, s, 4, 10) CommonBenchmarkIndexBatch(b, s, 4, 10)
} }
@ -93,8 +153,18 @@ func BenchmarkLevelDBIndexing1Workers100Batch(b *testing.B) {
if err != nil { if err != nil {
b.Fatal(err) b.Fatal(err)
} }
defer os.RemoveAll("test") defer func() {
defer s.Close() err := os.RemoveAll("test")
if err != nil {
b.Fatal(err)
}
}()
defer func() {
err := s.Close()
if err != nil {
b.Fatal(err)
}
}()
CommonBenchmarkIndexBatch(b, s, 1, 100) CommonBenchmarkIndexBatch(b, s, 1, 100)
} }
@ -104,8 +174,18 @@ func BenchmarkLevelDBIndexing2Workers100Batch(b *testing.B) {
if err != nil { if err != nil {
b.Fatal(err) b.Fatal(err)
} }
defer os.RemoveAll("test") defer func() {
defer s.Close() err := os.RemoveAll("test")
if err != nil {
b.Fatal(err)
}
}()
defer func() {
err := s.Close()
if err != nil {
b.Fatal(err)
}
}()
CommonBenchmarkIndexBatch(b, s, 2, 100) CommonBenchmarkIndexBatch(b, s, 2, 100)
} }
@ -115,8 +195,18 @@ func BenchmarkLevelDBIndexing4Workers100Batch(b *testing.B) {
if err != nil { if err != nil {
b.Fatal(err) b.Fatal(err)
} }
defer os.RemoveAll("test") defer func() {
defer s.Close() err := os.RemoveAll("test")
if err != nil {
b.Fatal(err)
}
}()
defer func() {
err := s.Close()
if err != nil {
b.Fatal(err)
}
}()
CommonBenchmarkIndexBatch(b, s, 4, 100) CommonBenchmarkIndexBatch(b, s, 4, 100)
} }
@ -126,8 +216,18 @@ func BenchmarkLevelDBIndexing1Workers1000Batch(b *testing.B) {
if err != nil { if err != nil {
b.Fatal(err) b.Fatal(err)
} }
defer os.RemoveAll("test") defer func() {
defer s.Close() err := os.RemoveAll("test")
if err != nil {
b.Fatal(err)
}
}()
defer func() {
err := s.Close()
if err != nil {
b.Fatal(err)
}
}()
CommonBenchmarkIndexBatch(b, s, 1, 1000) CommonBenchmarkIndexBatch(b, s, 1, 1000)
} }
@ -137,8 +237,18 @@ func BenchmarkLevelDBIndexing2Workers1000Batch(b *testing.B) {
if err != nil { if err != nil {
b.Fatal(err) b.Fatal(err)
} }
defer os.RemoveAll("test") defer func() {
defer s.Close() err := os.RemoveAll("test")
if err != nil {
b.Fatal(err)
}
}()
defer func() {
err := s.Close()
if err != nil {
b.Fatal(err)
}
}()
CommonBenchmarkIndexBatch(b, s, 2, 1000) CommonBenchmarkIndexBatch(b, s, 2, 1000)
} }
@ -148,8 +258,18 @@ func BenchmarkLevelDBIndexing4Workers1000Batch(b *testing.B) {
if err != nil { if err != nil {
b.Fatal(err) b.Fatal(err)
} }
defer os.RemoveAll("test") defer func() {
defer s.Close() err := os.RemoveAll("test")
if err != nil {
b.Fatal(err)
}
}()
defer func() {
err := s.Close()
if err != nil {
b.Fatal(err)
}
}()
CommonBenchmarkIndexBatch(b, s, 4, 1000) CommonBenchmarkIndexBatch(b, s, 4, 1000)
} }