package filesys import ( "testing" "github.com/chrislusf/seaweedfs/weed/util" ) func TestPathSplit(t *testing.T) { parts := util.FullPath("/").Split() if len(parts) != 0 { t.Errorf("expecting an empty list, but getting %d", len(parts)) } parts = util.FullPath("/readme.md").Split() if len(parts) != 1 { t.Errorf("expecting an empty list, but getting %d", len(parts)) } } func TestFsCache(t *testing.T) { cache := newFsCache(nil) x := cache.GetFsNode(util.FullPath("/y/x")) if x != nil { t.Errorf("wrong node!") } p := util.FullPath("/a/b/c") cache.SetFsNode(p, &File{Name: "cc"}) tNode := cache.GetFsNode(p) tFile := tNode.(*File) if tFile.Name != "cc" { t.Errorf("expecting a FsNode") } cache.SetFsNode(util.FullPath("/a/b/d"), &File{Name: "dd"}) cache.SetFsNode(util.FullPath("/a/b/e"), &File{Name: "ee"}) cache.SetFsNode(util.FullPath("/a/b/f"), &File{Name: "ff"}) cache.SetFsNode(util.FullPath("/z"), &File{Name: "zz"}) cache.SetFsNode(util.FullPath("/a"), &File{Name: "aa"}) b := cache.GetFsNode(util.FullPath("/a/b")) if b != nil { t.Errorf("unexpected node!") } a := cache.GetFsNode(util.FullPath("/a")) if a == nil { t.Errorf("missing node!") } cache.DeleteFsNode(util.FullPath("/a")) if b != nil { t.Errorf("unexpected node!") } a = cache.GetFsNode(util.FullPath("/a")) if a != nil { t.Errorf("wrong DeleteFsNode!") } z := cache.GetFsNode(util.FullPath("/z")) if z == nil { t.Errorf("missing node!") } y := cache.GetFsNode(util.FullPath("/x/y")) if y != nil { t.Errorf("wrong node!") } } func TestFsCacheMove(t *testing.T) { cache := newFsCache(nil) cache.SetFsNode(util.FullPath("/a/b/d"), &File{Name: "dd"}) cache.SetFsNode(util.FullPath("/a/b/e"), &File{Name: "ee"}) cache.SetFsNode(util.FullPath("/z"), &File{Name: "zz"}) cache.SetFsNode(util.FullPath("/a"), &File{Name: "aa"}) cache.Move(util.FullPath("/a/b"), util.FullPath("/z/x")) d := cache.GetFsNode(util.FullPath("/z/x/d")) if d == nil { t.Errorf("unexpected nil node!") } if d.(*File).Name != "dd" { t.Errorf("unexpected non dd node!") } } func TestFsCacheMove2(t *testing.T) { cache := newFsCache(nil) cache.SetFsNode(util.FullPath("/a/b/d"), &File{Name: "dd"}) cache.SetFsNode(util.FullPath("/a/b/e"), &File{Name: "ee"}) cache.Move(util.FullPath("/a/b/d"), util.FullPath("/a/b/e")) d := cache.GetFsNode(util.FullPath("/a/b/e")) if d == nil { t.Errorf("unexpected nil node!") } if d.(*File).Name != "e" { t.Errorf("unexpected node!") } }