Skip to content

Commit

Permalink
selftests/bpf: make correct use of exit codes in bpf selftests
Browse files Browse the repository at this point in the history
The selftests depend on using the shell exit code as a mean of
detecting the success or failure of test-binary executed.  The
appropiate output "[PASS]" or "[FAIL]" in generated by
tools/testing/selftests/lib.mk.

Notice that the exit code is masked with 255. Thus, be careful if
using the number of errors as the exit code, as 256 errors would be
seen as a success.

There are two standard defined exit(3) codes:
 /usr/include/stdlib.h
 #define EXIT_FAILURE    1       /* Failing exit status.  */
 #define EXIT_SUCCESS    0       /* Successful exit status.  */

Fix test_verifier.c to not use the negative value of variable
"results", but instead return EXIT_FAILURE.

Fix test_align.c and test_progs.c to actually use exit codes, before
they were always indicating success regardless of results.

Signed-off-by: Jesper Dangaard Brouer <[email protected]>
Acked-by: Daniel Borkmann <[email protected]>
Reviewed-by: Fengguang Wu <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
netoptimizer authored and davem330 committed Jun 13, 2017
1 parent fb34a36 commit efe5f9c
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 3 deletions.
2 changes: 1 addition & 1 deletion tools/testing/selftests/bpf/test_align.c
Original file line number Diff line number Diff line change
Expand Up @@ -428,7 +428,7 @@ static int do_test(unsigned int from, unsigned int to)
}
printf("Results: %d pass %d fail\n",
all_pass, all_fail);
return 0;
return all_fail ? EXIT_FAILURE : EXIT_SUCCESS;
}

int main(int argc, char **argv)
Expand Down
2 changes: 1 addition & 1 deletion tools/testing/selftests/bpf/test_progs.c
Original file line number Diff line number Diff line change
Expand Up @@ -497,5 +497,5 @@ int main(void)
test_bpf_obj_id();

printf("Summary: %d PASSED, %d FAILED\n", pass_cnt, error_cnt);
return 0;
return error_cnt ? EXIT_FAILURE : EXIT_SUCCESS;
}
2 changes: 1 addition & 1 deletion tools/testing/selftests/bpf/test_verifier.c
Original file line number Diff line number Diff line change
Expand Up @@ -5418,7 +5418,7 @@ static int do_test(bool unpriv, unsigned int from, unsigned int to)
}

printf("Summary: %d PASSED, %d FAILED\n", passes, errors);
return errors ? -errors : 0;
return errors ? EXIT_FAILURE : EXIT_SUCCESS;
}

int main(int argc, char **argv)
Expand Down

0 comments on commit efe5f9c

Please sign in to comment.