]> git.ipfire.org Git - people/ms/linux.git/commitdiff
selftests/bpf: Correctly display subtest skip status
authorYucong Sun <fallentree@fb.com>
Tue, 17 Aug 2021 04:47:30 +0000 (21:47 -0700)
committerAndrii Nakryiko <andrii@kernel.org>
Tue, 17 Aug 2021 18:16:53 +0000 (11:16 -0700)
In skip_account(), test->skip_cnt is set to 0 at the end, this makes next print
statement never display SKIP status for the subtest. This patch moves the
accounting logic after the print statement, fixing the issue.

This patch also added SKIP status display for normal tests.

Signed-off-by: Yucong Sun <fallentree@fb.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20210817044732.3263066-3-fallentree@fb.com
tools/testing/selftests/bpf/test_progs.c

index 532af3353edf2369763df964f4383bdf83a5fc4d..f0fbead408838460a69ad867d1a94fedba92d5ba 100644 (file)
@@ -148,18 +148,18 @@ void test__end_subtest()
        struct prog_test_def *test = env.test;
        int sub_error_cnt = test->error_cnt - test->old_error_cnt;
 
-       if (sub_error_cnt)
-               env.fail_cnt++;
-       else if (test->skip_cnt == 0)
-               env.sub_succ_cnt++;
-       skip_account();
-
        dump_test_log(test, sub_error_cnt);
 
        fprintf(env.stdout, "#%d/%d %s:%s\n",
               test->test_num, test->subtest_num, test->subtest_name,
               sub_error_cnt ? "FAIL" : (test->skip_cnt ? "SKIP" : "OK"));
 
+       if (sub_error_cnt)
+               env.fail_cnt++;
+       else if (test->skip_cnt == 0)
+               env.sub_succ_cnt++;
+       skip_account();
+
        free(test->subtest_name);
        test->subtest_name = NULL;
 }
@@ -786,17 +786,18 @@ int main(int argc, char **argv)
                        test__end_subtest();
 
                test->tested = true;
-               if (test->error_cnt)
-                       env.fail_cnt++;
-               else
-                       env.succ_cnt++;
-               skip_account();
 
                dump_test_log(test, test->error_cnt);
 
                fprintf(env.stdout, "#%d %s:%s\n",
                        test->test_num, test->test_name,
-                       test->error_cnt ? "FAIL" : "OK");
+                       test->error_cnt ? "FAIL" : (test->skip_cnt ? "SKIP" : "OK"));
+
+               if (test->error_cnt)
+                       env.fail_cnt++;
+               else
+                       env.succ_cnt++;
+               skip_account();
 
                reset_affinity();
                restore_netns();