]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: fix some failures in test-cgroup
authorWen Yang <wenyang@linux.alibaba.com>
Tue, 18 Feb 2020 12:56:21 +0000 (20:56 +0800)
committerWen Yang <wenyang@linux.alibaba.com>
Tue, 18 Feb 2020 14:36:28 +0000 (22:36 +0800)
Fix the following issues in test-cgroup:
1, commit 65be7e06528a ("pid1: do not reset subtree_control on
already-existing units with delegation") changed the return value
of cg_create () as follows:
"Returns 0 if the group already existed, 1 on success, negative
otherwise."
So we need to modify the test cases related to cg_create ().

2, commit efdb02375beb ("core: unified cgroup hierarchy support")
changed cg_delete () to cg_rmdir (), so the test cases also need
to be adjusted a bit.

3. There is no cleanup of "test-a". If we execute test-cgroup
multiple times, we will encounter an error.

Signed-off-by: Wen Yang <wenyang@linux.alibaba.com>
src/test/test-cgroup.c

index f16cb291f222f8527d10c0515b2233db5641c2a7..afcdcdc4410e3457b2d7a8b5a42d8dd340da00bb 100644 (file)
@@ -13,10 +13,10 @@ int main(int argc, char *argv[]) {
         char *path;
         char *c, *p;
 
+        assert_se(cg_create(SYSTEMD_CGROUP_CONTROLLER, "/test-a") == 1);
         assert_se(cg_create(SYSTEMD_CGROUP_CONTROLLER, "/test-a") == 0);
-        assert_se(cg_create(SYSTEMD_CGROUP_CONTROLLER, "/test-a") == 0);
-        assert_se(cg_create(SYSTEMD_CGROUP_CONTROLLER, "/test-b") == 0);
-        assert_se(cg_create(SYSTEMD_CGROUP_CONTROLLER, "/test-b/test-c") == 0);
+        assert_se(cg_create(SYSTEMD_CGROUP_CONTROLLER, "/test-b") == 1);
+        assert_se(cg_create(SYSTEMD_CGROUP_CONTROLLER, "/test-b/test-c") == 1);
         assert_se(cg_create_and_attach(SYSTEMD_CGROUP_CONTROLLER, "/test-b", 0) == 0);
 
         assert_se(cg_pid_get_path(SYSTEMD_CGROUP_CONTROLLER, getpid_cached(), &path) == 0);
@@ -29,7 +29,7 @@ int main(int argc, char *argv[]) {
         assert_se(path_equal(path, "/test-a"));
         free(path);
 
-        assert_se(cg_create_and_attach(SYSTEMD_CGROUP_CONTROLLER, "/test-b/test-d", 0) == 0);
+        assert_se(cg_create_and_attach(SYSTEMD_CGROUP_CONTROLLER, "/test-b/test-d", 0) == 1);
 
         assert_se(cg_pid_get_path(SYSTEMD_CGROUP_CONTROLLER, getpid_cached(), &path) == 0);
         assert_se(path_equal(path, "/test-b/test-d"));
@@ -57,8 +57,10 @@ int main(int argc, char *argv[]) {
 
         cg_trim(SYSTEMD_CGROUP_CONTROLLER, "/", false);
 
-        assert_se(cg_rmdir(SYSTEMD_CGROUP_CONTROLLER, "/test-b") < 0);
-        assert_se(cg_rmdir(SYSTEMD_CGROUP_CONTROLLER, "/test-a") >= 0);
+        assert_se(cg_rmdir(SYSTEMD_CGROUP_CONTROLLER, "/test-b") == 0);
+        assert_se(cg_rmdir(SYSTEMD_CGROUP_CONTROLLER, "/test-a") < 0);
+        assert_se(cg_migrate_recursive(SYSTEMD_CGROUP_CONTROLLER, "/test-a", SYSTEMD_CGROUP_CONTROLLER, "system.slice", 0) > 0);
+        assert_se(cg_rmdir(SYSTEMD_CGROUP_CONTROLLER, "/test-a") == 0);
 
         assert_se(cg_split_spec("foobar:/", &c, &p) == 0);
         assert_se(streq(c, "foobar"));
@@ -66,7 +68,7 @@ int main(int argc, char *argv[]) {
         free(c);
         free(p);
 
-        assert_se(cg_split_spec("foobar:", &c, &p) < 0);
+        assert_se(cg_split_spec("foobar:", &c, &p) == 0);
         assert_se(cg_split_spec("foobar:asdfd", &c, &p) < 0);
         assert_se(cg_split_spec(":///", &c, &p) < 0);
         assert_se(cg_split_spec(":", &c, &p) < 0);