MCPcopy Create free account
hub / github.com/nutsdb/nutsdb / TestDB_MergeForString

Function TestDB_MergeForString

merge_test.go:72–136  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

70}
71
72func TestDB_MergeForString(t *testing.T) {
73 runForMergeModes(t, func(t *testing.T, mode mergeTestMode) {
74 bucket := "bucket"
75 opts := DefaultOptions
76 opts.SegmentSize = KB
77 opts.EnableMergeV2 = mode.enableMergeV2
78 opts.Dir = fmt.Sprintf("/tmp/test-string-merge-%s/", mode.name)
79
80 removeDir(opts.Dir)
81
82 for _, idxMode := range []EntryIdxMode{HintKeyValAndRAMIdxMode, HintKeyAndRAMIdxMode} {
83 removeDir(opts.Dir)
84 opts.EntryIdxMode = idxMode
85 db, err := Open(opts)
86 txCreateBucket(t, db, DataStructureBTree, bucket, nil)
87 require.NoError(t, err)
88
89 err = db.Merge()
90 require.Equal(t, ErrDontNeedMerge, err)
91
92 n := 1000
93 for i := 0; i < n; i++ {
94 txPut(t, db, bucket, testutils.GetTestBytes(i), testutils.GetTestBytes(i), Persistent, nil, nil)
95 }
96
97 for i := 0; i < n/2; i++ {
98 txDel(t, db, bucket, testutils.GetTestBytes(i), nil)
99 }
100
101 require.NoError(t, db.Merge())
102
103 dbCnt, err := db.getRecordCount()
104 require.NoError(t, err)
105 require.Equal(t, int64(n/2), dbCnt)
106
107 for i := 0; i < n/2; i++ {
108 txGet(t, db, bucket, testutils.GetTestBytes(i), testutils.GetTestBytes(i), ErrKeyNotFound)
109 }
110
111 for i := n / 2; i < n; i++ {
112 txGet(t, db, bucket, testutils.GetTestBytes(i), testutils.GetTestBytes(i), nil)
113 }
114
115 require.NoError(t, db.Close())
116
117 db, err = Open(opts)
118 require.NoError(t, err)
119
120 dbCnt, err = db.getRecordCount()
121 require.NoError(t, err)
122 require.Equal(t, int64(n/2), dbCnt)
123
124 for i := 0; i < n/2; i++ {
125 txGet(t, db, bucket, testutils.GetTestBytes(i), testutils.GetTestBytes(i), ErrKeyNotFound)
126 }
127
128 for i := n / 2; i < n; i++ {
129 txGet(t, db, bucket, testutils.GetTestBytes(i), testutils.GetTestBytes(i), nil)

Callers

nothing calls this directly

Calls 11

GetTestBytesFunction · 0.92
runForMergeModesFunction · 0.85
removeDirFunction · 0.85
OpenFunction · 0.85
txCreateBucketFunction · 0.85
txPutFunction · 0.85
txDelFunction · 0.85
txGetFunction · 0.85
MergeMethod · 0.80
getRecordCountMethod · 0.80
CloseMethod · 0.65

Tested by

no test coverage detected