MCPcopy Create free account
hub / github.com/ByteStorage/FlyDB / TestDB_Iterator_Multi_Value

Function TestDB_Iterator_Multi_Value

engine/iterator_test.go:45–97  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

43}
44
45func TestDB_Iterator_Multi_Value(t *testing.T) {
46 opt := config.DefaultOptions
47 dir, _ := os.MkdirTemp("", "flydb-iterator-3")
48 opt.DirPath = dir
49 db, err := NewDB(opt)
50 defer db.Clean()
51 assert.Nil(t, err)
52 assert.NotNil(t, db)
53
54 err = db.Put([]byte("abcd"), randkv.RandomValue(10))
55 assert.Nil(t, err)
56 err = db.Put([]byte("efjh"), randkv.RandomValue(10))
57 assert.Nil(t, err)
58 err = db.Put([]byte("aefg"), randkv.RandomValue(10))
59 assert.Nil(t, err)
60 err = db.Put([]byte("cdef"), randkv.RandomValue(10))
61 assert.Nil(t, err)
62 err = db.Put([]byte("bcdg"), randkv.RandomValue(10))
63 assert.Nil(t, err)
64
65 // Forward iteration
66 itertor1 := db.NewIterator(config.DefaultIteratorOptions)
67 for itertor1.Rewind(); itertor1.Valid(); itertor1.Next() {
68 assert.NotNil(t, itertor1.Key())
69 }
70
71 itertor1.Rewind()
72 for itertor1.Seek([]byte("c")); itertor1.Valid(); itertor1.Next() {
73 assert.NotNil(t, itertor1.Key())
74 }
75
76 // Reverse iteration
77 iterOpt2 := config.DefaultIteratorOptions
78 iterOpt2.Reverse = true
79 itertor2 := db.NewIterator(iterOpt2)
80 for itertor2.Rewind(); itertor2.Valid(); itertor2.Next() {
81 assert.NotNil(t, itertor2.Key())
82 }
83
84 itertor2.Rewind()
85 for itertor2.Seek([]byte("c")); itertor2.Valid(); itertor2.Next() {
86 assert.NotNil(t, itertor2.Key())
87 }
88
89 // Specify prefix
90 iterOpt3 := config.DefaultIteratorOptions
91 iterOpt3.Prefix = []byte("ae")
92 itertor3 := db.NewIterator(iterOpt3)
93 for itertor3.Rewind(); itertor3.Valid(); itertor3.Next() {
94 assert.NotNil(t, itertor3.Key())
95 }
96
97}

Callers

nothing calls this directly

Calls 10

CleanMethod · 0.95
PutMethod · 0.95
NewIteratorMethod · 0.95
RewindMethod · 0.95
ValidMethod · 0.95
NextMethod · 0.95
KeyMethod · 0.95
SeekMethod · 0.95
RandomValueFunction · 0.92
NewDBFunction · 0.85

Tested by

no test coverage detected