(t *testing.T)
| 344 | } |
| 345 | |
| 346 | func 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 | |
| 381 | func dirSize(path string) (int64, error) { |
| 382 | var size int64 |
nothing calls this directly
no test coverage detected
searching dependent graphs…