aboutsummaryrefslogtreecommitdiff
path: root/bucket_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'bucket_test.go')
-rw-r--r--bucket_test.go343
1 files changed, 171 insertions, 172 deletions
diff --git a/bucket_test.go b/bucket_test.go
index 6923b6c..90e704a 100644
--- a/bucket_test.go
+++ b/bucket_test.go
@@ -13,7 +13,6 @@ import (
"testing/quick"
"github.com/boltdb/bolt"
- "github.com/stretchr/testify/assert"
)
// Ensure that a bucket that gets a non-existent key returns nil.
@@ -23,7 +22,7 @@ func TestBucket_Get_NonExistent(t *testing.T) {
db.Update(func(tx *bolt.Tx) error {
tx.CreateBucket([]byte("widgets"))
value := tx.Bucket([]byte("widgets")).Get([]byte("foo"))
- assert.Nil(t, value)
+ assert(t, value == nil, "")
return nil
})
}
@@ -37,7 +36,7 @@ func TestBucket_Get_FromNode(t *testing.T) {
b := tx.Bucket([]byte("widgets"))
b.Put([]byte("foo"), []byte("bar"))
value := b.Get([]byte("foo"))
- assert.Equal(t, value, []byte("bar"))
+ equals(t, []byte("bar"), value)
return nil
})
}
@@ -49,8 +48,8 @@ func TestBucket_Get_IncompatibleValue(t *testing.T) {
db.Update(func(tx *bolt.Tx) error {
tx.CreateBucket([]byte("widgets"))
_, err := tx.Bucket([]byte("widgets")).CreateBucket([]byte("foo"))
- assert.NoError(t, err)
- assert.Nil(t, tx.Bucket([]byte("widgets")).Get([]byte("foo")))
+ ok(t, err)
+ assert(t, tx.Bucket([]byte("widgets")).Get([]byte("foo")) == nil, "")
return nil
})
}
@@ -62,9 +61,9 @@ func TestBucket_Put(t *testing.T) {
db.Update(func(tx *bolt.Tx) error {
tx.CreateBucket([]byte("widgets"))
err := tx.Bucket([]byte("widgets")).Put([]byte("foo"), []byte("bar"))
- assert.NoError(t, err)
+ ok(t, err)
value := tx.Bucket([]byte("widgets")).Get([]byte("foo"))
- assert.Equal(t, value, []byte("bar"))
+ equals(t, value, []byte("bar"))
return nil
})
}
@@ -76,10 +75,10 @@ func TestBucket_Put_Repeat(t *testing.T) {
db.Update(func(tx *bolt.Tx) error {
tx.CreateBucket([]byte("widgets"))
b := tx.Bucket([]byte("widgets"))
- assert.NoError(t, b.Put([]byte("foo"), []byte("bar")))
- assert.NoError(t, b.Put([]byte("foo"), []byte("baz")))
+ ok(t, b.Put([]byte("foo"), []byte("bar")))
+ ok(t, b.Put([]byte("foo"), []byte("baz")))
value := tx.Bucket([]byte("widgets")).Get([]byte("foo"))
- assert.Equal(t, value, []byte("baz"))
+ equals(t, value, []byte("baz"))
return nil
})
}
@@ -94,7 +93,7 @@ func TestBucket_Put_Large(t *testing.T) {
tx.CreateBucket([]byte("widgets"))
b := tx.Bucket([]byte("widgets"))
for i := 1; i < count; i++ {
- assert.NoError(t, b.Put([]byte(strings.Repeat("0", i*factor)), []byte(strings.Repeat("X", (count-i)*factor))))
+ ok(t, b.Put([]byte(strings.Repeat("0", i*factor)), []byte(strings.Repeat("X", (count-i)*factor))))
}
return nil
})
@@ -102,7 +101,7 @@ func TestBucket_Put_Large(t *testing.T) {
b := tx.Bucket([]byte("widgets"))
for i := 1; i < count; i++ {
value := b.Get([]byte(strings.Repeat("0", i*factor)))
- assert.Equal(t, []byte(strings.Repeat("X", (count-i)*factor)), value)
+ equals(t, []byte(strings.Repeat("X", (count-i)*factor)), value)
}
return nil
})
@@ -126,11 +125,11 @@ func TestDB_Put_VeryLarge(t *testing.T) {
for j := 0; j < batchN; j++ {
k, v := make([]byte, ksize), make([]byte, vsize)
binary.BigEndian.PutUint32(k, uint32(i+j))
- assert.NoError(t, b.Put(k, v))
+ ok(t, b.Put(k, v))
}
return nil
})
- assert.NoError(t, err)
+ ok(t, err)
}
}
@@ -141,8 +140,8 @@ func TestBucket_Put_IncompatibleValue(t *testing.T) {
db.Update(func(tx *bolt.Tx) error {
tx.CreateBucket([]byte("widgets"))
_, err := tx.Bucket([]byte("widgets")).CreateBucket([]byte("foo"))
- assert.NoError(t, err)
- assert.Equal(t, bolt.ErrIncompatibleValue, tx.Bucket([]byte("widgets")).Put([]byte("foo"), []byte("bar")))
+ ok(t, err)
+ equals(t, bolt.ErrIncompatibleValue, tx.Bucket([]byte("widgets")).Put([]byte("foo"), []byte("bar")))
return nil
})
}
@@ -155,7 +154,7 @@ func TestBucket_Put_Closed(t *testing.T) {
tx.CreateBucket([]byte("widgets"))
b := tx.Bucket([]byte("widgets"))
tx.Rollback()
- assert.Equal(t, bolt.ErrTxClosed, b.Put([]byte("foo"), []byte("bar")))
+ equals(t, bolt.ErrTxClosed, b.Put([]byte("foo"), []byte("bar")))
}
// Ensure that setting a value on a read-only bucket returns an error.
@@ -164,13 +163,13 @@ func TestBucket_Put_ReadOnly(t *testing.T) {
defer db.Close()
db.Update(func(tx *bolt.Tx) error {
_, err := tx.CreateBucket([]byte("widgets"))
- assert.NoError(t, err)
+ ok(t, err)
return nil
})
db.View(func(tx *bolt.Tx) error {
b := tx.Bucket([]byte("widgets"))
err := b.Put([]byte("foo"), []byte("bar"))
- assert.Equal(t, err, bolt.ErrTxNotWritable)
+ equals(t, err, bolt.ErrTxNotWritable)
return nil
})
}
@@ -183,9 +182,9 @@ func TestBucket_Delete(t *testing.T) {
tx.CreateBucket([]byte("widgets"))
tx.Bucket([]byte("widgets")).Put([]byte("foo"), []byte("bar"))
err := tx.Bucket([]byte("widgets")).Delete([]byte("foo"))
- assert.NoError(t, err)
+ ok(t, err)
value := tx.Bucket([]byte("widgets")).Get([]byte("foo"))
- assert.Nil(t, value)
+ assert(t, value == nil, "")
return nil
})
}
@@ -197,21 +196,21 @@ func TestBucket_Delete_Large(t *testing.T) {
db.Update(func(tx *bolt.Tx) error {
var b, _ = tx.CreateBucket([]byte("widgets"))
for i := 0; i < 100; i++ {
- assert.NoError(t, b.Put([]byte(strconv.Itoa(i)), []byte(strings.Repeat("*", 1024))))
+ ok(t, b.Put([]byte(strconv.Itoa(i)), []byte(strings.Repeat("*", 1024))))
}
return nil
})
db.Update(func(tx *bolt.Tx) error {
var b = tx.Bucket([]byte("widgets"))
for i := 0; i < 100; i++ {
- assert.NoError(t, b.Delete([]byte(strconv.Itoa(i))))
+ ok(t, b.Delete([]byte(strconv.Itoa(i))))
}
return nil
})
db.View(func(tx *bolt.Tx) error {
var b = tx.Bucket([]byte("widgets"))
for i := 0; i < 100; i++ {
- assert.Nil(t, b.Get([]byte(strconv.Itoa(i))))
+ assert(t, b.Get([]byte(strconv.Itoa(i))) == nil, "")
}
return nil
})
@@ -260,7 +259,7 @@ func TestBucket_Delete_FreelistOverflow(t *testing.T) {
})
// Check that a freelist overflow occurred.
- assert.NoError(t, err)
+ ok(t, err)
}
// Ensure that accessing and updating nested buckets is ok across transactions.
@@ -270,14 +269,14 @@ func TestBucket_Nested(t *testing.T) {
db.Update(func(tx *bolt.Tx) error {
// Create a widgets bucket.
b, err := tx.CreateBucket([]byte("widgets"))
- assert.NoError(t, err)
+ ok(t, err)
// Create a widgets/foo bucket.
_, err = b.CreateBucket([]byte("foo"))
- assert.NoError(t, err)
+ ok(t, err)
// Create a widgets/bar key.
- assert.NoError(t, b.Put([]byte("bar"), []byte("0000")))
+ ok(t, b.Put([]byte("bar"), []byte("0000")))
return nil
})
@@ -286,7 +285,7 @@ func TestBucket_Nested(t *testing.T) {
// Update widgets/bar.
db.Update(func(tx *bolt.Tx) error {
var b = tx.Bucket([]byte("widgets"))
- assert.NoError(t, b.Put([]byte("bar"), []byte("xxxx")))
+ ok(t, b.Put([]byte("bar"), []byte("xxxx")))
return nil
})
db.MustCheck()
@@ -295,7 +294,7 @@ func TestBucket_Nested(t *testing.T) {
db.Update(func(tx *bolt.Tx) error {
var b = tx.Bucket([]byte("widgets"))
for i := 0; i < 10000; i++ {
- assert.NoError(t, b.Put([]byte(strconv.Itoa(i)), []byte(strconv.Itoa(i))))
+ ok(t, b.Put([]byte(strconv.Itoa(i)), []byte(strconv.Itoa(i))))
}
return nil
})
@@ -304,7 +303,7 @@ func TestBucket_Nested(t *testing.T) {
// Insert into widgets/foo/baz.
db.Update(func(tx *bolt.Tx) error {
var b = tx.Bucket([]byte("widgets"))
- assert.NoError(t, b.Bucket([]byte("foo")).Put([]byte("baz"), []byte("yyyy")))
+ ok(t, b.Bucket([]byte("foo")).Put([]byte("baz"), []byte("yyyy")))
return nil
})
db.MustCheck()
@@ -312,10 +311,10 @@ func TestBucket_Nested(t *testing.T) {
// Verify.
db.View(func(tx *bolt.Tx) error {
var b = tx.Bucket([]byte("widgets"))
- assert.Equal(t, []byte("yyyy"), b.Bucket([]byte("foo")).Get([]byte("baz")))
- assert.Equal(t, []byte("xxxx"), b.Get([]byte("bar")))
+ equals(t, []byte("yyyy"), b.Bucket([]byte("foo")).Get([]byte("baz")))
+ equals(t, []byte("xxxx"), b.Get([]byte("bar")))
for i := 0; i < 10000; i++ {
- assert.Equal(t, []byte(strconv.Itoa(i)), b.Get([]byte(strconv.Itoa(i))))
+ equals(t, []byte(strconv.Itoa(i)), b.Get([]byte(strconv.Itoa(i))))
}
return nil
})
@@ -329,8 +328,8 @@ func TestBucket_Delete_Bucket(t *testing.T) {
tx.CreateBucket([]byte("widgets"))
b := tx.Bucket([]byte("widgets"))
_, err := b.CreateBucket([]byte("foo"))
- assert.NoError(t, err)
- assert.Equal(t, bolt.ErrIncompatibleValue, b.Delete([]byte("foo")))
+ ok(t, err)
+ equals(t, bolt.ErrIncompatibleValue, b.Delete([]byte("foo")))
return nil
})
}
@@ -346,7 +345,7 @@ func TestBucket_Delete_ReadOnly(t *testing.T) {
db.View(func(tx *bolt.Tx) error {
b := tx.Bucket([]byte("widgets"))
err := b.Delete([]byte("foo"))
- assert.Equal(t, err, bolt.ErrTxNotWritable)
+ equals(t, err, bolt.ErrTxNotWritable)
return nil
})
}
@@ -359,7 +358,7 @@ func TestBucket_Delete_Closed(t *testing.T) {
tx.CreateBucket([]byte("widgets"))
b := tx.Bucket([]byte("widgets"))
tx.Rollback()
- assert.Equal(t, bolt.ErrTxClosed, b.Delete([]byte("foo")))
+ equals(t, bolt.ErrTxClosed, b.Delete([]byte("foo")))
}
// Ensure that deleting a bucket causes nested buckets to be deleted.
@@ -369,11 +368,11 @@ func TestBucket_DeleteBucket_Nested(t *testing.T) {
db.Update(func(tx *bolt.Tx) error {
tx.CreateBucket([]byte("widgets"))
_, err := tx.Bucket([]byte("widgets")).CreateBucket([]byte("foo"))
- assert.NoError(t, err)
+ ok(t, err)
_, err = tx.Bucket([]byte("widgets")).Bucket([]byte("foo")).CreateBucket([]byte("bar"))
- assert.NoError(t, err)
- assert.NoError(t, tx.Bucket([]byte("widgets")).Bucket([]byte("foo")).Bucket([]byte("bar")).Put([]byte("baz"), []byte("bat")))
- assert.NoError(t, tx.Bucket([]byte("widgets")).DeleteBucket([]byte("foo")))
+ ok(t, err)
+ ok(t, tx.Bucket([]byte("widgets")).Bucket([]byte("foo")).Bucket([]byte("bar")).Put([]byte("baz"), []byte("bat")))
+ ok(t, tx.Bucket([]byte("widgets")).DeleteBucket([]byte("foo")))
return nil
})
}
@@ -385,22 +384,22 @@ func TestBucket_DeleteBucket_Nested2(t *testing.T) {
db.Update(func(tx *bolt.Tx) error {
tx.CreateBucket([]byte("widgets"))
_, err := tx.Bucket([]byte("widgets")).CreateBucket([]byte("foo"))
- assert.NoError(t, err)
+ ok(t, err)
_, err = tx.Bucket([]byte("widgets")).Bucket([]byte("foo")).CreateBucket([]byte("bar"))
- assert.NoError(t, err)
- assert.NoError(t, tx.Bucket([]byte("widgets")).Bucket([]byte("foo")).Bucket([]byte("bar")).Put([]byte("baz"), []byte("bat")))
+ ok(t, err)
+ ok(t, tx.Bucket([]byte("widgets")).Bucket([]byte("foo")).Bucket([]byte("bar")).Put([]byte("baz"), []byte("bat")))
return nil
})
db.Update(func(tx *bolt.Tx) error {
- assert.NotNil(t, tx.Bucket([]byte("widgets")))
- assert.NotNil(t, tx.Bucket([]byte("widgets")).Bucket([]byte("foo")))
- assert.NotNil(t, tx.Bucket([]byte("widgets")).Bucket([]byte("foo")).Bucket([]byte("bar")))
- assert.Equal(t, []byte("bat"), tx.Bucket([]byte("widgets")).Bucket([]byte("foo")).Bucket([]byte("bar")).Get([]byte("baz")))
- assert.NoError(t, tx.DeleteBucket([]byte("widgets")))
+ assert(t, tx.Bucket([]byte("widgets")) != nil, "")
+ assert(t, tx.Bucket([]byte("widgets")).Bucket([]byte("foo")) != nil, "")
+ assert(t, tx.Bucket([]byte("widgets")).Bucket([]byte("foo")).Bucket([]byte("bar")) != nil, "")
+ equals(t, []byte("bat"), tx.Bucket([]byte("widgets")).Bucket([]byte("foo")).Bucket([]byte("bar")).Get([]byte("baz")))
+ ok(t, tx.DeleteBucket([]byte("widgets")))
return nil
})
db.View(func(tx *bolt.Tx) error {
- assert.Nil(t, tx.Bucket([]byte("widgets")))
+ assert(t, tx.Bucket([]byte("widgets")) == nil, "")
return nil
})
}
@@ -411,17 +410,17 @@ func TestBucket_DeleteBucket_Large(t *testing.T) {
defer db.Close()
db.Update(func(tx *bolt.Tx) error {
_, err := tx.CreateBucket([]byte("widgets"))
- assert.NoError(t, err)
+ ok(t, err)
_, err = tx.Bucket([]byte("widgets")).CreateBucket([]byte("foo"))
- assert.NoError(t, err)
+ ok(t, err)
b := tx.Bucket([]byte("widgets")).Bucket([]byte("foo"))
for i := 0; i < 1000; i++ {
- assert.NoError(t, b.Put([]byte(fmt.Sprintf("%d", i)), []byte(fmt.Sprintf("%0100d", i))))
+ ok(t, b.Put([]byte(fmt.Sprintf("%d", i)), []byte(fmt.Sprintf("%0100d", i))))
}
return nil
})
db.Update(func(tx *bolt.Tx) error {
- assert.NoError(t, tx.DeleteBucket([]byte("widgets")))
+ ok(t, tx.DeleteBucket([]byte("widgets")))
return nil
})
@@ -434,8 +433,8 @@ func TestBucket_Bucket_IncompatibleValue(t *testing.T) {
defer db.Close()
db.Update(func(tx *bolt.Tx) error {
tx.CreateBucket([]byte("widgets"))
- assert.NoError(t, tx.Bucket([]byte("widgets")).Put([]byte("foo"), []byte("bar")))
- assert.Nil(t, tx.Bucket([]byte("widgets")).Bucket([]byte("foo")))
+ ok(t, tx.Bucket([]byte("widgets")).Put([]byte("foo"), []byte("bar")))
+ assert(t, tx.Bucket([]byte("widgets")).Bucket([]byte("foo")) == nil, "")
return nil
})
}
@@ -446,10 +445,10 @@ func TestBucket_CreateBucket_IncompatibleValue(t *testing.T) {
defer db.Close()
db.Update(func(tx *bolt.Tx) error {
_, err := tx.CreateBucket([]byte("widgets"))
- assert.NoError(t, err)
- assert.NoError(t, tx.Bucket([]byte("widgets")).Put([]byte("foo"), []byte("bar")))
+ ok(t, err)
+ ok(t, tx.Bucket([]byte("widgets")).Put([]byte("foo"), []byte("bar")))
_, err = tx.Bucket([]byte("widgets")).CreateBucket([]byte("foo"))
- assert.Equal(t, bolt.ErrIncompatibleValue, err)
+ equals(t, bolt.ErrIncompatibleValue, err)
return nil
})
}
@@ -460,9 +459,9 @@ func TestBucket_DeleteBucket_IncompatibleValue(t *testing.T) {
defer db.Close()
db.Update(func(tx *bolt.Tx) error {
_, err := tx.CreateBucket([]byte("widgets"))
- assert.NoError(t, err)
- assert.NoError(t, tx.Bucket([]byte("widgets")).Put([]byte("foo"), []byte("bar")))
- assert.Equal(t, bolt.ErrIncompatibleValue, tx.Bucket([]byte("widgets")).DeleteBucket([]byte("foo")))
+ ok(t, err)
+ ok(t, tx.Bucket([]byte("widgets")).Put([]byte("foo"), []byte("bar")))
+ equals(t, bolt.ErrIncompatibleValue, tx.Bucket([]byte("widgets")).DeleteBucket([]byte("foo")))
return nil
})
}
@@ -477,16 +476,16 @@ func TestBucket_NextSequence(t *testing.T) {
// Make sure sequence increments.
seq, err := tx.Bucket([]byte("widgets")).NextSequence()
- assert.NoError(t, err)
- assert.Equal(t, seq, uint64(1))
+ ok(t, err)
+ equals(t, seq, uint64(1))
seq, err = tx.Bucket([]byte("widgets")).NextSequence()
- assert.NoError(t, err)
- assert.Equal(t, seq, uint64(2))
+ ok(t, err)
+ equals(t, seq, uint64(2))
// Buckets should be separate.
seq, err = tx.Bucket([]byte("woojits")).NextSequence()
- assert.NoError(t, err)
- assert.Equal(t, seq, uint64(1))
+ ok(t, err)
+ equals(t, seq, uint64(1))
return nil
})
}
@@ -502,8 +501,8 @@ func TestBucket_NextSequence_ReadOnly(t *testing.T) {
db.View(func(tx *bolt.Tx) error {
b := tx.Bucket([]byte("widgets"))
i, err := b.NextSequence()
- assert.Equal(t, i, uint64(0))
- assert.Equal(t, err, bolt.ErrTxNotWritable)
+ equals(t, i, uint64(0))
+ equals(t, err, bolt.ErrTxNotWritable)
return nil
})
}
@@ -517,7 +516,7 @@ func TestBucket_NextSequence_Closed(t *testing.T) {
b := tx.Bucket([]byte("widgets"))
tx.Rollback()
_, err := b.NextSequence()
- assert.Equal(t, bolt.ErrTxClosed, err)
+ equals(t, bolt.ErrTxClosed, err)
}
// Ensure a user can loop over all key/value pairs in a bucket.
@@ -534,20 +533,20 @@ func TestBucket_ForEach(t *testing.T) {
err := tx.Bucket([]byte("widgets")).ForEach(func(k, v []byte) error {
switch index {
case 0:
- assert.Equal(t, k, []byte("bar"))
- assert.Equal(t, v, []byte("0002"))
+ equals(t, k, []byte("bar"))
+ equals(t, v, []byte("0002"))
case 1:
- assert.Equal(t, k, []byte("baz"))
- assert.Equal(t, v, []byte("0001"))
+ equals(t, k, []byte("baz"))
+ equals(t, v, []byte("0001"))
case 2:
- assert.Equal(t, k, []byte("foo"))
- assert.Equal(t, v, []byte("0000"))
+ equals(t, k, []byte("foo"))
+ equals(t, v, []byte("0000"))
}
index++
return nil
})
- assert.NoError(t, err)
- assert.Equal(t, index, 3)
+ ok(t, err)
+ equals(t, index, 3)
return nil
})
}
@@ -570,8 +569,8 @@ func TestBucket_ForEach_ShortCircuit(t *testing.T) {
}
return nil
})
- assert.Equal(t, errors.New("marker"), err)
- assert.Equal(t, 2, index)
+ equals(t, errors.New("marker"), err)
+ equals(t, 2, index)
return nil
})
}
@@ -585,7 +584,7 @@ func TestBucket_ForEach_Closed(t *testing.T) {
b := tx.Bucket([]byte("widgets"))
tx.Rollback()
err := b.ForEach(func(k, v []byte) error { return nil })
- assert.Equal(t, bolt.ErrTxClosed, err)
+ equals(t, bolt.ErrTxClosed, err)
}
// Ensure that an error is returned when inserting with an empty key.
@@ -595,9 +594,9 @@ func TestBucket_Put_EmptyKey(t *testing.T) {
db.Update(func(tx *bolt.Tx) error {
tx.CreateBucket([]byte("widgets"))
err := tx.Bucket([]byte("widgets")).Put([]byte(""), []byte("bar"))
- assert.Equal(t, err, bolt.ErrKeyRequired)
+ equals(t, err, bolt.ErrKeyRequired)
err = tx.Bucket([]byte("widgets")).Put(nil, []byte("bar"))
- assert.Equal(t, err, bolt.ErrKeyRequired)
+ equals(t, err, bolt.ErrKeyRequired)
return nil
})
}
@@ -609,7 +608,7 @@ func TestBucket_Put_KeyTooLarge(t *testing.T) {
db.Update(func(tx *bolt.Tx) error {
tx.CreateBucket([]byte("widgets"))
err := tx.Bucket([]byte("widgets")).Put(make([]byte, 32769), []byte("bar"))
- assert.Equal(t, err, bolt.ErrKeyTooLarge)
+ equals(t, err, bolt.ErrKeyTooLarge)
return nil
})
}
@@ -636,33 +635,33 @@ func TestBucket_Stats(t *testing.T) {
db.View(func(tx *bolt.Tx) error {
b := tx.Bucket([]byte("woojits"))
stats := b.Stats()
- assert.Equal(t, 1, stats.BranchPageN, "BranchPageN")
- assert.Equal(t, 0, stats.BranchOverflowN, "BranchOverflowN")
- assert.Equal(t, 7, stats.LeafPageN, "LeafPageN")
- assert.Equal(t, 2, stats.LeafOverflowN, "LeafOverflowN")
- assert.Equal(t, 501, stats.KeyN, "KeyN")
- assert.Equal(t, 2, stats.Depth, "Depth")
+ equals(t, 1, stats.BranchPageN)
+ equals(t, 0, stats.BranchOverflowN)
+ equals(t, 7, stats.LeafPageN)
+ equals(t, 2, stats.LeafOverflowN)
+ equals(t, 501, stats.KeyN)
+ equals(t, 2, stats.Depth)
branchInuse := 16 // branch page header
branchInuse += 7 * 16 // branch elements
branchInuse += 7 * 3 // branch keys (6 3-byte keys)
- assert.Equal(t, branchInuse, stats.BranchInuse, "BranchInuse")
+ equals(t, branchInuse, stats.BranchInuse)
leafInuse := 7 * 16 // leaf page header
leafInuse += 501 * 16 // leaf elements
leafInuse += 500*3 + len(big_key) // leaf keys
leafInuse += 1*10 + 2*90 + 3*400 + 10000 // leaf values
- assert.Equal(t, leafInuse, stats.LeafInuse, "LeafInuse")
+ equals(t, leafInuse, stats.LeafInuse)
if os.Getpagesize() == 4096 {
// Incompatible page size
- assert.Equal(t, 4096, stats.BranchAlloc, "BranchAlloc")
- assert.Equal(t, 36864, stats.LeafAlloc, "LeafAlloc")
+ equals(t, 4096, stats.BranchAlloc)
+ equals(t, 36864, stats.LeafAlloc)
}
- assert.Equal(t, 1, stats.BucketN, "BucketN")
- assert.Equal(t, 0, stats.InlineBucketN, "InlineBucketN")
- assert.Equal(t, 0, stats.InlineBucketInuse, "InlineBucketInuse")
+ equals(t, 1, stats.BucketN)
+ equals(t, 0, stats.InlineBucketN)
+ equals(t, 0, stats.InlineBucketInuse)
return nil
})
}
@@ -698,17 +697,17 @@ func TestBucket_Stats_RandomFill(t *testing.T) {
db.View(func(tx *bolt.Tx) error {
s := tx.Bucket([]byte("woojits")).Stats()
- assert.Equal(t, 100000, s.KeyN, "KeyN")
+ equals(t, 100000, s.KeyN)
- assert.Equal(t, 98, s.BranchPageN, "BranchPageN")
- assert.Equal(t, 0, s.BranchOverflowN, "BranchOverflowN")
- assert.Equal(t, 130984, s.BranchInuse, "BranchInuse")
- assert.Equal(t, 401408, s.BranchAlloc, "BranchAlloc")
+ equals(t, 98, s.BranchPageN)
+ equals(t, 0, s.BranchOverflowN)
+ equals(t, 130984, s.BranchInuse)
+ equals(t, 401408, s.BranchAlloc)
- assert.Equal(t, 3412, s.LeafPageN, "LeafPageN")
- assert.Equal(t, 0, s.LeafOverflowN, "LeafOverflowN")
- assert.Equal(t, 4742482, s.LeafInuse, "LeafInuse")
- assert.Equal(t, 13975552, s.LeafAlloc, "LeafAlloc")
+ equals(t, 3412, s.LeafPageN)
+ equals(t, 0, s.LeafOverflowN)
+ equals(t, 4742482, s.LeafInuse)
+ equals(t, 13975552, s.LeafAlloc)
return nil
})
}
@@ -720,7 +719,7 @@ func TestBucket_Stats_Small(t *testing.T) {
db.Update(func(tx *bolt.Tx) error {
// Add a bucket that fits on a single root leaf.
b, err := tx.CreateBucket([]byte("whozawhats"))
- assert.NoError(t, err)
+ ok(t, err)
b.Put([]byte("foo"), []byte("bar"))
return nil
@@ -729,22 +728,22 @@ func TestBucket_Stats_Small(t *testing.T) {
db.View(func(tx *bolt.Tx) error {
b := tx.Bucket([]byte("whozawhats"))
stats := b.Stats()
- assert.Equal(t, 0, stats.BranchPageN, "BranchPageN")
- assert.Equal(t, 0, stats.BranchOverflowN, "BranchOverflowN")
- assert.Equal(t, 0, stats.LeafPageN, "LeafPageN")
- assert.Equal(t, 0, stats.LeafOverflowN, "LeafOverflowN")
- assert.Equal(t, 1, stats.KeyN, "KeyN")
- assert.Equal(t, 1, stats.Depth, "Depth")
- assert.Equal(t, 0, stats.BranchInuse, "BranchInuse")
- assert.Equal(t, 0, stats.LeafInuse, "LeafInuse")
+ equals(t, 0, stats.BranchPageN)
+ equals(t, 0, stats.BranchOverflowN)
+ equals(t, 0, stats.LeafPageN)
+ equals(t, 0, stats.LeafOverflowN)
+ equals(t, 1, stats.KeyN)
+ equals(t, 1, stats.Depth)
+ equals(t, 0, stats.BranchInuse)
+ equals(t, 0, stats.LeafInuse)
if os.Getpagesize() == 4096 {
// Incompatible page size
- assert.Equal(t, 0, stats.BranchAlloc, "BranchAlloc")
- assert.Equal(t, 0, stats.LeafAlloc, "LeafAlloc")
+ equals(t, 0, stats.BranchAlloc)
+ equals(t, 0, stats.LeafAlloc)
}
- assert.Equal(t, 1, stats.BucketN, "BucketN")
- assert.Equal(t, 1, stats.InlineBucketN, "InlineBucketN")
- assert.Equal(t, 16+16+6, stats.InlineBucketInuse, "InlineBucketInuse")
+ equals(t, 1, stats.BucketN)
+ equals(t, 1, stats.InlineBucketN)
+ equals(t, 16+16+6, stats.InlineBucketInuse)
return nil
})
}
@@ -756,29 +755,29 @@ func TestBucket_Stats_EmptyBucket(t *testing.T) {
db.Update(func(tx *bolt.Tx) error {
// Add a bucket that fits on a single root leaf.
_, err := tx.CreateBucket([]byte("whozawhats"))
- assert.NoError(t, err)
+ ok(t, err)
return nil
})
db.MustCheck()
db.View(func(tx *bolt.Tx) error {
b := tx.Bucket([]byte("whozawhats"))
stats := b.Stats()
- assert.Equal(t, 0, stats.BranchPageN, "BranchPageN")
- assert.Equal(t, 0, stats.BranchOverflowN, "BranchOverflowN")
- assert.Equal(t, 0, stats.LeafPageN, "LeafPageN")
- assert.Equal(t, 0, stats.LeafOverflowN, "LeafOverflowN")
- assert.Equal(t, 0, stats.KeyN, "KeyN")
- assert.Equal(t, 1, stats.Depth, "Depth")
- assert.Equal(t, 0, stats.BranchInuse, "BranchInuse")
- assert.Equal(t, 0, stats.LeafInuse, "LeafInuse")
+ equals(t, 0, stats.BranchPageN)
+ equals(t, 0, stats.BranchOverflowN)
+ equals(t, 0, stats.LeafPageN)
+ equals(t, 0, stats.LeafOverflowN)
+ equals(t, 0, stats.KeyN)
+ equals(t, 1, stats.Depth)
+ equals(t, 0, stats.BranchInuse)
+ equals(t, 0, stats.LeafInuse)
if os.Getpagesize() == 4096 {
// Incompatible page size
- assert.Equal(t, 0, stats.BranchAlloc, "BranchAlloc")
- assert.Equal(t, 0, stats.LeafAlloc, "LeafAlloc")
+ equals(t, 0, stats.BranchAlloc)
+ equals(t, 0, stats.LeafAlloc)
}
- assert.Equal(t, 1, stats.BucketN, "BucketN")
- assert.Equal(t, 1, stats.InlineBucketN, "InlineBucketN")
- assert.Equal(t, 16, stats.InlineBucketInuse, "InlineBucketInuse")
+ equals(t, 1, stats.BucketN)
+ equals(t, 1, stats.InlineBucketN)
+ equals(t, 16, stats.InlineBucketInuse)
return nil
})
}
@@ -790,17 +789,17 @@ func TestBucket_Stats_Nested(t *testing.T) {
db.Update(func(tx *bolt.Tx) error {
b, err := tx.CreateBucket([]byte("foo"))
- assert.NoError(t, err)
+ ok(t, err)
for i := 0; i < 100; i++ {
b.Put([]byte(fmt.Sprintf("%02d", i)), []byte(fmt.Sprintf("%02d", i)))
}
bar, err := b.CreateBucket([]byte("bar"))
- assert.NoError(t, err)
+ ok(t, err)
for i := 0; i < 10; i++ {
bar.Put([]byte(strconv.Itoa(i)), []byte(strconv.Itoa(i)))
}
baz, err := bar.CreateBucket([]byte("baz"))
- assert.NoError(t, err)
+ ok(t, err)
for i := 0; i < 10; i++ {
baz.Put([]byte(strconv.Itoa(i)), []byte(strconv.Itoa(i)))
}
@@ -812,13 +811,13 @@ func TestBucket_Stats_Nested(t *testing.T) {
db.View(func(tx *bolt.Tx) error {
b := tx.Bucket([]byte("foo"))
stats := b.Stats()
- assert.Equal(t, 0, stats.BranchPageN, "BranchPageN")
- assert.Equal(t, 0, stats.BranchOverflowN, "BranchOverflowN")
- assert.Equal(t, 2, stats.LeafPageN, "LeafPageN")
- assert.Equal(t, 0, stats.LeafOverflowN, "LeafOverflowN")
- assert.Equal(t, 122, stats.KeyN, "KeyN")
- assert.Equal(t, 3, stats.Depth, "Depth")
- assert.Equal(t, 0, stats.BranchInuse, "BranchInuse")
+ equals(t, 0, stats.BranchPageN)
+ equals(t, 0, stats.BranchOverflowN)
+ equals(t, 2, stats.LeafPageN)
+ equals(t, 0, stats.LeafOverflowN)
+ equals(t, 122, stats.KeyN)
+ equals(t, 3, stats.Depth)
+ equals(t, 0, stats.BranchInuse)
foo := 16 // foo (pghdr)
foo += 101 * 16 // foo leaf elements
@@ -834,15 +833,15 @@ func TestBucket_Stats_Nested(t *testing.T) {
baz += 10 * 16 // baz leaf elements
baz += 10 + 10 // baz leaf key/values
- assert.Equal(t, foo+bar+baz, stats.LeafInuse, "LeafInuse")
+ equals(t, foo+bar+baz, stats.LeafInuse)
if os.Getpagesize() == 4096 {
// Incompatible page size
- assert.Equal(t, 0, stats.BranchAlloc, "BranchAlloc")
- assert.Equal(t, 8192, stats.LeafAlloc, "LeafAlloc")
+ equals(t, 0, stats.BranchAlloc)
+ equals(t, 8192, stats.LeafAlloc)
}
- assert.Equal(t, 3, stats.BucketN, "BucketN")
- assert.Equal(t, 1, stats.InlineBucketN, "InlineBucketN")
- assert.Equal(t, baz, stats.InlineBucketInuse, "InlineBucketInuse")
+ equals(t, 3, stats.BucketN)
+ equals(t, 1, stats.InlineBucketN)
+ equals(t, baz, stats.InlineBucketInuse)
return nil
})
}
@@ -873,22 +872,22 @@ func TestBucket_Stats_Large(t *testing.T) {
db.View(func(tx *bolt.Tx) error {
b := tx.Bucket([]byte("widgets"))
stats := b.Stats()
- assert.Equal(t, 13, stats.BranchPageN, "BranchPageN")
- assert.Equal(t, 0, stats.BranchOverflowN, "BranchOverflowN")
- assert.Equal(t, 1196, stats.LeafPageN, "LeafPageN")
- assert.Equal(t, 0, stats.LeafOverflowN, "LeafOverflowN")
- assert.Equal(t, 100000, stats.KeyN, "KeyN")
- assert.Equal(t, 3, stats.Depth, "Depth")
- assert.Equal(t, 25257, stats.BranchInuse, "BranchInuse")
- assert.Equal(t, 2596916, stats.LeafInuse, "LeafInuse")
+ equals(t, 13, stats.BranchPageN)
+ equals(t, 0, stats.BranchOverflowN)
+ equals(t, 1196, stats.LeafPageN)
+ equals(t, 0, stats.LeafOverflowN)
+ equals(t, 100000, stats.KeyN)
+ equals(t, 3, stats.Depth)
+ equals(t, 25257, stats.BranchInuse)
+ equals(t, 2596916, stats.LeafInuse)
if os.Getpagesize() == 4096 {
// Incompatible page size
- assert.Equal(t, 53248, stats.BranchAlloc, "BranchAlloc")
- assert.Equal(t, 4898816, stats.LeafAlloc, "LeafAlloc")
+ equals(t, 53248, stats.BranchAlloc)
+ equals(t, 4898816, stats.LeafAlloc)
}
- assert.Equal(t, 1, stats.BucketN, "BucketN")
- assert.Equal(t, 0, stats.InlineBucketN, "InlineBucketN")
- assert.Equal(t, 0, stats.InlineBucketInuse, "InlineBucketInuse")
+ equals(t, 1, stats.BucketN)
+ equals(t, 0, stats.InlineBucketN)
+ equals(t, 0, stats.InlineBucketInuse)
return nil
})
}
@@ -960,20 +959,20 @@ func TestBucket_Put_Multiple(t *testing.T) {
err := db.Update(func(tx *bolt.Tx) error {
b := tx.Bucket([]byte("widgets"))
for _, item := range items {
- assert.NoError(t, b.Put(item.Key, item.Value))
+ ok(t, b.Put(item.Key, item.Value))
}
return nil
})
- assert.NoError(t, err)
+ ok(t, err)
// Verify all items exist.
db.View(func(tx *bolt.Tx) error {
b := tx.Bucket([]byte("widgets"))
for _, item := range items {
value := b.Get(item.Key)
- if !assert.Equal(t, item.Value, value) {
+ if !bytes.Equal(item.Value, value) {
db.CopyTempFile()
- t.FailNow()
+ t.Fatalf("exp=%x; got=%x", item.Value, value)
}
}
return nil
@@ -1002,18 +1001,18 @@ func TestBucket_Delete_Quick(t *testing.T) {
err := db.Update(func(tx *bolt.Tx) error {
b := tx.Bucket([]byte("widgets"))
for _, item := range items {
- assert.NoError(t, b.Put(item.Key, item.Value))
+ ok(t, b.Put(item.Key, item.Value))
}
return nil
})
- assert.NoError(t, err)
+ ok(t, err)
// Remove items one at a time and check consistency.
for _, item := range items {
err := db.Update(func(tx *bolt.Tx) error {
return tx.Bucket([]byte("widgets")).Delete(item.Key)
})
- assert.NoError(t, err)
+ ok(t, err)
}
// Anything before our deletion index should be nil.