diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-02-22 22:09:38 +0100 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-02-23 01:11:18 +0100 |
commit | 8ebfd50aaf5503de0e77e7786095760030458e67 (patch) | |
tree | 6003d3d8635f3b81087f0fad0c09cccebd499ed0 /src/test/test-condition.c | |
parent | 6c3f7ca036829825f344ffb364354faee5db174e (diff) | |
download | systemd-8ebfd50aaf5503de0e77e7786095760030458e67.tar.gz |
shared/condition: add ConditionControlGroupController=v1|v2
Before, we only allowed conditionalizing on controllers, not the hierarchy.
This commit extends this to allow a simple check for v1 (i.e. classic or hybrid),
and v2 (full unified).
An alternative approach would be to add a separate Condition for this, but I'm
not too keen on that, considering that v1 is already being deprecrecated
(c.f. 82f3063218).
Diffstat (limited to 'src/test/test-condition.c')
-rw-r--r-- | src/test/test-condition.c | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/test/test-condition.c b/src/test/test-condition.c index 25483d015b..3fe961f60b 100644 --- a/src/test/test-condition.c +++ b/src/test/test-condition.c @@ -124,10 +124,26 @@ static void test_condition_test_path(void) { condition_free(condition); } +static void test_condition_test_control_group_hierarchy(void) { + Condition *condition; + int r; + + r = cg_unified(); + + condition = condition_new(CONDITION_CONTROL_GROUP_CONTROLLER, "v1", false, false); + assert_se(condition); + assert_se(condition_test(condition, environ) == (r < CGROUP_UNIFIED_ALL)); + condition_free(condition); + + condition = condition_new(CONDITION_CONTROL_GROUP_CONTROLLER, "v2", false, false); + assert_se(condition); + assert_se(condition_test(condition, environ) == (r >= CGROUP_UNIFIED_ALL)); + condition_free(condition); +} + static void test_condition_test_control_group_controller(void) { Condition *condition; CGroupMask system_mask; - CGroupController controller; _cleanup_free_ char *controller_name = NULL; int r; @@ -151,7 +167,7 @@ static void test_condition_test_control_group_controller(void) { assert_se(cg_mask_supported(&system_mask) >= 0); /* Individual valid controllers one by one */ - for (controller = 0; controller < _CGROUP_CONTROLLER_MAX; controller++) { + for (CGroupController controller = 0; controller < _CGROUP_CONTROLLER_MAX; controller++) { const char *local_controller_name = cgroup_controller_to_string(controller); log_info("chosen controller is '%s'", local_controller_name); if (system_mask & CGROUP_CONTROLLER_TO_MASK(controller)) { @@ -881,6 +897,7 @@ int main(int argc, char *argv[]) { test_condition_test_virtualization(); test_condition_test_user(); test_condition_test_group(); + test_condition_test_control_group_hierarchy(); test_condition_test_control_group_controller(); test_condition_test_cpus(); test_condition_test_memory(); |