MCPcopy
hub / github.com/dgraph-io/badger / TestValueBasic

Function TestValueBasic

value_test.go:40–99  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

38)
39
40func TestValueBasic(t *testing.T) {
41 dir, err := ioutil.TempDir("", "badger-test")
42 y.Check(err)
43 defer removeDir(dir)
44
45 kv, _ := Open(getTestOptions(dir).WithValueThreshold(32))
46 defer kv.Close()
47 log := &kv.vlog
48
49 // Use value big enough that the value log writes them even if SyncWrites is false.
50 const val1 = "sampleval012345678901234567890123"
51 const val2 = "samplevalb012345678901234567890123"
52 require.True(t, len(val1) >= kv.opt.ValueThreshold)
53
54 e1 := &Entry{
55 Key: []byte("samplekey"),
56 Value: []byte(val1),
57 meta: bitValuePointer,
58 }
59 e2 := &Entry{
60 Key: []byte("samplekeyb"),
61 Value: []byte(val2),
62 meta: bitValuePointer,
63 }
64
65 b := new(request)
66 b.Entries = []*Entry{e1, e2}
67
68 log.write([]*request{b})
69 require.Len(t, b.Ptrs, 2)
70 t.Logf("Pointer written: %+v %+v\n", b.Ptrs[0], b.Ptrs[1])
71
72 s := new(y.Slice)
73 buf1, lf1, err1 := log.readValueBytes(b.Ptrs[0], s)
74 buf2, lf2, err2 := log.readValueBytes(b.Ptrs[1], s)
75 require.NoError(t, err1)
76 require.NoError(t, err2)
77 defer runCallback(log.getUnlockCallback(lf1))
78 defer runCallback(log.getUnlockCallback(lf2))
79 e1, err = lf1.decodeEntry(buf1, b.Ptrs[0].Offset)
80 require.NoError(t, err)
81 e2, err = lf1.decodeEntry(buf2, b.Ptrs[1].Offset)
82 require.NoError(t, err)
83 readEntries := []Entry{*e1, *e2}
84 require.EqualValues(t, []Entry{
85 {
86 Key: []byte("samplekey"),
87 Value: []byte(val1),
88 meta: bitValuePointer,
89 offset: b.Ptrs[0].Offset,
90 },
91 {
92 Key: []byte("samplekeyb"),
93 Value: []byte(val2),
94 meta: bitValuePointer,
95 offset: b.Ptrs[1].Offset,
96 },
97 }, readEntries)

Callers

nothing calls this directly

Calls 12

CheckFunction · 0.92
removeDirFunction · 0.85
OpenFunction · 0.85
getTestOptionsFunction · 0.85
runCallbackFunction · 0.85
WithValueThresholdMethod · 0.80
readValueBytesMethod · 0.80
getUnlockCallbackMethod · 0.80
decodeEntryMethod · 0.80
CloseMethod · 0.65
writeMethod · 0.45
LenMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…