]> git.saurik.com Git - apt.git/commitdiff
Fix FileUtlTest.GetTempDir failure when run as root
authorPino Toscano <pino@debian.org>
Sat, 19 Dec 2015 11:09:18 +0000 (12:09 +0100)
committerJulian Andres Klode <jak@debian.org>
Sat, 19 Dec 2015 11:51:10 +0000 (12:51 +0100)
Testing /usr as TMPDIR assumes that GetTempDir() cannot use it
because it cannot write to it; this is true for non-root users, but
not so much for root.

Since root can access everything, perform this particular test case
only when not running as root.

Closes: #808383
test/libapt/fileutl_test.cc

index 2bd090e5e627858a64f938b1f14a0e14c0e4c309..7d1368f7a491fae0a1a83e6e58cb92609d26551a 100644 (file)
@@ -222,9 +222,13 @@ TEST(FileUtlTest, GetTempDir)
    setenv("TMPDIR", "/not-there-no-really-not", 1);
    EXPECT_EQ("/tmp", GetTempDir());
 
    setenv("TMPDIR", "/not-there-no-really-not", 1);
    EXPECT_EQ("/tmp", GetTempDir());
 
-   // here but not accessible for non-roots
-   setenv("TMPDIR", "/usr", 1);
-   EXPECT_EQ("/tmp", GetTempDir());
+   // root can access everything, so /usr will be accepted
+   if (geteuid() != 0)
+   {
+       // here but not accessible for non-roots
+       setenv("TMPDIR", "/usr", 1);
+       EXPECT_EQ("/tmp", GetTempDir());
+   }
 
    // files are no good for tmpdirs, too
    setenv("TMPDIR", "/dev/null", 1);
 
    // files are no good for tmpdirs, too
    setenv("TMPDIR", "/dev/null", 1);