chiark / gitweb /
sd-bus: reuse the KDBUS_CMD_FREE wrapper wherever appropriate
[elogind.git] / src / test / test-sched-prio.c
index c57f6a3671295f7fb4af08461d63a51cfed39da3..6b3128d3b7956f3e852406cb463fd143f26197f7 100644 (file)
 #include <sched.h>
 
 #include "manager.h"
-
+#include "macro.h"
 
 int main(int argc, char *argv[]) {
-        Manager *m;
+        Manager *m = NULL;
         Unit *idle_ok, *idle_bad, *rr_ok, *rr_bad, *rr_sched;
         Service *ser;
         FILE *serial = NULL;
@@ -34,12 +34,12 @@ int main(int argc, char *argv[]) {
 
         /* prepare the test */
         assert_se(set_unit_path(TEST_DIR) >= 0);
-        r = manager_new(SYSTEMD_USER, &m);
-        if (r == -EPERM) {
-                puts("manager_new: Permission denied. Skipping test.");
-                return EXIT_SUCCESS;
+        r = manager_new(SYSTEMD_USER, true, &m);
+        if (IN_SET(r, -EPERM, -EACCES, -EADDRINUSE, -EHOSTDOWN, -ENOENT)) {
+                printf("Skipping test: manager_new: %s", strerror(-r));
+                return EXIT_TEST_SKIP;
         }
-        assert(r >= 0);
+        assert_se(r >= 0);
         assert_se(manager_startup(m, serial, fdset) >= 0);
 
         /* load idle ok */
@@ -88,5 +88,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);
 
+        manager_free(m);
+
         return EXIT_SUCCESS;
 }