mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-08-29 01:50:15 +03:00
Fix failing test
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. (cherry picked from commitfc6172b1d8
) (cherry picked from commit0ff6da9e9d
)
This commit is contained in:
committed by
Luca Boccassi
parent
a3bb20dd41
commit
7688af371a
@ -203,6 +203,17 @@ 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;
|
||||
@ -210,6 +221,9 @@ static void _test(const char *file, unsigned line, const char *func,
|
||||
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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user