Skip to content

Commit a18792e

Browse files
committed
sstable: use errorfs in TestIteratorErrorOnInit
Use errorfs to test sstable iterator error propogation instead of swapping a objstorage.Readable out from underneath an open sstable.Reader.
1 parent 38fb051 commit a18792e

File tree

1 file changed

+7
-10
lines changed

1 file changed

+7
-10
lines changed

sstable/reader_iter_test.go

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"github.com/cockroachdb/pebble/objstorage/objstorageprovider"
1616
"github.com/cockroachdb/pebble/sstable/block"
1717
"github.com/cockroachdb/pebble/vfs"
18+
"github.com/cockroachdb/pebble/vfs/errorfs"
1819
"github.com/stretchr/testify/require"
1920
)
2021

@@ -34,25 +35,23 @@ func TestIteratorErrorOnInit(t *testing.T) {
3435
require.NoError(t, w.Set([]byte("test"), nil))
3536
require.NoError(t, w.Close())
3637

37-
f1 := testutils.CheckErr(mem.Open("test.sst"))
38+
toggle := errorfs.Toggle{Injector: errorfs.ErrInjected}
39+
f1 := errorfs.WrapFile(testutils.CheckErr(mem.Open("test.sst")), &toggle)
40+
3841
r, err := newReader(f1, ReaderOptions{
3942
Comparer: base.DefaultComparer,
4043
Merger: base.DefaultMerger,
4144
})
4245
require.NoError(t, err)
4346
defer r.Close()
4447

45-
// Swap the readable in the reader.
46-
bad := testutils.CheckErr(mem.Create("bad.sst", vfs.WriteCategoryUnspecified))
47-
require.NoError(t, bad.Close())
48-
bad = testutils.CheckErr(mem.Open("bad.sst"))
49-
saveReadable := r.readable
50-
r.readable = testutils.CheckErr(NewSimpleReadable(bad))
51-
5248
var pool block.BufferPool
5349
pool.Init(5)
5450
defer pool.Release()
5551

52+
toggle.On()
53+
defer toggle.Off()
54+
5655
var stats base.InternalIteratorStats
5756
for k := 0; k < 20; k++ {
5857
if rand.IntN(2) == 0 {
@@ -85,6 +84,4 @@ func TestIteratorErrorOnInit(t *testing.T) {
8584
require.Error(t, err)
8685
}
8786
}
88-
require.NoError(t, r.readable.Close())
89-
r.readable = saveReadable
9087
}

0 commit comments

Comments
 (0)