diff --git a/io/fs/mem_test.go b/io/fs/mem_test.go index e95ae8b6..f91fbc8e 100644 --- a/io/fs/mem_test.go +++ b/io/fs/mem_test.go @@ -3,6 +3,7 @@ package fs import ( "context" "fmt" + "io" gorand "math/rand" "strconv" "sync" @@ -36,6 +37,24 @@ func TestMemFromDir(t *testing.T) { }, names) } +func TestWriteWhileRead(t *testing.T) { + fs, err := NewMemFilesystem(MemConfig{}) + require.NoError(t, err) + + _, _, err = fs.WriteFile("/foobar", []byte("xxxxx")) + require.NoError(t, err) + + file := fs.Open("/foobar") + require.NotNil(t, file) + + _, _, err = fs.WriteFile("/foobar", []byte("yyyyy")) + require.NoError(t, err) + + data, err := io.ReadAll(file) + require.NoError(t, err) + require.Equal(t, []byte("xxxxx"), data) +} + func BenchmarkMemReadFileWhileWriting(b *testing.B) { mem, err := NewMemFilesystem(MemConfig{}) require.NoError(b, err)