Message ID | 20230408022919.54601-1-chantr4@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | c4d3b488a90be95f4f9413dc7eae5fc113d15fe9 |
Delegated to: | BPF |
Headers | show |
Series | selftests/bpf: Reset err when symbol name already exist in kprobe_multi_test | expand |
Hello: This patch was applied to bpf/bpf-next.git (master) by Andrii Nakryiko <andrii@kernel.org>: On Fri, 7 Apr 2023 19:29:19 -0700 you wrote: > When trying to add a name to the hashmap, an error code of EEXIST is > returned and we continue as names are possibly duplicated in the sys > file. > > If the last name in the file is a duplicate, we will continue to the > next iteration of the while loop, and exit the loop with a value of err > set to EEXIST and enter the error label with err set, which causes the > test to fail when it should not. > > [...] Here is the summary with links: - selftests/bpf: Reset err when symbol name already exist in kprobe_multi_test https://git.kernel.org/bpf/bpf-next/c/c4d3b488a90b You are awesome, thank you!
diff --git a/tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c b/tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c index 22be0a9a5a0a..2173c4bb555e 100644 --- a/tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c +++ b/tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c @@ -381,8 +381,10 @@ static int get_syms(char ***symsp, size_t *cntp, bool kernel) continue; err = hashmap__add(map, name, 0); - if (err == -EEXIST) + if (err == -EEXIST) { + err = 0; continue; + } if (err) goto error;
When trying to add a name to the hashmap, an error code of EEXIST is returned and we continue as names are possibly duplicated in the sys file. If the last name in the file is a duplicate, we will continue to the next iteration of the while loop, and exit the loop with a value of err set to EEXIST and enter the error label with err set, which causes the test to fail when it should not. This change reset err to 0 before continue-ing into the next iteration, this way, if there is no more data to read from the file we iterate through, err will be set to 0. Behaviour prior to this change: ``` test_kprobe_multi_bench_attach:FAIL:get_syms unexpected error: -17 (errno 2) All error logs: test_kprobe_multi_bench_attach:FAIL:get_syms unexpected error: -17 (errno 2) Summary: 0/1 PASSED, 0 SKIPPED, 1 FAILED ``` After this change: ``` Summary: 1/2 PASSED, 0 SKIPPED, 0 FAILED ``` Signed-off-by: Manu Bretelle <chantr4@gmail.com> --- tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)