Add an RemoveFromBuffer method for test (#387)

* export DeleteKey

Signed-off-by: ekexium <ekexium@gmail.com>

* rename DeleteKey to UnsafeRemoveRecord

Signed-off-by: ekexium <ekexium@gmail.com>

* rename the old DeleteKey

Signed-off-by: ekexium <ekexium@gmail.com>
This commit is contained in:
Ziqian Qin 2021-11-30 19:43:54 +08:00 committed by GitHub
parent b11da6307c
commit 350b6ce9fb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 11 deletions

View File

@ -833,3 +833,13 @@ func (n *memdbNode) getKeyFlags() kv.KeyFlags {
func (n *memdbNode) setKeyFlags(f kv.KeyFlags) {
n.flags = (^nodeFlagsMask & n.flags) | uint16(f)
}
// RemoveFromBuffer removes a record from the mem buffer. It should be only used for test.
func (db *MemDB) RemoveFromBuffer(key []byte) {
x := db.traverse(key, false)
if x.isNull() {
return
}
db.size -= len(db.vlog.getValue(x.vptr))
db.deleteNode(x)
}

View File

@ -72,7 +72,7 @@ func TestRandom(t *testing.T) {
for _, k := range keys {
op := rand.Float64()
if op < 0.35 {
p1.DeleteKey(k)
p1.RemoveFromBuffer(k)
p2.Delete(k)
} else {
newValue := make([]byte, rand.Intn(19)+1)

View File

@ -53,16 +53,6 @@ func init() {
testMode = true
}
// DeleteKey is used in test to verify the `deleteNode` used in `vlog.revertToCheckpoint`.
func (db *MemDB) DeleteKey(key []byte) {
x := db.traverse(key, false)
if x.isNull() {
return
}
db.size -= len(db.vlog.getValue(x.vptr))
db.deleteNode(x)
}
func TestGetSet(t *testing.T) {
require := require.New(t)