summaryrefslogtreecommitdiff
path: root/internal/fusefrontend/openbackingdir_test.go
diff options
context:
space:
mode:
authorJakob Unterwurzacher2019-01-03 15:59:54 +0100
committerJakob Unterwurzacher2019-01-03 15:59:54 +0100
commitfcdb4bec0910dd4bb49f625621fdfb345efc44ae (patch)
treef19958aa09c9b61e4fe8cd7c77017c36c18ebc98 /internal/fusefrontend/openbackingdir_test.go
parentbb9884549bab29e73dd0a7cb98ed7e8422796306 (diff)
fusefronted: dirCache: fix bug handling ""
Bug looked like this: $ ls -l . total 0 drwxrwxr-x. 2 jakob jakob 60 Jan 3 15:42 foo -rw-rw-r--. 1 jakob jakob 0 Jan 3 15:46 x $ ls -l . ls: cannot access '.': No such file or directory (only happened when "" was in the dirCache)
Diffstat (limited to 'internal/fusefrontend/openbackingdir_test.go')
-rw-r--r--internal/fusefrontend/openbackingdir_test.go12
1 files changed, 12 insertions, 0 deletions
diff --git a/internal/fusefrontend/openbackingdir_test.go b/internal/fusefrontend/openbackingdir_test.go
index f784989..266e265 100644
--- a/internal/fusefrontend/openbackingdir_test.go
+++ b/internal/fusefrontend/openbackingdir_test.go
@@ -37,6 +37,18 @@ func TestOpenBackingDir(t *testing.T) {
if cName != "." {
t.Fatal("cName should be .")
}
+ syscall.Close(dirfd)
+
+ // Again, but populate the cache for "" by looking up a non-existing file
+ fs.GetAttr("xyz1234", nil)
+ dirfd, cName, err = fs.openBackingDir("")
+ if err != nil {
+ t.Fatal(err)
+ }
+ if cName != "." {
+ t.Fatal("cName should be .")
+ }
+
err = syscallcompat.Faccessat(dirfd, cName, unix.R_OK)
if err != nil {
t.Error(err)