(t *testing.T)
| 696 | } |
| 697 | |
| 698 | func 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 | |
| 735 | func createVlog(t *testing.T, entries []*Entry) []byte { |
| 736 | dir, err := ioutil.TempDir("", "badger-test") |
nothing calls this directly
no test coverage detected
searching dependent graphs…