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

Function TestForceCompactL0

db_test.go:346–379  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

344}
345
346func TestForceCompactL0(t *testing.T) {
347 dir, err := ioutil.TempDir("", "badger-test")
348 require.NoError(t, err)
349 defer removeDir(dir)
350
351 opts := getTestOptions(dir)
352 opts.ValueLogFileSize = 15 << 20
353 opts.managedTxns = true
354 db, err := Open(opts)
355 require.NoError(t, err)
356
357 data := func(i int) []byte {
358 return []byte(fmt.Sprintf("%b", i))
359 }
360 n := 80
361 m := 45 // Increasing would cause ErrTxnTooBig
362 sz := 32 << 10
363 v := make([]byte, sz)
364 for i := 0; i < n; i += 2 {
365 version := uint64(i)
366 txn := db.NewTransactionAt(version, true)
367 for j := 0; j < m; j++ {
368 require.NoError(t, txn.SetEntry(NewEntry(data(j), v)))
369 }
370 require.NoError(t, txn.CommitAt(version+1, nil))
371 }
372 db.Close()
373
374 opts.managedTxns = true
375 db, err = Open(opts)
376 require.NoError(t, err)
377 require.Equal(t, len(db.lc.levels[0].tables), 0)
378 require.NoError(t, db.Close())
379}
380
381func dirSize(path string) (int64, error) {
382 var size int64

Callers

nothing calls this directly

Calls 8

removeDirFunction · 0.85
getTestOptionsFunction · 0.85
OpenFunction · 0.85
NewEntryFunction · 0.85
NewTransactionAtMethod · 0.80
CommitAtMethod · 0.80
CloseMethod · 0.65
SetEntryMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…