chiark / gitweb /
Revert "test-exec: do not skip all the tests"
authorDavid Herrmann <dh.herrmann@gmail.com>
Sun, 18 Jan 2015 19:07:51 +0000 (20:07 +0100)
committerDavid Herrmann <dh.herrmann@gmail.com>
Sun, 18 Jan 2015 19:07:51 +0000 (20:07 +0100)
This reverts commit 68e68ca8106e7cd874682ae425843b48579c6539. We *need*
root access to create cgroups. The only exception is if it is run from
within a cgroup with "Delegate=yes". However, this is not always true and
we really shouldn't rely on this.

If your terminal runs from within a systemd --user instance, you're fine.
Everyone else is not (like running from ssh, VTs, and so on..).

src/test/test-execute.c

index 69368b177b1ce3fb34a37aa0938631381370ca6b..91ccaf72b849e57f70a635912619ad2da5fd4d3c 100644 (file)
@@ -90,10 +90,6 @@ static void test_exec_ignoresigpipe(Manager *m) {
 }
 
 static void test_exec_privatetmp(Manager *m) {
-        if (getuid() != 0) {
-                printf("Skipping test_exec_privatetmp: not root\n");
-                return;
-        }
         assert_se(touch("/tmp/test-exec_privatetmp") >= 0);
 
         test(m, "exec-privatetmp-yes.service", 0, CLD_EXITED);
@@ -103,10 +99,6 @@ static void test_exec_privatetmp(Manager *m) {
 }
 
 static void test_exec_privatedevices(Manager *m) {
-        if (getuid() != 0) {
-                printf("Skipping test_exec_privatedevices: not root\n");
-                return;
-        }
         test(m, "exec-privatedevices-yes.service", 0, CLD_EXITED);
         test(m, "exec-privatedevices-no.service", 0, CLD_EXITED);
 }
@@ -127,18 +119,10 @@ static void test_exec_systemcallerrornumber(Manager *m) {
 }
 
 static void test_exec_user(Manager *m) {
-        if (getuid() != 0) {
-                printf("Skipping test_exec_user: not root\n");
-                return;
-        }
         test(m, "exec-user.service", 0, CLD_EXITED);
 }
 
 static void test_exec_group(Manager *m) {
-        if (getuid() != 0) {
-                printf("Skipping test_exec_group: not root\n");
-                return;
-        }
         test(m, "exec-group.service", 0, CLD_EXITED);
 }
 
@@ -149,10 +133,6 @@ static void test_exec_environment(Manager *m) {
 }
 
 static void test_exec_umask(Manager *m) {
-        if (getuid() != 0) {
-                printf("Skipping test_exec_umask: not root\n");
-                return;
-        }
         test(m, "exec-umask-default.service", 0, CLD_EXITED);
         test(m, "exec-umask-0177.service", 0, CLD_EXITED);
 }
@@ -179,6 +159,12 @@ int main(int argc, char *argv[]) {
         log_parse_environment();
         log_open();
 
+        /* It is needed otherwise cgroup creation fails */
+        if (getuid() != 0) {
+                printf("Skipping test: not root\n");
+                return EXIT_TEST_SKIP;
+        }
+
         assert_se(set_unit_path(TEST_DIR ":") >= 0);
 
         r = manager_new(SYSTEMD_USER, true, &m);