Commit a8911d6d authored by Stanislav Fomichev's avatar Stanislav Fomichev Committed by Alexei Starovoitov

selftests/bpf: fix incorrect users of create_and_get_cgroup

We have some tests that assume create_and_get_cgroup returns -1 on error
which is incorrect (it returns 0 on error). Since fd might be zero in
general case, change create_and_get_cgroup to return -1 on error
and fix the users that assume 0 on error.

Fixes: f269099a ("tools/bpf: add a selftest for bpf_get_current_cgroup_id() helper")
Fixes: 7d2c6cfc ("bpf: use --cgroup in test_suite if supplied")

v2:
- instead of fixing the uses that assume -1 on error, convert the users
  that assume 0 on error (fd might be zero in general case)
Signed-off-by: default avatarStanislav Fomichev <sdf@google.com>
Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent 97274b61
...@@ -77,7 +77,7 @@ static int test_foo_bar(void) ...@@ -77,7 +77,7 @@ static int test_foo_bar(void)
/* Create cgroup /foo, get fd, and join it */ /* Create cgroup /foo, get fd, and join it */
foo = create_and_get_cgroup(FOO); foo = create_and_get_cgroup(FOO);
if (!foo) if (foo < 0)
goto err; goto err;
if (join_cgroup(FOO)) if (join_cgroup(FOO))
...@@ -94,7 +94,7 @@ static int test_foo_bar(void) ...@@ -94,7 +94,7 @@ static int test_foo_bar(void)
/* Create cgroup /foo/bar, get fd, and join it */ /* Create cgroup /foo/bar, get fd, and join it */
bar = create_and_get_cgroup(BAR); bar = create_and_get_cgroup(BAR);
if (!bar) if (bar < 0)
goto err; goto err;
if (join_cgroup(BAR)) if (join_cgroup(BAR))
...@@ -298,19 +298,19 @@ static int test_multiprog(void) ...@@ -298,19 +298,19 @@ static int test_multiprog(void)
goto err; goto err;
cg1 = create_and_get_cgroup("/cg1"); cg1 = create_and_get_cgroup("/cg1");
if (!cg1) if (cg1 < 0)
goto err; goto err;
cg2 = create_and_get_cgroup("/cg1/cg2"); cg2 = create_and_get_cgroup("/cg1/cg2");
if (!cg2) if (cg2 < 0)
goto err; goto err;
cg3 = create_and_get_cgroup("/cg1/cg2/cg3"); cg3 = create_and_get_cgroup("/cg1/cg2/cg3");
if (!cg3) if (cg3 < 0)
goto err; goto err;
cg4 = create_and_get_cgroup("/cg1/cg2/cg3/cg4"); cg4 = create_and_get_cgroup("/cg1/cg2/cg3/cg4");
if (!cg4) if (cg4 < 0)
goto err; goto err;
cg5 = create_and_get_cgroup("/cg1/cg2/cg3/cg4/cg5"); cg5 = create_and_get_cgroup("/cg1/cg2/cg3/cg4/cg5");
if (!cg5) if (cg5 < 0)
goto err; goto err;
if (join_cgroup("/cg1/cg2/cg3/cg4/cg5")) if (join_cgroup("/cg1/cg2/cg3/cg4/cg5"))
......
...@@ -32,7 +32,7 @@ int main(int argc, char **argv) ...@@ -32,7 +32,7 @@ int main(int argc, char **argv)
cg2 = create_and_get_cgroup(CGROUP_PATH); cg2 = create_and_get_cgroup(CGROUP_PATH);
if (!cg2) if (cg2 < 0)
goto err; goto err;
if (bpf_map_update_elem(map_fd[0], &idx, &cg2, BPF_ANY)) { if (bpf_map_update_elem(map_fd[0], &idx, &cg2, BPF_ANY)) {
......
...@@ -155,7 +155,7 @@ void cleanup_cgroup_environment(void) ...@@ -155,7 +155,7 @@ void cleanup_cgroup_environment(void)
* This function creates a cgroup under the top level workdir and returns the * This function creates a cgroup under the top level workdir and returns the
* file descriptor. It is idempotent. * file descriptor. It is idempotent.
* *
* On success, it returns the file descriptor. On failure it returns 0. * On success, it returns the file descriptor. On failure it returns -1.
* If there is a failure, it prints the error to stderr. * If there is a failure, it prints the error to stderr.
*/ */
int create_and_get_cgroup(const char *path) int create_and_get_cgroup(const char *path)
...@@ -166,13 +166,13 @@ int create_and_get_cgroup(const char *path) ...@@ -166,13 +166,13 @@ int create_and_get_cgroup(const char *path)
format_cgroup_path(cgroup_path, path); format_cgroup_path(cgroup_path, path);
if (mkdir(cgroup_path, 0777) && errno != EEXIST) { if (mkdir(cgroup_path, 0777) && errno != EEXIST) {
log_err("mkdiring cgroup %s .. %s", path, cgroup_path); log_err("mkdiring cgroup %s .. %s", path, cgroup_path);
return 0; return -1;
} }
fd = open(cgroup_path, O_RDONLY); fd = open(cgroup_path, O_RDONLY);
if (fd < 0) { if (fd < 0) {
log_err("Opening Cgroup"); log_err("Opening Cgroup");
return 0; return -1;
} }
return fd; return fd;
......
...@@ -81,7 +81,7 @@ int main(int argc, char **argv) ...@@ -81,7 +81,7 @@ int main(int argc, char **argv)
/* Create a cgroup, get fd, and join it */ /* Create a cgroup, get fd, and join it */
cgroup_fd = create_and_get_cgroup(TEST_CGROUP); cgroup_fd = create_and_get_cgroup(TEST_CGROUP);
if (!cgroup_fd) { if (cgroup_fd < 0) {
printf("Failed to create test cgroup\n"); printf("Failed to create test cgroup\n");
goto err; goto err;
} }
......
...@@ -43,7 +43,7 @@ int main(int argc, char **argv) ...@@ -43,7 +43,7 @@ int main(int argc, char **argv)
/* Create a cgroup, get fd, and join it */ /* Create a cgroup, get fd, and join it */
cgroup_fd = create_and_get_cgroup(TEST_CGROUP); cgroup_fd = create_and_get_cgroup(TEST_CGROUP);
if (!cgroup_fd) { if (cgroup_fd < 0) {
printf("Failed to create test cgroup\n"); printf("Failed to create test cgroup\n");
goto err; goto err;
} }
......
...@@ -65,7 +65,7 @@ int main(int argc, char **argv) ...@@ -65,7 +65,7 @@ int main(int argc, char **argv)
/* Create a cgroup, get fd, and join it */ /* Create a cgroup, get fd, and join it */
cgroup_fd = create_and_get_cgroup(TEST_CGROUP); cgroup_fd = create_and_get_cgroup(TEST_CGROUP);
if (!cgroup_fd) { if (cgroup_fd < 0) {
printf("Failed to create test cgroup\n"); printf("Failed to create test cgroup\n");
goto err; goto err;
} }
......
...@@ -164,7 +164,7 @@ int main(int argc, char **argv) ...@@ -164,7 +164,7 @@ int main(int argc, char **argv)
goto err; goto err;
cgfd = create_and_get_cgroup(CGROUP_PATH); cgfd = create_and_get_cgroup(CGROUP_PATH);
if (!cgfd) if (cgfd < 0)
goto err; goto err;
if (join_cgroup(CGROUP_PATH)) if (join_cgroup(CGROUP_PATH))
......
...@@ -458,7 +458,7 @@ int main(int argc, char **argv) ...@@ -458,7 +458,7 @@ int main(int argc, char **argv)
goto err; goto err;
cgfd = create_and_get_cgroup(CG_PATH); cgfd = create_and_get_cgroup(CG_PATH);
if (!cgfd) if (cgfd < 0)
goto err; goto err;
if (join_cgroup(CG_PATH)) if (join_cgroup(CG_PATH))
......
...@@ -1442,7 +1442,7 @@ int main(int argc, char **argv) ...@@ -1442,7 +1442,7 @@ int main(int argc, char **argv)
goto err; goto err;
cgfd = create_and_get_cgroup(CG_PATH); cgfd = create_and_get_cgroup(CG_PATH);
if (!cgfd) if (cgfd < 0)
goto err; goto err;
if (join_cgroup(CG_PATH)) if (join_cgroup(CG_PATH))
......
...@@ -202,7 +202,7 @@ int main(int argc, char **argv) ...@@ -202,7 +202,7 @@ int main(int argc, char **argv)
goto err; goto err;
cgfd = create_and_get_cgroup(CG_PATH); cgfd = create_and_get_cgroup(CG_PATH);
if (!cgfd) if (cgfd < 0)
goto err; goto err;
if (join_cgroup(CG_PATH)) if (join_cgroup(CG_PATH))
......
...@@ -103,7 +103,7 @@ int main(int argc, char **argv) ...@@ -103,7 +103,7 @@ int main(int argc, char **argv)
goto err; goto err;
cg_fd = create_and_get_cgroup(cg_path); cg_fd = create_and_get_cgroup(cg_path);
if (!cg_fd) if (cg_fd < 0)
goto err; goto err;
if (join_cgroup(cg_path)) if (join_cgroup(cg_path))
......
...@@ -115,7 +115,7 @@ int main(int argc, char **argv) ...@@ -115,7 +115,7 @@ int main(int argc, char **argv)
goto err; goto err;
cg_fd = create_and_get_cgroup(cg_path); cg_fd = create_and_get_cgroup(cg_path);
if (!cg_fd) if (cg_fd < 0)
goto err; goto err;
if (join_cgroup(cg_path)) if (join_cgroup(cg_path))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment