From 56a19f4e67676d1c41140c388bfa826598abc9fa Mon Sep 17 00:00:00 2001 From: disksing Date: Mon, 21 Dec 2015 11:25:37 +0800 Subject: [PATCH 1/2] localstore: add tests for engine.MultiSeek --- store/localstore/boltdb/boltdb_test.go | 10 ++++++++++ store/localstore/goleveldb/goleveldb_test.go | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/store/localstore/boltdb/boltdb_test.go b/store/localstore/boltdb/boltdb_test.go index 862c4eedc7..6bd749b251 100644 --- a/store/localstore/boltdb/boltdb_test.go +++ b/store/localstore/boltdb/boltdb_test.go @@ -138,4 +138,14 @@ func (s *testSuite) TestDB(c *C) { c.Assert(err, NotNil) c.Assert(k, IsNil) c.Assert(v, IsNil) + + m := db.MultiSeek([][]byte{[]byte("z"), []byte("a"), []byte("a1")}) + c.Assert(m, HasLen, 3) + c.Assert(m[0].Err, NotNil) + c.Assert(m[1].Err, IsNil) + c.Assert(m[1].Key, BytesEquals, []byte("a")) + c.Assert(m[1].Value, BytesEquals, []byte("1")) + c.Assert(m[2].Err, IsNil) + c.Assert(m[2].Key, BytesEquals, []byte("b")) + c.Assert(m[2].Value, BytesEquals, []byte("2")) } diff --git a/store/localstore/goleveldb/goleveldb_test.go b/store/localstore/goleveldb/goleveldb_test.go index 1e53166037..6d09cdf85f 100644 --- a/store/localstore/goleveldb/goleveldb_test.go +++ b/store/localstore/goleveldb/goleveldb_test.go @@ -95,4 +95,14 @@ func (s *testSuite) TestDB(c *C) { c.Assert(err, NotNil) c.Assert(k, IsNil) c.Assert(v, IsNil) + + m := db.MultiSeek([][]byte{[]byte("z"), []byte("a"), []byte("a1")}) + c.Assert(m, HasLen, 3) + c.Assert(m[0].Err, NotNil) + c.Assert(m[1].Err, IsNil) + c.Assert(m[1].Key, BytesEquals, []byte("a")) + c.Assert(m[1].Value, BytesEquals, []byte("2")) + c.Assert(m[2].Err, IsNil) + c.Assert(m[2].Key, BytesEquals, []byte("b")) + c.Assert(m[2].Value, BytesEquals, []byte("2")) } From bb9630ce6c98b82a84999625a36e411b6b8ede25 Mon Sep 17 00:00:00 2001 From: disksing Date: Mon, 21 Dec 2015 11:56:08 +0800 Subject: [PATCH 2/2] *: address comment --- store/localstore/boltdb/boltdb_test.go | 30 ++++++++++++---- store/localstore/goleveldb/goleveldb_test.go | 36 ++++++++++++++------ 2 files changed, 49 insertions(+), 17 deletions(-) diff --git a/store/localstore/boltdb/boltdb_test.go b/store/localstore/boltdb/boltdb_test.go index 6bd749b251..54bbf0a27f 100644 --- a/store/localstore/boltdb/boltdb_test.go +++ b/store/localstore/boltdb/boltdb_test.go @@ -95,7 +95,7 @@ func (s *testSuite) TestPutNilAndDelete(c *C) { c.Assert(found, Equals, false) } -func (s *testSuite) TestDB(c *C) { +func (s *testSuite) TestGetSet(c *C) { db := s.db b := db.NewBatch() @@ -113,33 +113,49 @@ func (s *testSuite) TestDB(c *C) { v, err = db.Get([]byte("a")) c.Assert(err, IsNil) c.Assert(v, DeepEquals, []byte("1")) +} - k, v, err := db.Seek(nil) +func (s *testSuite) TestSeek(c *C) { + b := s.db.NewBatch() + b.Put([]byte("a"), []byte("1")) + b.Put([]byte("b"), []byte("2")) + err := s.db.Commit(b) + c.Assert(err, IsNil) + + k, v, err := s.db.Seek(nil) c.Assert(err, IsNil) c.Assert(k, BytesEquals, []byte("a")) c.Assert(v, BytesEquals, []byte("1")) - k, v, err = db.Seek([]byte("a")) + k, v, err = s.db.Seek([]byte("a")) c.Assert(err, IsNil) c.Assert(k, BytesEquals, []byte("a")) c.Assert(v, BytesEquals, []byte("1")) - k, v, err = db.Seek([]byte("b")) + k, v, err = s.db.Seek([]byte("b")) c.Assert(err, IsNil) c.Assert(k, BytesEquals, []byte("b")) c.Assert(v, BytesEquals, []byte("2")) - k, v, err = db.Seek([]byte("a1")) + k, v, err = s.db.Seek([]byte("a1")) c.Assert(err, IsNil) c.Assert(k, BytesEquals, []byte("b")) c.Assert(v, BytesEquals, []byte("2")) - k, v, err = db.Seek([]byte("c1")) + k, v, err = s.db.Seek([]byte("c1")) c.Assert(err, NotNil) c.Assert(k, IsNil) c.Assert(v, IsNil) +} - m := db.MultiSeek([][]byte{[]byte("z"), []byte("a"), []byte("a1")}) +func (s *testSuite) TestMultiSeek(c *C) { + b := s.db.NewBatch() + b.Put([]byte("a"), []byte("1")) + b.Put([]byte("b"), []byte("2")) + err := s.db.Commit(b) + c.Assert(err, IsNil) + + m := s.db.MultiSeek([][]byte{[]byte("z"), []byte("a"), []byte("a1")}) c.Assert(m, HasLen, 3) c.Assert(m[0].Err, NotNil) c.Assert(m[1].Err, IsNil) diff --git a/store/localstore/goleveldb/goleveldb_test.go b/store/localstore/goleveldb/goleveldb_test.go index 6d09cdf85f..23a3392902 100644 --- a/store/localstore/goleveldb/goleveldb_test.go +++ b/store/localstore/goleveldb/goleveldb_test.go @@ -43,7 +43,7 @@ func (s *testSuite) TearDownSuite(c *C) { s.db.Close() } -func (s *testSuite) TestDB(c *C) { +func (s *testSuite) TestGetSet(c *C) { db := s.db b := db.NewBatch() @@ -70,38 +70,54 @@ func (s *testSuite) TestDB(c *C) { v, err = db.Get([]byte("a")) c.Assert(err, IsNil) c.Assert(v, DeepEquals, []byte("2")) +} - k, v, err := db.Seek(nil) +func (s *testSuite) TestSeek(c *C) { + b := s.db.NewBatch() + b.Put([]byte("a"), []byte("1")) + b.Put([]byte("b"), []byte("2")) + err := s.db.Commit(b) + c.Assert(err, IsNil) + + k, v, err := s.db.Seek(nil) c.Assert(err, IsNil) c.Assert(k, BytesEquals, []byte("a")) - c.Assert(v, BytesEquals, []byte("2")) + c.Assert(v, BytesEquals, []byte("1")) - k, v, err = db.Seek([]byte("a")) + k, v, err = s.db.Seek([]byte("a")) c.Assert(err, IsNil) c.Assert(k, BytesEquals, []byte("a")) - c.Assert(v, BytesEquals, []byte("2")) + c.Assert(v, BytesEquals, []byte("1")) - k, v, err = db.Seek([]byte("b")) + k, v, err = s.db.Seek([]byte("b")) c.Assert(err, IsNil) c.Assert(k, BytesEquals, []byte("b")) c.Assert(v, BytesEquals, []byte("2")) - k, v, err = db.Seek([]byte("a1")) + k, v, err = s.db.Seek([]byte("a1")) c.Assert(err, IsNil) c.Assert(k, BytesEquals, []byte("b")) c.Assert(v, BytesEquals, []byte("2")) - k, v, err = db.Seek([]byte("c1")) + k, v, err = s.db.Seek([]byte("c1")) c.Assert(err, NotNil) c.Assert(k, IsNil) c.Assert(v, IsNil) +} - m := db.MultiSeek([][]byte{[]byte("z"), []byte("a"), []byte("a1")}) +func (s *testSuite) TestMultiSeek(c *C) { + b := s.db.NewBatch() + b.Put([]byte("a"), []byte("1")) + b.Put([]byte("b"), []byte("2")) + err := s.db.Commit(b) + c.Assert(err, IsNil) + + m := s.db.MultiSeek([][]byte{[]byte("z"), []byte("a"), []byte("a1")}) c.Assert(m, HasLen, 3) c.Assert(m[0].Err, NotNil) c.Assert(m[1].Err, IsNil) c.Assert(m[1].Key, BytesEquals, []byte("a")) - c.Assert(m[1].Value, BytesEquals, []byte("2")) + c.Assert(m[1].Value, BytesEquals, []byte("1")) c.Assert(m[2].Err, IsNil) c.Assert(m[2].Key, BytesEquals, []byte("b")) c.Assert(m[2].Value, BytesEquals, []byte("2"))