Don't expect EACCESS errors as root
authorNikolaus Rath <Nikolaus@rath.org>
Thu, 10 Nov 2016 21:09:05 +0000 (13:09 -0800)
committerNikolaus Rath <Nikolaus@rath.org>
Thu, 10 Nov 2016 21:10:03 +0000 (13:10 -0800)
Fixes #111.

ChangeLog.rst
test/test.c

index 71e7e23e0310d246fcd6f004a90534f9924c5b32..6e258725b927e3e6b643af49f5d1c8dc26cb8612 100644 (file)
@@ -1,3 +1,8 @@
+UNRELEASED CHANGES
+==================
+
+* Fixed test errors when running tests as root.
+
 FUSE 3.0.0-rc2 (2016-11-06)
 ===========================
 
index 2b38bb237d7c12bac4814e9b628340ecb583025e..281f2189ccf821effd6d5f5b3d7956dd55302e87 100644 (file)
@@ -1395,6 +1395,7 @@ int main(int argc, char *argv[])
        const char *realpath;
        int err = 0;
        int a;
+       int is_root;
 
        umask(0);
        if (argc < 2 || argc > 4) {
@@ -1440,6 +1441,8 @@ int main(int argc, char *argv[])
        sprintf(testdir2_r, "%s/testdir2", realpath);
        sprintf(subfile_r, "%s/subfile", testdir2_r);
 
+       is_root = (geteuid() == 0);
+
        err += test_create();
        err += test_create_unlink();
        err += test_mknod();
@@ -1489,15 +1492,17 @@ int main(int argc, char *argv[])
        err += test_open_acc(O_WRONLY, 0600, 0);
        err += test_open_acc(O_RDWR,   0600, 0);
        err += test_open_acc(O_RDONLY, 0400, 0);
-       err += test_open_acc(O_RDONLY | O_TRUNC, 0400, EACCES);
-       err += test_open_acc(O_WRONLY, 0400, EACCES);
-       err += test_open_acc(O_RDWR,   0400, EACCES);
-       err += test_open_acc(O_RDONLY, 0200, EACCES);
        err += test_open_acc(O_WRONLY, 0200, 0);
-       err += test_open_acc(O_RDWR,   0200, EACCES);
-       err += test_open_acc(O_RDONLY, 0000, EACCES);
-       err += test_open_acc(O_WRONLY, 0000, EACCES);
-       err += test_open_acc(O_RDWR,   0000, EACCES);
+       if(!is_root) {
+               err += test_open_acc(O_RDONLY | O_TRUNC, 0400, EACCES);
+               err += test_open_acc(O_WRONLY, 0400, EACCES);
+               err += test_open_acc(O_RDWR,   0400, EACCES);
+               err += test_open_acc(O_RDONLY, 0200, EACCES);
+               err += test_open_acc(O_RDWR,   0200, EACCES);
+               err += test_open_acc(O_RDONLY, 0000, EACCES);
+               err += test_open_acc(O_WRONLY, 0000, EACCES);
+               err += test_open_acc(O_RDWR,   0000, EACCES);
+       }
        err += test_create_ro_dir(O_CREAT);
        err += test_create_ro_dir(O_CREAT | O_EXCL);
        err += test_create_ro_dir(O_CREAT | O_WRONLY);