storage: Expose bug of not setting the shrink ratio in the contstructor
@@ -42,7 +42,7 @@ var (
func newTestPersistence(t *testing.T, encoding chunk.Encoding) (*persistence, testutil.Closer) {
chunk.DefaultEncoding = encoding
dir := testutil.NewTemporaryDirectory("test_persistence", t)
- p, err := newPersistence(dir.Path(), false, false, func() bool { return false }, 0.1)
+ p, err := newPersistence(dir.Path(), false, false, func() bool { return false }, 0.15)
if err != nil {
dir.Close()
t.Fatal(err)
@@ -173,6 +173,25 @@ func testPersistLoadDropChunks(t *testing.T, encoding chunk.Encoding) {
}
}
+ // Try to drop one chunk, which must be prevented by the shrink ratio.
+ for fp, _ := range fpToChunks {
+ firstTime, offset, numDropped, allDropped, err := p.dropAndPersistChunks(fp, 1, nil)
+ if err != nil {
+ t.Fatal(err)
+ }
+ if offset != 0 {
+ t.Errorf("want offset 0, got %d", offset)
+ }
+ if firstTime != 0 {
+ t.Errorf("want first time 0, got %d", firstTime)
+ }
+ if numDropped != 0 {
+ t.Errorf("want 0 dropped chunks, got %v", numDropped)
+ }
+ if allDropped {
+ t.Error("all chunks dropped")
+ }
+ }
// Drop half of the chunks.
for fp, expectedChunks := range fpToChunks {
firstTime, offset, numDropped, allDropped, err := p.dropAndPersistChunks(fp, 5, nil)
