chiark / gitweb /
namespace: include boot id in private tmp directories
[elogind.git] / src / test / test-sched-prio.c
index 63f7ebda08d05bedc1d0abe8ddcedf8224247a30..a4cc3d44a288ed94c0839bd6970e4bcc8088fb99 100644 (file)
@@ -22,7 +22,7 @@
 #include <sched.h>
 
 #include "manager.h"
-
+#include "macro.h"
 
 int main(int argc, char *argv[]) {
         Manager *m;
@@ -30,10 +30,17 @@ int main(int argc, char *argv[]) {
         Service *ser;
         FILE *serial = NULL;
         FDSet *fdset = NULL;
+        int r;
+        const char *dir = TEST_DIR;
 
         /* prepare the test */
-        assert_se(set_unit_path(TEST_DIR) >= 0);
-        assert_se(manager_new(SYSTEMD_USER, &m) >= 0);
+        assert_se(set_unit_path(dir) >= 0);
+        r = manager_new(SYSTEMD_USER, &m);
+        if (r == -EPERM || r == -EACCES || r == -EADDRINUSE || r == -EHOSTDOWN) {
+                printf("Skipping test: manager_new: %s", strerror(-r));
+                return EXIT_TEST_SKIP;
+        }
+        assert(r >= 0);
         assert_se(manager_startup(m, serial, fdset) >= 0);
 
         /* load idle ok */
@@ -82,5 +89,7 @@ int main(int argc, char *argv[]) {
         assert_se(ser->exec_context.cpu_sched_policy == SCHED_RR);
         assert_se(ser->exec_context.cpu_sched_priority == 99);
 
-        return 0;
+        manager_free(m);
+
+        return EXIT_SUCCESS;
 }