Skip to content

Commit

Permalink
Fix failing test
Browse files Browse the repository at this point in the history
In test-execute, only the unit was started, not the slice. Because of
that the slice cgroup was pruned even if it was still needed. From what
I can tell, this is because, in the test, we don't have all the
mechanics that starts the slice for a service. To fix the issue the
slice is started manually.
  • Loading branch information
rphibel committed May 30, 2023
1 parent 380dd17 commit fc6172b
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions src/test/test-execute.c
Original file line number Diff line number Diff line change
Expand Up @@ -206,13 +206,27 @@ static bool is_inaccessible_available(void) {
return true;
}

static void start_parent_slices(Unit *unit) {
Unit *slice;

slice = UNIT_GET_SLICE(unit);
if (slice) {
start_parent_slices(slice);
int r = unit_start(slice, NULL);
assert_se(r >= 0 || r == -EALREADY);
}
}

static void _test(const char *file, unsigned line, const char *func,
Manager *m, const char *unit_name, int status_expected, int code_expected) {
Unit *unit;

assert_se(unit_name);

assert_se(manager_load_startable_unit_or_warn(m, unit_name, NULL, &unit) >= 0);
/* We need to start the slices as well otherwise the slice cgroups might be pruned
* in on_cgroup_empty_event. */
start_parent_slices(unit);
assert_se(unit_start(unit, NULL) >= 0);
check_main_result(file, line, func, m, unit, status_expected, code_expected);
}
Expand Down

0 comments on commit fc6172b

Please sign in to comment.