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

Function TestValueLogTrigger

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

Source from the content-addressed store, hash-verified

696}
697
698func TestValueLogTrigger(t *testing.T) {
699 t.Skip("Difficult to trigger compaction, so skipping. Re-enable after fixing #226")
700 dir, err := ioutil.TempDir("", "badger-test")
701 require.NoError(t, err)
702 defer removeDir(dir)
703
704 opt := getTestOptions(dir)
705 opt.ValueLogFileSize = 1 << 20
706 kv, err := Open(opt)
707 require.NoError(t, err)
708
709 // Write a lot of data, so it creates some work for valug log GC.
710 sz := 32 << 10
711 txn := kv.NewTransaction(true)
712 for i := 0; i < 100; i++ {
713 v := make([]byte, sz)
714 rand.Read(v[:rand.Intn(sz)])
715 require.NoError(t, txn.SetEntry(NewEntry([]byte(fmt.Sprintf("key%d", i)), v)))
716 if i%20 == 0 {
717 require.NoError(t, txn.Commit())
718 txn = kv.NewTransaction(true)
719 }
720 }
721 require.NoError(t, txn.Commit())
722
723 for i := 0; i < 45; i++ {
724 txnDelete(t, kv, []byte(fmt.Sprintf("key%d", i)))
725 }
726
727 require.NoError(t, kv.RunValueLogGC(0.5))
728
729 require.NoError(t, kv.Close())
730
731 err = kv.RunValueLogGC(0.5)
732 require.Equal(t, ErrRejected, err, "Error should be returned after closing DB.")
733}
734
735func createVlog(t *testing.T, entries []*Entry) []byte {
736 dir, err := ioutil.TempDir("", "badger-test")

Callers

nothing calls this directly

Calls 11

removeDirFunction · 0.85
getTestOptionsFunction · 0.85
OpenFunction · 0.85
NewEntryFunction · 0.85
txnDeleteFunction · 0.85
NewTransactionMethod · 0.80
CommitMethod · 0.80
RunValueLogGCMethod · 0.80
CloseMethod · 0.65
ReadMethod · 0.45
SetEntryMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…