summaryrefslogtreecommitdiff
path: root/integration_tests
diff options
context:
space:
mode:
Diffstat (limited to 'integration_tests')
-rw-r--r--integration_tests/helpers.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/integration_tests/helpers.go b/integration_tests/helpers.go
index b269069..750283d 100644
--- a/integration_tests/helpers.go
+++ b/integration_tests/helpers.go
@@ -127,6 +127,38 @@ func testMkdirRmdir(t *testing.T, plainDir string) {
if err != nil {
t.Fatal(err)
}
+
+ // Removing a non-empty dir should fail with ENOTEMPTY
+ if os.Mkdir(dir, 0777) != nil {
+ t.Fatal(err)
+ }
+ f, err := os.Create(dir + "/file")
+ if err != nil {
+ t.Fatal(err)
+ }
+ f.Close()
+ err = syscall.Rmdir(dir)
+ errno := err.(syscall.Errno)
+ if errno != syscall.ENOTEMPTY {
+ t.Errorf("Should have gotten ENOTEMPTY, go %v", errno)
+ }
+ if syscall.Unlink(dir + "/file") != nil {
+ t.Fatal(err)
+ }
+ if syscall.Rmdir(dir) != nil {
+ t.Fatal(err)
+ }
+
+ // We should also be able to remove a directory we do not have permissions to
+ // read or write
+ err = os.Mkdir(dir, 0000)
+ if err != nil {
+ t.Fatal(err)
+ }
+ err = syscall.Rmdir(dir)
+ if err != nil {
+ t.Fatal(err)
+ }
}
// Create and rename a file