X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Ftest%2Ftest-cgroup-mask.c;h=9e9de23e0eec3c887134a8bf8f28e1100fe07ab3;hb=0e707326fcecd3968efa7dc827123032f1b2cb61;hp=4d60859513b774a660bcd83d35ab66ee9275d100;hpb=39883f622f392d8579f4428fc5a789a102efbb10;p=elogind.git diff --git a/src/test/test-cgroup-mask.c b/src/test/test-cgroup-mask.c index 4d6085951..9e9de23e0 100644 --- a/src/test/test-cgroup-mask.c +++ b/src/test/test-cgroup-mask.c @@ -37,16 +37,15 @@ static int test_cgroup_mask(void) { FILE *serial = NULL; FDSet *fdset = NULL; int r; - const char *dir = TEST_DIR; /* Prepare the manager. */ - assert_se(set_unit_path(dir) >= 0); - r = manager_new(SYSTEMD_USER, &m); + assert_se(set_unit_path(TEST_DIR) >= 0); + r = manager_new(SYSTEMD_USER, true, &m); if (r == -EPERM || r == -EACCES) { puts("manager_new: Permission denied. Skipping test."); return EXIT_TEST_SKIP; } - assert(r >= 0); + assert_se(r >= 0); assert_se(manager_startup(m, serial, fdset) >= 0); /* Load units and verify hierarchy. */ @@ -55,48 +54,48 @@ static int test_cgroup_mask(void) { assert_se(manager_load_unit(m, "daughter.service", NULL, NULL, &daughter) >= 0); assert_se(manager_load_unit(m, "grandchild.service", NULL, NULL, &grandchild) >= 0); assert_se(manager_load_unit(m, "parent-deep.slice", NULL, NULL, &parent_deep) >= 0); - assert(parent->load_state == UNIT_LOADED); - assert(son->load_state == UNIT_LOADED); - assert(daughter->load_state == UNIT_LOADED); - assert(grandchild->load_state == UNIT_LOADED); - assert(parent_deep->load_state == UNIT_LOADED); - assert(UNIT_DEREF(son->slice) == parent); - assert(UNIT_DEREF(daughter->slice) == parent); - assert(UNIT_DEREF(parent_deep->slice) == parent); - assert(UNIT_DEREF(grandchild->slice) == parent_deep); + assert_se(parent->load_state == UNIT_LOADED); + assert_se(son->load_state == UNIT_LOADED); + assert_se(daughter->load_state == UNIT_LOADED); + assert_se(grandchild->load_state == UNIT_LOADED); + assert_se(parent_deep->load_state == UNIT_LOADED); + assert_se(UNIT_DEREF(son->slice) == parent); + assert_se(UNIT_DEREF(daughter->slice) == parent); + assert_se(UNIT_DEREF(parent_deep->slice) == parent); + assert_se(UNIT_DEREF(grandchild->slice) == parent_deep); root = UNIT_DEREF(parent->slice); /* Verify per-unit cgroups settings. */ - assert(unit_get_cgroup_mask(son) == (CGROUP_CPU | CGROUP_CPUACCT)); - assert(unit_get_cgroup_mask(daughter) == 0); - assert(unit_get_cgroup_mask(grandchild) == 0); - assert(unit_get_cgroup_mask(parent_deep) == CGROUP_MEMORY); - assert(unit_get_cgroup_mask(parent) == CGROUP_BLKIO); - assert(unit_get_cgroup_mask(root) == 0); + assert_se(unit_get_cgroup_mask(son) == (CGROUP_CPU | CGROUP_CPUACCT)); + assert_se(unit_get_cgroup_mask(daughter) == 0); + assert_se(unit_get_cgroup_mask(grandchild) == 0); + assert_se(unit_get_cgroup_mask(parent_deep) == CGROUP_MEMORY); + assert_se(unit_get_cgroup_mask(parent) == CGROUP_BLKIO); + assert_se(unit_get_cgroup_mask(root) == 0); /* Verify aggregation of member masks */ - assert(unit_get_members_mask(son) == 0); - assert(unit_get_members_mask(daughter) == 0); - assert(unit_get_members_mask(grandchild) == 0); - assert(unit_get_members_mask(parent_deep) == 0); - assert(unit_get_members_mask(parent) == (CGROUP_CPU | CGROUP_CPUACCT | CGROUP_MEMORY)); - assert(unit_get_members_mask(root) == (CGROUP_CPU | CGROUP_CPUACCT | CGROUP_BLKIO | CGROUP_MEMORY)); + assert_se(unit_get_members_mask(son) == 0); + assert_se(unit_get_members_mask(daughter) == 0); + assert_se(unit_get_members_mask(grandchild) == 0); + assert_se(unit_get_members_mask(parent_deep) == 0); + assert_se(unit_get_members_mask(parent) == (CGROUP_CPU | CGROUP_CPUACCT | CGROUP_MEMORY)); + assert_se(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(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_se(unit_get_siblings_mask(son) == ((CGROUP_CPU | CGROUP_CPUACCT | CGROUP_MEMORY) & m->cgroup_supported)); + assert_se(unit_get_siblings_mask(daughter) == ((CGROUP_CPU | CGROUP_CPUACCT | CGROUP_MEMORY) & m->cgroup_supported)); + assert_se(unit_get_siblings_mask(grandchild) == 0); + assert_se(unit_get_siblings_mask(parent_deep) == ((CGROUP_CPU | CGROUP_CPUACCT | CGROUP_MEMORY) & m->cgroup_supported)); + assert_se(unit_get_siblings_mask(parent) == ((CGROUP_CPU | CGROUP_CPUACCT | CGROUP_BLKIO | CGROUP_MEMORY) & m->cgroup_supported)); + assert_se(unit_get_siblings_mask(root) == ((CGROUP_CPU | CGROUP_CPUACCT | CGROUP_BLKIO | CGROUP_MEMORY) & 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(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_se(unit_get_target_mask(son) == ((CGROUP_CPU | CGROUP_CPUACCT | CGROUP_MEMORY) & m->cgroup_supported)); + assert_se(unit_get_target_mask(daughter) == ((CGROUP_CPU | CGROUP_CPUACCT | CGROUP_MEMORY) & m->cgroup_supported)); + assert_se(unit_get_target_mask(grandchild) == 0); + assert_se(unit_get_target_mask(parent_deep) == ((CGROUP_CPU | CGROUP_CPUACCT | CGROUP_MEMORY) & m->cgroup_supported)); + assert_se(unit_get_target_mask(parent) == ((CGROUP_CPU | CGROUP_CPUACCT | CGROUP_BLKIO | CGROUP_MEMORY) & m->cgroup_supported)); + assert_se(unit_get_target_mask(root) == ((CGROUP_CPU | CGROUP_CPUACCT | CGROUP_BLKIO | CGROUP_MEMORY) & m->cgroup_supported)); manager_free(m);