Jan Synacek 2ec3b0
From 32a4ce451c3aa579d768005decd5342ba319a0e7 Mon Sep 17 00:00:00 2001
Jan Synacek 2ec3b0
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
Jan Synacek 2ec3b0
Date: Tue, 1 Dec 2015 22:35:16 -0500
Jan Synacek 2ec3b0
Subject: [PATCH 1/4] tests: turn check if manager cannot be intialized into
Jan Synacek 2ec3b0
 macro
Jan Synacek 2ec3b0
Jan Synacek 2ec3b0
We need to check the same thing in multiple tests. Use a shared
Jan Synacek 2ec3b0
macro to make it easier to update the list of errnos.
Jan Synacek 2ec3b0
Jan Synacek 2ec3b0
Change the errno code for "unitialized cgroup fs" for ENOMEDIUM.
Jan Synacek 2ec3b0
Exec format error looks like something more serious.
Jan Synacek 2ec3b0
Jan Synacek 2ec3b0
This fixes test-execute invocation in mock.
Jan Synacek 2ec3b0
Jan Synacek 2ec3b0
(cherry picked from commit 8b3aa503c171acdb9ec63484a8c50e2680d31e79)
Jan Synacek 2ec3b0
Jan Synacek 2ec3b0
Resolves: #1286249
Jan Synacek 2ec3b0
---
Jan Synacek 2ec3b0
 src/basic/cgroup-util.c                |  2 +-
Jan Synacek 2ec3b0
 src/libsystemd/sd-bus/test-bus-creds.c |  2 +-
Jan Synacek 2ec3b0
 src/test/test-engine.c                 |  3 ++-
Jan Synacek 2ec3b0
 src/test/test-execute.c                |  3 ++-
Jan Synacek 2ec3b0
 src/test/test-helper.h                 | 12 ++++++++++++
Jan Synacek 2ec3b0
 src/test/test-path.c                   |  3 ++-
Jan Synacek 2ec3b0
 src/test/test-sched-prio.c             |  3 ++-
Jan Synacek 2ec3b0
 7 files changed, 22 insertions(+), 6 deletions(-)
Jan Synacek 2ec3b0
Jan Synacek 2ec3b0
diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
Jan Synacek 2ec3b0
index f7fc2c2..263c726 100644
Jan Synacek 2ec3b0
--- a/src/basic/cgroup-util.c
Jan Synacek 2ec3b0
+++ b/src/basic/cgroup-util.c
Jan Synacek 2ec3b0
@@ -2130,7 +2130,7 @@ int cg_unified(void) {
Jan Synacek 2ec3b0
         else if (F_TYPE_EQUAL(fs.f_type, TMPFS_MAGIC))
Jan Synacek 2ec3b0
                 unified_cache = false;
Jan Synacek 2ec3b0
         else
Jan Synacek 2ec3b0
-                return -ENOEXEC;
Jan Synacek 2ec3b0
+                return -ENOMEDIUM;
Jan Synacek 2ec3b0
 
Jan Synacek 2ec3b0
         return unified_cache;
Jan Synacek 2ec3b0
 }
Jan Synacek 2ec3b0
diff --git a/src/libsystemd/sd-bus/test-bus-creds.c b/src/libsystemd/sd-bus/test-bus-creds.c
Jan Synacek 2ec3b0
index bd0101a..de337bb 100644
Jan Synacek 2ec3b0
--- a/src/libsystemd/sd-bus/test-bus-creds.c
Jan Synacek 2ec3b0
+++ b/src/libsystemd/sd-bus/test-bus-creds.c
Jan Synacek 2ec3b0
@@ -29,7 +29,7 @@ int main(int argc, char *argv[]) {
Jan Synacek 2ec3b0
         _cleanup_bus_creds_unref_ sd_bus_creds *creds = NULL;
Jan Synacek 2ec3b0
         int r;
Jan Synacek 2ec3b0
 
Jan Synacek 2ec3b0
-        if (cg_unified() == -ENOEXEC) {
Jan Synacek 2ec3b0
+        if (cg_unified() == -ENOMEDIUM) {
Jan Synacek 2ec3b0
                 puts("Skipping test: /sys/fs/cgroup/ not available");
Jan Synacek 2ec3b0
                 return EXIT_TEST_SKIP;
Jan Synacek 2ec3b0
         }
Jan Synacek 2ec3b0
diff --git a/src/test/test-engine.c b/src/test/test-engine.c
Jan Synacek 2ec3b0
index 4f14c58..f09df43 100644
Jan Synacek 2ec3b0
--- a/src/test/test-engine.c
Jan Synacek 2ec3b0
+++ b/src/test/test-engine.c
Jan Synacek 2ec3b0
@@ -25,6 +25,7 @@
Jan Synacek 2ec3b0
 
Jan Synacek 2ec3b0
 #include "bus-util.h"
Jan Synacek 2ec3b0
 #include "manager.h"
Jan Synacek 2ec3b0
+#include "test-helper.h"
Jan Synacek 2ec3b0
 
Jan Synacek 2ec3b0
 int main(int argc, char *argv[]) {
Jan Synacek 2ec3b0
         _cleanup_bus_error_free_ sd_bus_error err = SD_BUS_ERROR_NULL;
Jan Synacek 2ec3b0
@@ -38,7 +39,7 @@ int main(int argc, char *argv[]) {
Jan Synacek 2ec3b0
         /* prepare the test */
Jan Synacek 2ec3b0
         assert_se(set_unit_path(TEST_DIR) >= 0);
Jan Synacek 2ec3b0
         r = manager_new(MANAGER_USER, true, &m);
Jan Synacek 2ec3b0
-        if (IN_SET(r, -EPERM, -EACCES, -EADDRINUSE, -EHOSTDOWN, -ENOENT, -ENOEXEC)) {
Jan Synacek 2ec3b0
+        if (MANAGER_SKIP_TEST(r)) {
Jan Synacek 2ec3b0
                 printf("Skipping test: manager_new: %s", strerror(-r));
Jan Synacek 2ec3b0
                 return EXIT_TEST_SKIP;
Jan Synacek 2ec3b0
         }
Jan Synacek 2ec3b0
diff --git a/src/test/test-execute.c b/src/test/test-execute.c
Jan Synacek 2ec3b0
index 03ec0fc..1ab10fb 100644
Jan Synacek 2ec3b0
--- a/src/test/test-execute.c
Jan Synacek 2ec3b0
+++ b/src/test/test-execute.c
Jan Synacek 2ec3b0
@@ -29,6 +29,7 @@
Jan Synacek 2ec3b0
 #include "mkdir.h"
Jan Synacek 2ec3b0
 #include "path-util.h"
Jan Synacek 2ec3b0
 #include "rm-rf.h"
Jan Synacek 2ec3b0
+#include "test-helper.h"
Jan Synacek 2ec3b0
 #include "unit.h"
Jan Synacek 2ec3b0
 #include "util.h"
Jan Synacek 2ec3b0
 
Jan Synacek 2ec3b0
@@ -296,7 +297,7 @@ int main(int argc, char *argv[]) {
Jan Synacek 2ec3b0
         assert_se(unsetenv("VAR3") == 0);
Jan Synacek 2ec3b0
 
Jan Synacek 2ec3b0
         r = manager_new(MANAGER_USER, true, &m);
Jan Synacek 2ec3b0
-        if (IN_SET(r, -EPERM, -EACCES, -EADDRINUSE, -EHOSTDOWN, -ENOENT)) {
Jan Synacek 2ec3b0
+        if (MANAGER_SKIP_TEST(r)) {
Jan Synacek 2ec3b0
                 printf("Skipping test: manager_new: %s", strerror(-r));
Jan Synacek 2ec3b0
                 return EXIT_TEST_SKIP;
Jan Synacek 2ec3b0
         }
Jan Synacek 2ec3b0
diff --git a/src/test/test-helper.h b/src/test/test-helper.h
Jan Synacek 2ec3b0
index f75dd33..c0f6a91 100644
Jan Synacek 2ec3b0
--- a/src/test/test-helper.h
Jan Synacek 2ec3b0
+++ b/src/test/test-helper.h
Jan Synacek 2ec3b0
@@ -23,9 +23,21 @@
Jan Synacek 2ec3b0
 
Jan Synacek 2ec3b0
 #include "sd-daemon.h"
Jan Synacek 2ec3b0
 
Jan Synacek 2ec3b0
+#include "macro.h"
Jan Synacek 2ec3b0
+
Jan Synacek 2ec3b0
 #define TEST_REQ_RUNNING_SYSTEMD(x)                                 \
Jan Synacek 2ec3b0
         if (sd_booted() > 0) {                                      \
Jan Synacek 2ec3b0
                 x;                                                  \
Jan Synacek 2ec3b0
         } else {                                                    \
Jan Synacek 2ec3b0
                 printf("systemd not booted skipping '%s'\n", #x);   \
Jan Synacek 2ec3b0
         }
Jan Synacek 2ec3b0
+
Jan Synacek 2ec3b0
+#define MANAGER_SKIP_TEST(r)                                    \
Jan Synacek 2ec3b0
+        IN_SET(r,                                               \
Jan Synacek 2ec3b0
+               -EPERM,                                          \
Jan Synacek 2ec3b0
+               -EACCES,                                         \
Jan Synacek 2ec3b0
+               -EADDRINUSE,                                     \
Jan Synacek 2ec3b0
+               -EHOSTDOWN,                                      \
Jan Synacek 2ec3b0
+               -ENOENT,                                         \
Jan Synacek 2ec3b0
+               -ENOMEDIUM /* cannot determine cgroup */         \
Jan Synacek 2ec3b0
+               )
Jan Synacek 2ec3b0
diff --git a/src/test/test-path.c b/src/test/test-path.c
Jan Synacek 2ec3b0
index 8302bdd..6e6a72d 100644
Jan Synacek 2ec3b0
--- a/src/test/test-path.c
Jan Synacek 2ec3b0
+++ b/src/test/test-path.c
Jan Synacek 2ec3b0
@@ -29,6 +29,7 @@
Jan Synacek 2ec3b0
 #include "rm-rf.h"
Jan Synacek 2ec3b0
 #include "string-util.h"
Jan Synacek 2ec3b0
 #include "strv.h"
Jan Synacek 2ec3b0
+#include "test-helper.h"
Jan Synacek 2ec3b0
 #include "unit.h"
Jan Synacek 2ec3b0
 #include "util.h"
Jan Synacek 2ec3b0
 
Jan Synacek 2ec3b0
@@ -44,7 +45,7 @@ static int setup_test(Manager **m) {
Jan Synacek 2ec3b0
         assert_se(m);
Jan Synacek 2ec3b0
 
Jan Synacek 2ec3b0
         r = manager_new(MANAGER_USER, true, &tmp);
Jan Synacek 2ec3b0
-        if (IN_SET(r, -EPERM, -EACCES, -EADDRINUSE, -EHOSTDOWN, -ENOENT, -ENOEXEC)) {
Jan Synacek 2ec3b0
+        if (MANAGER_SKIP_TEST(r)) {
Jan Synacek 2ec3b0
                 printf("Skipping test: manager_new: %s", strerror(-r));
Jan Synacek 2ec3b0
                 return -EXIT_TEST_SKIP;
Jan Synacek 2ec3b0
         }
Jan Synacek 2ec3b0
diff --git a/src/test/test-sched-prio.c b/src/test/test-sched-prio.c
Jan Synacek 2ec3b0
index 8396ae6..7958a6c 100644
Jan Synacek 2ec3b0
--- a/src/test/test-sched-prio.c
Jan Synacek 2ec3b0
+++ b/src/test/test-sched-prio.c
Jan Synacek 2ec3b0
@@ -23,6 +23,7 @@
Jan Synacek 2ec3b0
 
Jan Synacek 2ec3b0
 #include "macro.h"
Jan Synacek 2ec3b0
 #include "manager.h"
Jan Synacek 2ec3b0
+#include "test-helper.h"
Jan Synacek 2ec3b0
 
Jan Synacek 2ec3b0
 int main(int argc, char *argv[]) {
Jan Synacek 2ec3b0
         Manager *m = NULL;
Jan Synacek 2ec3b0
@@ -35,7 +36,7 @@ int main(int argc, char *argv[]) {
Jan Synacek 2ec3b0
         /* prepare the test */
Jan Synacek 2ec3b0
         assert_se(set_unit_path(TEST_DIR) >= 0);
Jan Synacek 2ec3b0
         r = manager_new(MANAGER_USER, true, &m);
Jan Synacek 2ec3b0
-        if (IN_SET(r, -EPERM, -EACCES, -EADDRINUSE, -EHOSTDOWN, -ENOENT, -ENOEXEC)) {
Jan Synacek 2ec3b0
+        if (MANAGER_SKIP_TEST(r)) {
Jan Synacek 2ec3b0
                 printf("Skipping test: manager_new: %s", strerror(-r));
Jan Synacek 2ec3b0
                 return EXIT_TEST_SKIP;
Jan Synacek 2ec3b0
         }
Jan Synacek 2ec3b0
-- 
Jan Synacek 2ec3b0
2.5.0
Jan Synacek 2ec3b0