]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 18 Sep 2021 11:42:13 +0000 (13:42 +0200)
[ Upstream commit f667d1d66760fcb27aee6c9964eefde39a464afe ]

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
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/testing/selftests/bpf/test_progs.c

index 6396932b97e2954df8680e7636573e5377c6f1cf..9ed13187136c12da30d5ce5c1733150ef03ba013 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;
 }
@@ -783,17 +783,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();