From: Lennart Poettering Date: Mon, 29 Apr 2019 10:58:55 +0000 (+0200) Subject: test-execute: let's ignore the difference between CLD_KILLED and CLD_DUMPED X-Git-Tag: v243-rc1~381^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c3ab2c389ee60d92fb8d7fe779ae9c4e3c092e4c;p=thirdparty%2Fsystemd.git test-execute: let's ignore the difference between CLD_KILLED and CLD_DUMPED Depending on system configuration and whether SCMP_ACT_KILL_PROCESS or SCMP_ACT_KILL_THREAD is available/used processes might coredump on specific coredumps or are just plain killed. For our test case the difference doesn't really matter, hence let's hide it away. --- diff --git a/src/test/test-execute.c b/src/test/test-execute.c index a27de296a4d..7f8ea2be986 100644 --- a/src/test/test-execute.c +++ b/src/test/test-execute.c @@ -33,6 +33,12 @@ static bool can_unshare; typedef void (*test_function_t)(Manager *m); +static int cld_dumped_to_killed(int code) { + /* Depending on the system, seccomp version, … some signals might result in dumping, others in plain + * killing. Let's ignore the difference here, and map both cases to CLD_KILLED */ + return code == CLD_DUMPED ? CLD_KILLED : code; +} + static void check(const char *func, Manager *m, Unit *unit, int status_expected, int code_expected) { Service *service = NULL; usec_t ts; @@ -63,7 +69,7 @@ static void check(const char *func, Manager *m, Unit *unit, int status_expected, } exec_status_dump(&service->main_exec_status, stdout, "\t"); - if (service->main_exec_status.code != code_expected) { + if (cld_dumped_to_killed(service->main_exec_status.code) != cld_dumped_to_killed(code_expected)) { log_error("%s: %s: exit code %d, expected %d", func, unit->id, service->main_exec_status.code, code_expected);