From a4b906e8559d53ad9cecaed30d56ac79b4714848 Mon Sep 17 00:00:00 2001 From: Ingo Oppermann Date: Fri, 15 Mar 2024 14:26:10 +0100 Subject: [PATCH] Add tests --- io/fs/mem_test.go | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/io/fs/mem_test.go b/io/fs/mem_test.go index f91fbc8e..432e9446 100644 --- a/io/fs/mem_test.go +++ b/io/fs/mem_test.go @@ -37,6 +37,45 @@ func TestMemFromDir(t *testing.T) { }, names) } +func BenchmarkMemList(b *testing.B) { + mem, err := NewMemFilesystem(MemConfig{}) + require.NoError(b, err) + + for i := 0; i < 1000; i++ { + id := rand.StringAlphanumeric(8) + path := fmt.Sprintf("/%d/%s.dat", i, id) + mem.WriteFile(path, []byte("foobar")) + } + + b.ResetTimer() + + for i := 0; i < b.N; i++ { + mem.List("/", "/5/**") + } +} + +func BenchmarkMemReadFile(b *testing.B) { + mem, err := NewMemFilesystem(MemConfig{}) + require.NoError(b, err) + + nFiles := 1000 + + for i := 0; i < nFiles; i++ { + path := fmt.Sprintf("/%d.dat", i) + mem.WriteFile(path, []byte(rand.StringAlphanumeric(2*1024))) + } + + r := gorand.New(gorand.NewSource(42)) + + b.ResetTimer() + + for i := 0; i < b.N; i++ { + num := r.Intn(nFiles) + f := mem.Open("/" + strconv.Itoa(num) + ".dat") + f.Close() + } +} + func TestWriteWhileRead(t *testing.T) { fs, err := NewMemFilesystem(MemConfig{}) require.NoError(t, err)