diff --git a/tests/matrix/dir_test.go b/tests/matrix/dir_test.go index 2f9f1b0..2f7a034 100644 --- a/tests/matrix/dir_test.go +++ b/tests/matrix/dir_test.go @@ -3,6 +3,7 @@ package matrix import ( "fmt" "os" + "os/exec" "syscall" "testing" @@ -48,3 +49,24 @@ func TestRmdirPerms(t *testing.T) { } } } + +// TestHaveDotdot checks that we have "." and ".." in a directory. +// (gocryptfs v2.0-beta1 did not!) +func TestHaveDotdot(t *testing.T) { + dir1 := test_helpers.DefaultPlainDir + "/TestHaveDotdot" + err := os.Mkdir(dir1, 0700) + if err != nil { + t.Fatal(err) + } + // All Go readdir functions filter out "." and "..". + // Fall back to "ls -a" which does not. + out, err := exec.Command("ls", "-a", dir1).CombinedOutput() + if err != nil { + t.Fatal(err) + } + have := string(out) + want := ".\n..\n" + if have != want { + t.Errorf("have=%q want=%q", have, want) + } +}