X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Ftest%2Ftest-unit-name.c;h=fff3e16ed816b82344433112c8dd534139ac8e0c;hb=e6b5c5d03cb28d2149dc1c124c2a315911b91f4f;hp=7bd99d31c83a72288480953e4da7e98f4ed711ff;hpb=c5e33bf8342daa6bab22f495ef774741184de09d;p=elogind.git diff --git a/src/test/test-unit-name.c b/src/test/test-unit-name.c index 7bd99d31c..fff3e16ed 100644 --- a/src/test/test-unit-name.c +++ b/src/test/test-unit-name.c @@ -34,11 +34,12 @@ #include "specifier.h" #include "util.h" #include "macro.h" +#include "test-helper.h" static void test_replacements(void) { #define expect(pattern, repl, expected) \ { \ - char _cleanup_free_ *t = \ + _cleanup_free_ char *t = \ unit_name_replace_instance(pattern, repl); \ puts(t); \ assert(streq(t, expected)); \ @@ -57,12 +58,12 @@ static void test_replacements(void) { #undef expect #define expect(path, suffix, expected) \ { \ - char _cleanup_free_ *k, *t = \ + _cleanup_free_ char *k, *t = \ unit_name_from_path(path, suffix); \ puts(t); \ k = unit_name_to_path(t); \ puts(k); \ - assert(streq(k, expected ? expected : path)); \ + assert(streq(k, expected ? expected : path)); \ } expect("/waldo", ".mount", NULL); @@ -73,12 +74,12 @@ static void test_replacements(void) { puts("-------------------------------------------------"); #undef expect -#define expect(pattern, path, suffix, expected) \ - { \ - char _cleanup_free_ *t = \ +#define expect(pattern, path, suffix, expected) \ + { \ + _cleanup_free_ char *t = \ unit_name_from_path_instance(pattern, path, suffix); \ - puts(t); \ - assert(streq(t, expected)); \ + puts(t); \ + assert(streq(t, expected)); \ } expect("waldo", "/waldo", ".mount", "waldo@waldo.mount"); @@ -88,13 +89,13 @@ static void test_replacements(void) { puts("-------------------------------------------------"); #undef expect -#define expect(pattern) \ - { \ - char _cleanup_free_ *k, *t; \ - assert_se(t = unit_name_mangle(pattern)); \ - assert_se(k = unit_name_mangle(t)); \ - puts(t); \ - assert_se(streq(t, k)); \ +#define expect(pattern) \ + { \ + _cleanup_free_ char *k, *t; \ + assert_se(t = unit_name_mangle(pattern, MANGLE_NOGLOB)); \ + assert_se(k = unit_name_mangle(t, MANGLE_NOGLOB)); \ + puts(t); \ + assert_se(streq(t, k)); \ } expect("/home"); @@ -108,33 +109,33 @@ static void test_replacements(void) { #undef expect } -static void test_unit_printf(void) { - Manager *m; +static int test_unit_printf(void) { + Manager *m = NULL; Unit *u, *u2; int r; - char _cleanup_free_ *mid, *bid, *host, *root_uid; + _cleanup_free_ char *mid, *bid, *host, *root_uid; struct passwd *root; - assert_se((mid = specifier_machine_id('m', NULL, NULL))); - assert_se((bid = specifier_boot_id('b', NULL, NULL))); + assert_se(specifier_machine_id('m', NULL, NULL, &mid) >= 0 && mid); + assert_se(specifier_boot_id('b', NULL, NULL, &bid) >= 0 && bid); assert_se((host = gethostname_malloc())); assert_se((root = getpwnam("root"))); assert_se(asprintf(&root_uid, "%d", (int) root->pw_uid) > 0); r = manager_new(SYSTEMD_USER, &m); - if (r == -EPERM) { + if (r == -EPERM || r == -EACCES || r == -EADDRINUSE) { puts("manager_new: Permission denied. Skipping test."); - return; + return EXIT_TEST_SKIP; } assert(r == 0); #define expect(unit, pattern, expected) \ { \ char *e; \ - char _cleanup_free_ *t = \ - unit_full_printf(unit, pattern); \ + _cleanup_free_ char *t; \ + assert_se(unit_full_printf(unit, pattern, &t) >= 0); \ printf("result: %s\nexpect: %s\n", t, expected); \ if ((e = endswith(expected, "*"))) \ assert(strncmp(t, e, e-expected)); \ @@ -160,11 +161,9 @@ static void test_unit_printf(void) { expect(u, "%p", "blah"); expect(u, "%P", "blah"); expect(u, "%i", ""); - expect(u, "%I", ""); expect(u, "%u", root->pw_name); expect(u, "%U", root_uid); expect(u, "%h", root->pw_dir); - expect(u, "%s", root->pw_shell); expect(u, "%m", mid); expect(u, "%b", bid); expect(u, "%H", host); @@ -184,16 +183,19 @@ static void test_unit_printf(void) { expect(u2, "%u", root->pw_name); expect(u2, "%U", root_uid); expect(u2, "%h", root->pw_dir); - expect(u2, "%s", root->pw_shell); expect(u2, "%m", mid); expect(u2, "%b", bid); expect(u2, "%H", host); expect(u2, "%t", "/run/user/*"); + + manager_free(m); + + return 0; } int main(int argc, char* argv[]) { + int rc = 0; test_replacements(); - test_unit_printf(); - - return 0; + TEST_REQ_RUNNING_SYSTEMD(rc = test_unit_printf()); + return rc; }