diff options
Diffstat (limited to 'quick_test.go')
-rw-r--r-- | quick_test.go | 53 |
1 files changed, 8 insertions, 45 deletions
diff --git a/quick_test.go b/quick_test.go index e7fb22a..4a107a8 100644 --- a/quick_test.go +++ b/quick_test.go @@ -1,30 +1,27 @@ package bolt import ( - "bytes" "flag" - "fmt" "math/rand" - "os" "reflect" - "testing" "testing/quick" "time" ) -// testing/quick defaults to 100 iterations and a random seed. +// testing/quick defaults to 5 iterations and a random seed. // You can override these settings from the command line: // -// -quickchecks The number of iterations to perform. +// -quick.count The number of iterations to perform. // -quick.seed The seed to use for randomizing. // -quick.maxitems The maximum number of items to insert into a DB. // -quick.maxksize The maximum size of a key. // -quick.maxvsize The maximum size of a value. // -var qseed, qmaxitems, qmaxksize, qmaxvsize int +var qcount, qseed, qmaxitems, qmaxksize, qmaxvsize int func init() { + flag.IntVar(&qcount, "quick.count", 5, "") flag.IntVar(&qseed, "quick.seed", int(time.Now().UnixNano())%100000, "") flag.IntVar(&qmaxitems, "quick.maxitems", 1000, "") flag.IntVar(&qmaxksize, "quick.maxksize", 1024, "") @@ -33,45 +30,11 @@ func init() { warn("seed:", qseed) } -// Ensure that a bucket can write random keys and values across multiple txns. -func TestQuickPut(t *testing.T) { - index := 0 - f := func(items testdata) bool { - withOpenDB(func(db *DB, path string) { - m := make(map[string][]byte) - - db.CreateBucket("widgets") - - for _, item := range items { - if err := db.Put("widgets", item.Key, item.Value); err != nil { - panic("put error: " + err.Error()) - } - m[string(item.Key)] = item.Value - - // Verify all key/values so far. - i := 0 - for k, v := range m { - value, err := db.Get("widgets", []byte(k)) - if err != nil { - panic("get error: " + err.Error()) - } - if !bytes.Equal(value, v) { - db.CopyFile("/tmp/bolt.random.db") - t.Fatalf("value mismatch [run %d] (%d of %d):\nkey: %x\ngot: %x\nexp: %x", index, i, len(m), []byte(k), v, value) - } - i++ - } - } - - fmt.Fprint(os.Stderr, ".") - }) - index++ - return true - } - if err := quick.Check(f, &quick.Config{Rand: rand.New(rand.NewSource(int64(qseed)))}); err != nil { - t.Error(err) +func qconfig() *quick.Config { + return &quick.Config{ + MaxCount: qcount, + Rand: rand.New(rand.NewSource(int64(qseed))), } - fmt.Fprint(os.Stderr, "\n") } type testdata []testdataitem |