mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-10-27 10:25:06 +03:00
tests: add a helper function to skip with errno
This commit is contained in:
parent
6d7c403324
commit
730d989acc
@ -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();
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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");
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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");
|
||||
|
@ -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) \
|
||||
|
Loading…
Reference in New Issue
Block a user