summaryrefslogtreecommitdiff
path: root/src/test/test-engine.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2017-10-26 16:39:35 +0200
committerLennart Poettering <lennart@poettering.net>2017-11-10 19:45:29 +0100
commitc999cf385aee08295dc204d98585cb4001d08ade (patch)
treeafda0a46ae269775c1b1b50b5c42dc9de2e42b21 /src/test/test-engine.c
parent2651d037518bbcfab06d6d070b86fcf667942e97 (diff)
downloadsystemd-c999cf385aee08295dc204d98585cb4001d08ade.tar.gz
core: add internal API to remove dependencies again, based on dependency mask
let's make use of the dependency mask, and add internal API to remove dependencies ago, based on bits in the dependency mask.
Diffstat (limited to 'src/test/test-engine.c')
-rw-r--r--src/test/test-engine.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/test/test-engine.c b/src/test/test-engine.c
index 55249fdce2..a2e68bf5d9 100644
--- a/src/test/test-engine.c
+++ b/src/test/test-engine.c
@@ -115,6 +115,33 @@ int main(int argc, char *argv[]) {
assert_se(manager_add_job(m, JOB_START, h, JOB_FAIL, NULL, &j) == 0);
manager_dump_jobs(m, stdout, "\t");
+ assert_se(!hashmap_get(a->dependencies[UNIT_PROPAGATES_RELOAD_TO], b));
+ assert_se(!hashmap_get(b->dependencies[UNIT_RELOAD_PROPAGATED_FROM], a));
+ assert_se(!hashmap_get(a->dependencies[UNIT_PROPAGATES_RELOAD_TO], c));
+ assert_se(!hashmap_get(c->dependencies[UNIT_RELOAD_PROPAGATED_FROM], a));
+
+ assert_se(unit_add_dependency(a, UNIT_PROPAGATES_RELOAD_TO, b, true, UNIT_DEPENDENCY_UDEV) == 0);
+ assert_se(unit_add_dependency(a, UNIT_PROPAGATES_RELOAD_TO, c, true, UNIT_DEPENDENCY_PROC_SWAP) == 0);
+
+ assert_se(hashmap_get(a->dependencies[UNIT_PROPAGATES_RELOAD_TO], b));
+ assert_se(hashmap_get(b->dependencies[UNIT_RELOAD_PROPAGATED_FROM], a));
+ assert_se(hashmap_get(a->dependencies[UNIT_PROPAGATES_RELOAD_TO], c));
+ assert_se(hashmap_get(c->dependencies[UNIT_RELOAD_PROPAGATED_FROM], a));
+
+ unit_remove_dependencies(a, UNIT_DEPENDENCY_UDEV);
+
+ assert_se(!hashmap_get(a->dependencies[UNIT_PROPAGATES_RELOAD_TO], b));
+ assert_se(!hashmap_get(b->dependencies[UNIT_RELOAD_PROPAGATED_FROM], a));
+ assert_se(hashmap_get(a->dependencies[UNIT_PROPAGATES_RELOAD_TO], c));
+ assert_se(hashmap_get(c->dependencies[UNIT_RELOAD_PROPAGATED_FROM], a));
+
+ unit_remove_dependencies(a, UNIT_DEPENDENCY_PROC_SWAP);
+
+ assert_se(!hashmap_get(a->dependencies[UNIT_PROPAGATES_RELOAD_TO], b));
+ assert_se(!hashmap_get(b->dependencies[UNIT_RELOAD_PROPAGATED_FROM], a));
+ assert_se(!hashmap_get(a->dependencies[UNIT_PROPAGATES_RELOAD_TO], c));
+ assert_se(!hashmap_get(c->dependencies[UNIT_RELOAD_PROPAGATED_FROM], a));
+
manager_free(m);
return 0;