Unverified Commit b8e7d934 authored by Steven Allen's avatar Steven Allen Committed by GitHub

Merge pull request #151 from ipfs/feat/set-count

test suite: Add ElemCount to control how many elements are added.
parents d099e8e2 d72bbd32
...@@ -12,6 +12,17 @@ import ( ...@@ -12,6 +12,17 @@ import (
dsq "github.com/ipfs/go-datastore/query" dsq "github.com/ipfs/go-datastore/query"
) )
// ElemCount sets with how many elements the datastore suit
// tests are usually run with. Best to set to round numbers like
// 20, 30, 40... and at least to 20.
var ElemCount = 100
func TestElemCount(t *testing.T) {
if ElemCount < 20 {
t.Fatal("ElemCount should be set to 20 at least")
}
}
func SubtestBasicPutGet(t *testing.T, ds dstore.Datastore) { func SubtestBasicPutGet(t *testing.T, ds dstore.Datastore) {
k := dstore.NewKey("foo") k := dstore.NewKey("foo")
val := []byte("Hello Datastore!") val := []byte("Hello Datastore!")
...@@ -132,20 +143,20 @@ func SubtestLimit(t *testing.T, ds dstore.Datastore) { ...@@ -132,20 +143,20 @@ func SubtestLimit(t *testing.T, ds dstore.Datastore) {
Offset: offset, Offset: offset,
Limit: limit, Limit: limit,
KeysOnly: true, KeysOnly: true,
}, 100) }, ElemCount)
}) })
} }
test(0, 10) test(0, ElemCount/10)
test(0, 0) test(0, 0)
test(10, 0) test(ElemCount/10, 0)
test(10, 10) test(ElemCount/10, ElemCount/10)
test(10, 20) test(ElemCount/10, ElemCount/5)
test(50, 20) test(ElemCount/2, ElemCount/5)
test(99, 20) test(ElemCount-1, ElemCount/5)
test(200, 20) test(ElemCount*2, ElemCount/5)
test(200, 0) test(ElemCount*2, 0)
test(99, 0) test(ElemCount-1, 0)
test(95, 0) test(ElemCount-5, 0)
} }
func SubtestOrder(t *testing.T, ds dstore.Datastore) { func SubtestOrder(t *testing.T, ds dstore.Datastore) {
...@@ -158,7 +169,7 @@ func SubtestOrder(t *testing.T, ds dstore.Datastore) { ...@@ -158,7 +169,7 @@ func SubtestOrder(t *testing.T, ds dstore.Datastore) {
t.Run(name, func(t *testing.T) { t.Run(name, func(t *testing.T) {
subtestQuery(t, ds, dsq.Query{ subtestQuery(t, ds, dsq.Query{
Orders: orders, Orders: orders,
}, 100) }, ElemCount)
}) })
} }
test(dsq.OrderByKey{}) test(dsq.OrderByKey{})
...@@ -173,7 +184,7 @@ func SubtestOrder(t *testing.T, ds dstore.Datastore) { ...@@ -173,7 +184,7 @@ func SubtestOrder(t *testing.T, ds dstore.Datastore) {
} }
func SubtestManyKeysAndQuery(t *testing.T, ds dstore.Datastore) { func SubtestManyKeysAndQuery(t *testing.T, ds dstore.Datastore) {
subtestQuery(t, ds, dsq.Query{KeysOnly: true}, 100) subtestQuery(t, ds, dsq.Query{KeysOnly: true}, ElemCount)
} }
func SubtestBasicSync(t *testing.T, ds dstore.Datastore) { func SubtestBasicSync(t *testing.T, ds dstore.Datastore) {
...@@ -217,15 +228,15 @@ func (testFilter) Filter(e dsq.Entry) bool { ...@@ -217,15 +228,15 @@ func (testFilter) Filter(e dsq.Entry) bool {
func SubtestCombinations(t *testing.T, ds dstore.Datastore) { func SubtestCombinations(t *testing.T, ds dstore.Datastore) {
offsets := []int{ offsets := []int{
0, 0,
10, ElemCount / 10,
95, ElemCount - 5,
100, ElemCount,
} }
limits := []int{ limits := []int{
0, 0,
1, 1,
10, ElemCount / 10,
100, ElemCount,
} }
filters := [][]dsq.Filter{ filters := [][]dsq.Filter{
{dsq.FilterKeyCompare{ {dsq.FilterKeyCompare{
...@@ -251,7 +262,7 @@ func SubtestCombinations(t *testing.T, ds dstore.Datastore) { ...@@ -251,7 +262,7 @@ func SubtestCombinations(t *testing.T, ds dstore.Datastore) {
lengths := []int{ lengths := []int{
0, 0,
1, 1,
100, ElemCount / 10,
} }
perms( perms(
func(perm []int) { func(perm []int) {
...@@ -347,7 +358,7 @@ func SubtestPrefix(t *testing.T, ds dstore.Datastore) { ...@@ -347,7 +358,7 @@ func SubtestPrefix(t *testing.T, ds dstore.Datastore) {
t.Run(prefix, func(t *testing.T) { t.Run(prefix, func(t *testing.T) {
subtestQuery(t, ds, dsq.Query{ subtestQuery(t, ds, dsq.Query{
Prefix: prefix, Prefix: prefix,
}, 100) }, ElemCount)
}) })
} }
test("") test("")
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment