[systemd-devel] [PATCH] test-cgroup-mask: pass on kernels without memory controller
Zbigniew Jędrzejewski-Szmek
zbyszek at in.waw.pl
Tue Feb 18 20:40:21 PST 2014
It seems that unit_get_siblings_mask returns the controllers
filtered by what is available, but get_members_mask and
get_cgroup_mask do not. This just fixes the test following the
symptoms, since I don't know what is the expected behaviour.
---
I haven't looked at the code recently... so I'm just throwing this
out there.
Zbyszek
src/core/cgroup.c | 2 +-
src/test/test-cgroup-mask.c | 20 ++++++++++----------
2 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/src/core/cgroup.c b/src/core/cgroup.c
index 6c51235..707ce47 100644
--- a/src/core/cgroup.c
+++ b/src/core/cgroup.c
@@ -362,7 +362,7 @@ CGroupControllerMask unit_get_members_mask(Unit *u) {
if (member == u)
continue;
- if (UNIT_DEREF(member->slice) != u)
+ if (UNIT_DEREF(member->slice) != u)
continue;
u->cgroup_members_mask |=
diff --git a/src/test/test-cgroup-mask.c b/src/test/test-cgroup-mask.c
index 3414ed4..cff7e8f 100644
--- a/src/test/test-cgroup-mask.c
+++ b/src/test/test-cgroup-mask.c
@@ -83,20 +83,20 @@ static int test_cgroup_mask(void) {
assert(unit_get_members_mask(root) == (CGROUP_CPU | CGROUP_CPUACCT | CGROUP_BLKIO | CGROUP_MEMORY));
/* Verify aggregation of sibling masks. */
- assert(unit_get_siblings_mask(son) == (CGROUP_CPU | CGROUP_CPUACCT));
- assert(unit_get_siblings_mask(daughter) == (CGROUP_CPU | CGROUP_CPUACCT));
+ assert(unit_get_siblings_mask(son) == ((CGROUP_CPU | CGROUP_CPUACCT) & m->cgroup_supported));
+ assert(unit_get_siblings_mask(daughter) == ((CGROUP_CPU | CGROUP_CPUACCT) & m->cgroup_supported));
assert(unit_get_siblings_mask(grandchild) == 0);
- assert(unit_get_siblings_mask(parent_deep) == (CGROUP_CPU | CGROUP_CPUACCT));
- assert(unit_get_siblings_mask(parent) == (CGROUP_CPU | CGROUP_CPUACCT | CGROUP_BLKIO));
- assert(unit_get_siblings_mask(root) == (CGROUP_CPU | CGROUP_CPUACCT | CGROUP_BLKIO));
+ assert(unit_get_siblings_mask(parent_deep) == ((CGROUP_CPU | CGROUP_CPUACCT) & m->cgroup_supported));
+ assert(unit_get_siblings_mask(parent) == ((CGROUP_CPU | CGROUP_CPUACCT | CGROUP_BLKIO) & m->cgroup_supported));
+ assert(unit_get_siblings_mask(root) == ((CGROUP_CPU | CGROUP_CPUACCT | CGROUP_BLKIO) & m->cgroup_supported));
/* Verify aggregation of target masks. */
- assert(unit_get_target_mask(son) == (CGROUP_CPU | CGROUP_CPUACCT));
- assert(unit_get_target_mask(daughter) == (CGROUP_CPU | CGROUP_CPUACCT));
+ assert(unit_get_target_mask(son) == ((CGROUP_CPU | CGROUP_CPUACCT) & m->cgroup_supported));
+ assert(unit_get_target_mask(daughter) == ((CGROUP_CPU | CGROUP_CPUACCT) & m->cgroup_supported));
assert(unit_get_target_mask(grandchild) == 0);
- assert(unit_get_target_mask(parent_deep) == (CGROUP_CPU | CGROUP_CPUACCT | CGROUP_MEMORY));
- assert(unit_get_target_mask(parent) == (CGROUP_CPU | CGROUP_CPUACCT | CGROUP_BLKIO | CGROUP_MEMORY));
- assert(unit_get_target_mask(root) == (CGROUP_CPU | CGROUP_CPUACCT | CGROUP_BLKIO | CGROUP_MEMORY));
+ assert(unit_get_target_mask(parent_deep) == ((CGROUP_CPU | CGROUP_CPUACCT | CGROUP_MEMORY) & m->cgroup_supported));
+ assert(unit_get_target_mask(parent) == ((CGROUP_CPU | CGROUP_CPUACCT | CGROUP_BLKIO | CGROUP_MEMORY) & m->cgroup_supported));
+ assert(unit_get_target_mask(root) == ((CGROUP_CPU | CGROUP_CPUACCT | CGROUP_BLKIO | CGROUP_MEMORY) & m->cgroup_supported));
manager_free(m);
--
1.8.5.3
More information about the systemd-devel
mailing list