selftests/bpf: improve unexpected success reporting in test_syctl

When tests fail because sysctl() unexpectedly succeeds, they print an
inappropriate "Unexpected failure" message and a random errno. Zero
out errno before calling sysctl() and replace the message with
"Unexpected success".

Fixes: 1f5fa9ab6e ("selftests/bpf: Test BPF_CGROUP_SYSCTL")
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
This commit is contained in:
Ilya Leoshkevich 2019-08-30 13:07:31 +02:00 committed by Daniel Borkmann
parent 3404ddf234
commit 416c572821

View File

@ -1499,6 +1499,7 @@ static int run_test_case(int cgfd, struct sysctl_test *test)
goto err;
}
errno = 0;
if (access_sysctl(sysctl_path, test) == -1) {
if (test->result == OP_EPERM && errno == EPERM)
goto out;
@ -1507,7 +1508,7 @@ static int run_test_case(int cgfd, struct sysctl_test *test)
}
if (test->result != SUCCESS) {
log_err("Unexpected failure");
log_err("Unexpected success");
goto err;
}