]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
selftests/bpf: make correct use of exit codes in bpf selftests
authorJesper Dangaard Brouer <brouer@redhat.com>
Tue, 13 Jun 2017 13:17:19 +0000 (15:17 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 13 Jun 2017 17:58:56 +0000 (13:58 -0400)
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 <brouer@redhat.com>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
tools/testing/selftests/bpf/test_align.c
tools/testing/selftests/bpf/test_progs.c
tools/testing/selftests/bpf/test_verifier.c

index 1426594fdf6bcfc1384f62f140ccc497b104077d..bccebd935907a894afbe835f6ea480131559b9ea 100644 (file)
@@ -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)
index fec13ab84fca43dba7a616e676c29563be7c3892..f10493d4c37cd7682e34ce72ca3263c32988b73d 100644 (file)
@@ -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;
 }
index cabb19b1e3718b289910fcc921c698f44f162768..4ee4708b0d6055f8201961bab4c1544a3f1b1bf7 100644 (file)
@@ -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)