From: Michal Koutný Date: Mon, 3 Feb 2025 16:02:09 +0000 (+0100) Subject: test-cgroup-util: Ignore LXC group X-Git-Tag: v258-rc1~1104^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F36024%2Fhead;p=thirdparty%2Fsystemd.git test-cgroup-util: Ignore LXC group LXC helper processes hide themselve in .lxc cgroup, we don't have to deal with the inside tests (and the error in conversion to unit is handled). Skip those but keep iterating over remaining processes to detect what can be created around us. --- diff --git a/src/test/test-cgroup-util.c b/src/test/test-cgroup-util.c index 8743bd1cc74..cdf2ea83d7e 100644 --- a/src/test/test-cgroup-util.c +++ b/src/test/test-cgroup-util.c @@ -198,6 +198,13 @@ TEST(get_paths, .sd_booted = true) { log_info("Root = %s", a); } +static inline bool hidden_cgroup(const char *p) { + assert(p); + + /* Consider top-level cgroup hidden from us */ + return p[0] == '/' && p[strspn(p, "/")] == '.'; +} + TEST(proc, .sd_booted = true) { _cleanup_closedir_ DIR *d = NULL; int r; @@ -219,6 +226,10 @@ TEST(proc, .sd_booted = true) { continue; ASSERT_OK_ZERO(cg_pidref_get_path(SYSTEMD_CGROUP_CONTROLLER, &pid, &path)); + /* Test may run in a container with supervising/monitor processes that don't belong to our + * cgroup tree (slices/leaves) */ + if (hidden_cgroup(path)) + continue; ASSERT_OK_ZERO(cg_pid_get_path_shifted(pid.pid, NULL, &path_shifted)); ASSERT_OK_ZERO(cg_pidref_get_unit(&pid, &unit)); ASSERT_OK_ZERO(cg_pid_get_slice(pid.pid, &slice));