From 730d989acc5cd913ffbf747570713c10f46516c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Thu, 13 Sep 2018 16:11:16 +0200 Subject: [PATCH] tests: add a helper function to skip with errno --- src/libsystemd/sd-bus/test-bus-gvariant.c | 15 +++++++-------- src/shared/tests.c | 6 ++++++ src/shared/tests.h | 1 + src/test/test-engine.c | 6 ++---- src/test/test-execute.c | 6 ++---- src/test/test-netlink-manual.c | 12 ++++-------- src/test/test-path.c | 6 ++---- src/test/test-sched-prio.c | 6 ++---- src/test/test-unit-file.c | 7 ++----- src/test/test-unit-name.c | 6 ++---- 10 files changed, 30 insertions(+), 41 deletions(-) diff --git a/src/libsystemd/sd-bus/test-bus-gvariant.c b/src/libsystemd/sd-bus/test-bus-gvariant.c index 648fea76e0..ae418efa8b 100644 --- a/src/libsystemd/sd-bus/test-bus-gvariant.c +++ b/src/libsystemd/sd-bus/test-bus-gvariant.c @@ -114,18 +114,16 @@ static void test_bus_gvariant_get_alignment(void) { assert_se(bus_gvariant_get_alignment("((t)(t))") == 8); } -static void test_marshal(void) { +static int test_marshal(void) { _cleanup_(sd_bus_message_unrefp) sd_bus_message *m = NULL, *n = NULL; _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL; - _cleanup_free_ void *blob; + _cleanup_free_ void *blob = NULL; size_t sz; int r; r = sd_bus_open_user(&bus); - if (r < 0) { - log_info("Failed to connect to bus, skipping tests."); - exit(EXIT_TEST_SKIP); - } + if (r < 0) + return log_tests_skipped_errno(r, "Failed to connect to bus"); bus->message_version = 2; /* dirty hack to enable gvariant */ @@ -197,6 +195,8 @@ static void test_marshal(void) { assert_se(sd_bus_message_seal(m, 4712, 0) >= 0); assert_se(bus_message_dump(m, NULL, BUS_MESSAGE_DUMP_WITH_HEADER) >= 0); + + return EXIT_SUCCESS; } int main(int argc, char *argv[]) { @@ -205,7 +205,6 @@ int main(int argc, char *argv[]) { test_bus_gvariant_is_fixed_size(); test_bus_gvariant_get_size(); test_bus_gvariant_get_alignment(); - test_marshal(); - return 0; + return test_marshal(); } diff --git a/src/shared/tests.c b/src/shared/tests.c index 8d70c02802..10fe6a088c 100644 --- a/src/shared/tests.c +++ b/src/shared/tests.c @@ -102,3 +102,9 @@ int log_tests_skipped(const char *message) { program_invocation_short_name, message); return EXIT_TEST_SKIP; } + +int log_tests_skipped_errno(int r, const char *message) { + log_notice_errno(r, "%s: %s, skipping tests: %m", + program_invocation_short_name, message); + return EXIT_TEST_SKIP; +} diff --git a/src/shared/tests.h b/src/shared/tests.h index f35a526737..549959edf2 100644 --- a/src/shared/tests.h +++ b/src/shared/tests.h @@ -7,3 +7,4 @@ const char* get_catalog_dir(void); bool slow_tests_enabled(void); void test_setup_logging(int level); int log_tests_skipped(const char *message); +int log_tests_skipped_errno(int r, const char *message); diff --git a/src/test/test-engine.c b/src/test/test-engine.c index 0483c5b698..0673d36b62 100644 --- a/src/test/test-engine.c +++ b/src/test/test-engine.c @@ -28,10 +28,8 @@ int main(int argc, char *argv[]) { assert_se(set_unit_path(get_testdata_dir()) >= 0); assert_se(runtime_dir = setup_fake_runtime_dir()); r = manager_new(UNIT_FILE_USER, MANAGER_TEST_RUN_BASIC, &m); - if (MANAGER_SKIP_TEST(r)) { - log_notice_errno(r, "Skipping test: manager_new: %m"); - return EXIT_TEST_SKIP; - } + if (MANAGER_SKIP_TEST(r)) + return log_tests_skipped_errno(r, "manager_new"); assert_se(r >= 0); assert_se(manager_startup(m, NULL, NULL) >= 0); diff --git a/src/test/test-execute.c b/src/test/test-execute.c index 15967f76c2..c3ea5f6469 100644 --- a/src/test/test-execute.c +++ b/src/test/test-execute.c @@ -664,10 +664,8 @@ static int run_tests(UnitFileScope scope, const test_function_t *tests) { assert_se(tests); r = manager_new(scope, MANAGER_TEST_RUN_BASIC, &m); - if (MANAGER_SKIP_TEST(r)) { - log_notice_errno(r, "Skipping test: manager_new: %m"); - return EXIT_TEST_SKIP; - } + if (MANAGER_SKIP_TEST(r)) + return log_tests_skipped_errno(r, "manager_new"); assert_se(r >= 0); assert_se(manager_startup(m, NULL, NULL) >= 0); diff --git a/src/test/test-netlink-manual.c b/src/test/test-netlink-manual.c index a471456e0c..1ebe8d1972 100644 --- a/src/test/test-netlink-manual.c +++ b/src/test/test-netlink-manual.c @@ -47,16 +47,12 @@ static int test_tunnel_configure(sd_netlink *rtnl) { /* skip test if module cannot be loaded */ r = load_module("ipip"); - if (r < 0) { - log_info_errno(r, "Skipping tests: failed to load module 'ipip': %m"); - return EXIT_TEST_SKIP; - } + if (r < 0) + return log_tests_skipped_errno(r, "failed to load module 'ipip'"); r = load_module("sit"); - if (r < 0) { - log_info_errno(r, "Skipping tests: failed to load module 'sit': %m"); - return EXIT_TEST_SKIP; - } + if (r < 0) + return log_tests_skipped_errno(r, "failed to load module 'sit'"); if (getuid() != 0) return log_tests_skipped("not root"); diff --git a/src/test/test-path.c b/src/test/test-path.c index 025b3295a0..0b5537b364 100644 --- a/src/test/test-path.c +++ b/src/test/test-path.c @@ -37,10 +37,8 @@ static int setup_test(Manager **m) { return log_tests_skipped("cgroupfs not available"); r = manager_new(UNIT_FILE_USER, MANAGER_TEST_RUN_BASIC, &tmp); - if (MANAGER_SKIP_TEST(r)) { - log_notice_errno(r, "Skipping test: manager_new: %m"); - return EXIT_TEST_SKIP; - } + if (MANAGER_SKIP_TEST(r)) + return log_tests_skipped_errno(r, "manager_new"); assert_se(r >= 0); assert_se(manager_startup(tmp, NULL, NULL) >= 0); diff --git a/src/test/test-sched-prio.c b/src/test/test-sched-prio.c index f6ca192f07..1aa178182b 100644 --- a/src/test/test-sched-prio.c +++ b/src/test/test-sched-prio.c @@ -29,10 +29,8 @@ int main(int argc, char *argv[]) { assert_se(set_unit_path(get_testdata_dir()) >= 0); assert_se(runtime_dir = setup_fake_runtime_dir()); r = manager_new(UNIT_FILE_USER, MANAGER_TEST_RUN_BASIC, &m); - if (MANAGER_SKIP_TEST(r)) { - log_notice_errno(r, "Skipping test: manager_new: %m"); - return EXIT_TEST_SKIP; - } + if (MANAGER_SKIP_TEST(r)) + return log_tests_skipped_errno(r, "manager_new"); assert_se(r >= 0); assert_se(manager_startup(m, NULL, NULL) >= 0); diff --git a/src/test/test-unit-file.c b/src/test/test-unit-file.c index 7132146827..cb074aaa4d 100644 --- a/src/test/test-unit-file.c +++ b/src/test/test-unit-file.c @@ -39,11 +39,8 @@ static int test_unit_file_get_set(void) { assert_se(h); r = unit_file_get_list(UNIT_FILE_SYSTEM, NULL, h, NULL, NULL); - - if (IN_SET(r, -EPERM, -EACCES)) { - log_notice_errno(r, "Skipping test: unit_file_get_list: %m"); - return EXIT_TEST_SKIP; - } + if (IN_SET(r, -EPERM, -EACCES)) + return log_tests_skipped_errno(r, "unit_file_get_list"); log_full_errno(r == 0 ? LOG_INFO : LOG_ERR, r, "unit_file_get_list: %m"); diff --git a/src/test/test-unit-name.c b/src/test/test-unit-name.c index b1600db534..157c900276 100644 --- a/src/test/test-unit-name.c +++ b/src/test/test-unit-name.c @@ -205,10 +205,8 @@ static int test_unit_printf(void) { assert_se(get_shell(&shell) >= 0); r = manager_new(UNIT_FILE_USER, MANAGER_TEST_RUN_MINIMAL, &m); - if (MANAGER_SKIP_TEST(r)) { - log_notice_errno(r, "Skipping test: manager_new: %m"); - return EXIT_TEST_SKIP; - } + if (MANAGER_SKIP_TEST(r)) + return log_tests_skipped_errno(r, "manager_new"); assert_se(r == 0); #define expect(unit, pattern, expected) \