MCPcopy
hub / github.com/etcd-io/bbolt / TestCursor_Iterate_Leaf

Function TestCursor_Iterate_Leaf

cursor_test.go:412–479  ·  cursor_test.go::TestCursor_Iterate_Leaf

Ensure that a Tx cursor can iterate over a single root with a couple elements.

(t *testing.T)

Source from the content-addressed store, hash-verified

410
411// Ensure that a Tx cursor can iterate over a single root with a couple elements.
412func TestCursor_Iterate_Leaf(t *testing.T) {
413 db := btesting.MustCreateDB(t)
414
415 if err := db.Update(func(tx *bolt.Tx) error {
416 b, err := tx.CreateBucket([]byte("widgets"))
417 if err != nil {
418 t.Fatal(err)
419 }
420 if err := b.Put([]byte("baz"), []byte{}); err != nil {
421 t.Fatal(err)
422 }
423 if err := b.Put([]byte("foo"), []byte{0}); err != nil {
424 t.Fatal(err)
425 }
426 if err := b.Put([]byte("bar"), []byte{1}); err != nil {
427 t.Fatal(err)
428 }
429 return nil
430 }); err != nil {
431 t.Fatal(err)
432 }
433 tx, err := db.Begin(false)
434 if err != nil {
435 t.Fatal(err)
436 }
437 defer func() { _ = tx.Rollback() }()
438
439 c := tx.Bucket([]byte("widgets")).Cursor()
440
441 k, v := c.First()
442 if !bytes.Equal(k, []byte("bar")) {
443 t.Fatalf("unexpected key: %v", k)
444 } else if !bytes.Equal(v, []byte{1}) {
445 t.Fatalf("unexpected value: %v", v)
446 }
447
448 k, v = c.Next()
449 if !bytes.Equal(k, []byte("baz")) {
450 t.Fatalf("unexpected key: %v", k)
451 } else if !bytes.Equal(v, []byte{}) {
452 t.Fatalf("unexpected value: %v", v)
453 }
454
455 k, v = c.Next()
456 if !bytes.Equal(k, []byte("foo")) {
457 t.Fatalf("unexpected key: %v", k)
458 } else if !bytes.Equal(v, []byte{0}) {
459 t.Fatalf("unexpected value: %v", v)
460 }
461
462 k, v = c.Next()
463 if k != nil {
464 t.Fatalf("expected nil key: %v", k)
465 } else if v != nil {
466 t.Fatalf("expected nil value: %v", v)
467 }
468
469 k, v = c.Next()

Callers

nothing calls this directly

Calls 12

MustCreateDBFunction · 0.92
UpdateMethod · 0.80
BeginMethod · 0.80
FirstMethod · 0.80
NextMethod · 0.80
FatalMethod · 0.65
RollbackMethod · 0.65
FatalfMethod · 0.65
CreateBucketMethod · 0.45
PutMethod · 0.45
CursorMethod · 0.45
BucketMethod · 0.45

Tested by

no test coverage detected