]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Add new test-manager.c and "test" manager_taint_string()
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 6 Apr 2022 10:42:58 +0000 (12:42 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 6 Apr 2022 13:26:05 +0000 (15:26 +0200)
It seems it doesn't fit well anywhere else.

src/test/meson.build
src/test/test-manager.c [new file with mode: 0644]

index 297a65d9afc54f2f743b4bed4044b64cc138debb..11517c990b5f9d9efcdfdc5619bda3ba72f506f3 100644 (file)
@@ -56,6 +56,12 @@ tests += [
           libblkid],
          core_includes],
 
+        [files('test-manager.c'),
+         [libcore,
+          libshared],
+         [],
+         core_includes],
+
         [files('test-emergency-action.c'),
          [libcore,
           libshared],
diff --git a/src/test/test-manager.c b/src/test/test-manager.c
new file mode 100644 (file)
index 0000000..89f9277
--- /dev/null
@@ -0,0 +1,29 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+
+#include "manager.h"
+#include "tests.h"
+
+TEST(manager_taint_string) {
+        Manager m = {};
+
+        _cleanup_free_ char *a = manager_taint_string(&m);
+        assert_se(a);
+        log_debug("taint string w/o split-usr: '%s'", a);
+        /* split-usr is the only one that is cached in Manager, so we know it's not present.
+         * The others are queried dynamically, so we'd need to duplicate the logic here
+         * to test for them. Let's do just one. */
+        assert_se(!strstr(a, "split-usr"));
+
+        if (cg_all_unified() == 0)
+                assert_se(strstr(a, "cgroupsv1"));
+        else
+                assert_se(!strstr(a, "cgroupsv1"));
+
+        m.taint_usr = true;
+        _cleanup_free_ char *b = manager_taint_string(&m);
+        assert_se(b);
+        log_debug("taint string w/ split-usr: '%s'", b);
+        assert_se(strstr(b, "split-usr"));
+}
+
+DEFINE_TEST_MAIN(LOG_DEBUG);