mirror of
https://github.com/systemd/systemd
synced 2024-09-06 08:46:19 +00:00
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.
This commit is contained in:
parent
18f8c5d466
commit
c3ab2c389e
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue