cleaner testing, leveldb can sort and limit
This commit is contained in:
70
leveldb_test.go
Normal file
70
leveldb_test.go
Normal file
@@ -0,0 +1,70 @@
|
||||
package storage
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"strconv"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestLevelDBListLimitedAscending(t *testing.T) {
|
||||
d, err := ioutil.TempDir(os.TempDir(), "leveldb.list.test.*")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
db, err := NewLevelDB(d)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
db.Set("key", []byte("hi"), "bad")
|
||||
n := 20
|
||||
for i := 0; i < n; i++ {
|
||||
db.Set(fmt.Sprintf("%02d", i), []byte(strconv.Itoa(i)), "good")
|
||||
}
|
||||
|
||||
if list, err := db.List([]string{}); err != nil {
|
||||
t.Error(err)
|
||||
} else if len(list) != 0 {
|
||||
t.Error(len(list), list)
|
||||
}
|
||||
|
||||
if list, err := db.List([]string{""}); err != nil {
|
||||
t.Error(err)
|
||||
} else if len(list) != n+1 {
|
||||
t.Error(len(list), list)
|
||||
}
|
||||
|
||||
if list, err := db.List([]string{"good"}); err != nil {
|
||||
t.Error(err)
|
||||
} else if len(list) != n {
|
||||
t.Error(len(list), list)
|
||||
}
|
||||
|
||||
if list, err := db.List([]string{"good"}, "10"); err != nil {
|
||||
t.Error(err)
|
||||
} else if len(list) != n-10 {
|
||||
t.Error(len(list), list)
|
||||
}
|
||||
|
||||
if list, err := db.List([]string{"good"}, "10", "15"); err != nil {
|
||||
t.Error(err)
|
||||
} else if len(list) != 15-10+1 {
|
||||
t.Error(len(list), list)
|
||||
}
|
||||
|
||||
if list, err := db.List([]string{"good"}, "10", "15", "2"); err != nil {
|
||||
t.Error(err)
|
||||
} else if len(list) != 2 {
|
||||
t.Error(len(list), list)
|
||||
}
|
||||
|
||||
if list, err := db.List([]string{"good"}, "10", "15", "2", "-"); err != nil {
|
||||
t.Error(err)
|
||||
} else if len(list) != 2 {
|
||||
t.Error(len(list), list)
|
||||
} else if list[1] > list[0] {
|
||||
t.Errorf("not desc: %v", list)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user