Messages in this thread Patch in this message | | | Subject | [PATCH bpf-next V2 2/2] selftests/bpf: test_progs avoid minus shell exit codes | From | Jesper Dangaard Brouer <> | Date | Mon, 06 Jul 2020 19:00:16 +0200 |
| |
There are a number of places in test_progs that use minus-1 as the argument to exit(). This improper use as a process exit status is masked to be a number between 0 and 255 as defined in man exit(3).
This patch use two different positive exit codes instead, to allow a shell script to tell the two error cases apart.
Fixes: fd27b1835e70 ("selftests/bpf: Reset process and thread affinity after each test/sub-test") Fixes: 811d7e375d08 ("bpf: selftests: Restore netns after each test") Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com> --- tools/testing/selftests/bpf/test_progs.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/tools/testing/selftests/bpf/test_progs.c b/tools/testing/selftests/bpf/test_progs.c index e8f7cd5dbae4..50803b080593 100644 --- a/tools/testing/selftests/bpf/test_progs.c +++ b/tools/testing/selftests/bpf/test_progs.c @@ -12,7 +12,9 @@ #include <string.h> #include <execinfo.h> /* backtrace */ -#define EXIT_NO_TEST 2 +#define EXIT_NO_TEST 2 +#define EXIT_ERR_NETNS 3 +#define EXIT_ERR_RESET_AFFINITY 4 /* defined in test_progs.h */ struct test_env env = {}; @@ -113,13 +115,13 @@ static void reset_affinity() { if (err < 0) { stdio_restore(); fprintf(stderr, "Failed to reset process affinity: %d!\n", err); - exit(-1); + exit(EXIT_ERR_RESET_AFFINITY); } err = pthread_setaffinity_np(pthread_self(), sizeof(cpuset), &cpuset); if (err < 0) { stdio_restore(); fprintf(stderr, "Failed to reset thread affinity: %d!\n", err); - exit(-1); + exit(EXIT_ERR_RESET_AFFINITY); } } @@ -128,7 +130,7 @@ static void save_netns(void) env.saved_netns_fd = open("/proc/self/ns/net", O_RDONLY); if (env.saved_netns_fd == -1) { perror("open(/proc/self/ns/net)"); - exit(-1); + exit(EXIT_ERR_NETNS); } } @@ -137,7 +139,7 @@ static void restore_netns(void) if (setns(env.saved_netns_fd, CLONE_NEWNET) == -1) { stdio_restore(); perror("setns(CLONE_NEWNS)"); - exit(-1); + exit(EXIT_ERR_NETNS); } }
| |