aboutsummaryrefslogtreecommitdiff
path: root/weed/filer/store_test/test_suite.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/filer/store_test/test_suite.go')
-rw-r--r--weed/filer/store_test/test_suite.go68
1 files changed, 68 insertions, 0 deletions
diff --git a/weed/filer/store_test/test_suite.go b/weed/filer/store_test/test_suite.go
new file mode 100644
index 000000000..6b1b60f5e
--- /dev/null
+++ b/weed/filer/store_test/test_suite.go
@@ -0,0 +1,68 @@
+package store_test
+
+import (
+ "context"
+ "github.com/chrislusf/seaweedfs/weed/filer"
+ "github.com/chrislusf/seaweedfs/weed/util"
+ "github.com/stretchr/testify/assert"
+ "os"
+ "testing"
+)
+
+func TestFilerStore(t *testing.T, store filer.FilerStore) {
+ ctx := context.Background()
+
+ store.InsertEntry(ctx, makeEntry(util.FullPath("/"), true))
+ store.InsertEntry(ctx, makeEntry(util.FullPath("/a"), true))
+ store.InsertEntry(ctx, makeEntry(util.FullPath("/a/b"), true))
+ store.InsertEntry(ctx, makeEntry(util.FullPath("/a/b/c"), true))
+ store.InsertEntry(ctx, makeEntry(util.FullPath("/a/b/c/f1"), false))
+ store.InsertEntry(ctx, makeEntry(util.FullPath("/a/b/c/f2"), false))
+ store.InsertEntry(ctx, makeEntry(util.FullPath("/a/b/c/f3"), false))
+ store.InsertEntry(ctx, makeEntry(util.FullPath("/a/b/c/f4"), false))
+ store.InsertEntry(ctx, makeEntry(util.FullPath("/a/b/c/f5"), false))
+
+ {
+ var counter int
+ lastFileName, err := store.ListDirectoryEntries(ctx, util.FullPath("/a/b/c"), "", false, 3, func(entry *filer.Entry) bool {
+ counter++
+ return true
+ })
+ if err != nil {
+ t.Errorf("list directory: %v", err)
+ }
+ if counter != 3 {
+ assert.Equal(t, 3, counter, "directory list counter")
+ }
+ if lastFileName != "f3" {
+ assert.Equal(t, "f3", lastFileName, "directory list last file")
+ }
+ lastFileName, err = store.ListDirectoryEntries(ctx, util.FullPath("/a/b/c"), lastFileName, false, 3, func(entry *filer.Entry) bool {
+ counter++
+ return true
+ })
+ if err != nil {
+ t.Errorf("list directory: %v", err)
+ }
+ if counter != 5 {
+ assert.Equal(t, 5, counter, "directory list counter")
+ }
+ if lastFileName != "f5" {
+ assert.Equal(t, "f5", lastFileName, "directory list last file")
+ }
+ }
+
+}
+
+func makeEntry(fullPath util.FullPath, isDirectory bool) *filer.Entry {
+ var mode os.FileMode
+ if isDirectory {
+ mode = os.ModeDir
+ }
+ return &filer.Entry{
+ FullPath: fullPath,
+ Attr: filer.Attr{
+ Mode: mode,
+ },
+ }
+}