selftests/bpf: Ensure consistent test failure output
authorAndrii Nakryiko <andriin@fb.com>
Fri, 13 Mar 2020 17:23:33 +0000 (10:23 -0700)
committerDaniel Borkmann <daniel@iogearbox.net>
Fri, 13 Mar 2020 22:30:53 +0000 (23:30 +0100)
printf() doesn't seem to honor using overwritten stdout/stderr (as part of
stdio hijacking), so ensure all "standard" invocations of printf() do
fprintf(stdout, ...) instead.

Signed-off-by: Andrii Nakryiko <andriin@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Martin KaFai Lau <kafai@fb.com>
Link: https://lore.kernel.org/bpf/20200313172336.1879637-2-andriin@fb.com
tools/testing/selftests/bpf/test_progs.c
tools/testing/selftests/bpf/test_progs.h

index b6201dd..f85a065 100644 (file)
@@ -216,7 +216,7 @@ int bpf_find_map(const char *test, struct bpf_object *obj, const char *name)
 
        map = bpf_object__find_map_by_name(obj, name);
        if (!map) {
-               printf("%s:FAIL:map '%s' not found\n", test, name);
+               fprintf(stdout, "%s:FAIL:map '%s' not found\n", test, name);
                test__fail();
                return -1;
        }
@@ -387,7 +387,7 @@ static int libbpf_print_fn(enum libbpf_print_level level,
 {
        if (env.verbosity < VERBOSE_VERY && level == LIBBPF_DEBUG)
                return 0;
-       vprintf(format, args);
+       vfprintf(stdout, format, args);
        return 0;
 }
 
@@ -633,7 +633,7 @@ int cd_flavor_subdir(const char *exec_name)
        if (!flavor)
                return 0;
        flavor++;
-       printf("Switching to flavor '%s' subdirectory...\n", flavor);
+       fprintf(stdout, "Switching to flavor '%s' subdirectory...\n", flavor);
        return chdir(flavor);
 }
 
@@ -716,8 +716,8 @@ int main(int argc, char **argv)
                        cleanup_cgroup_environment();
        }
        stdio_restore();
-       printf("Summary: %d/%d PASSED, %d SKIPPED, %d FAILED\n",
-              env.succ_cnt, env.sub_succ_cnt, env.skip_cnt, env.fail_cnt);
+       fprintf(stdout, "Summary: %d/%d PASSED, %d SKIPPED, %d FAILED\n",
+               env.succ_cnt, env.sub_succ_cnt, env.skip_cnt, env.fail_cnt);
 
        free(env.test_selector.blacklist.strs);
        free(env.test_selector.whitelist.strs);
index bcfa9ef..fd85fa6 100644 (file)
@@ -109,10 +109,10 @@ extern struct ipv6_packet pkt_v6;
        int __save_errno = errno;                                       \
        if (__ret) {                                                    \
                test__fail();                                           \
-               printf("%s:FAIL:%s ", __func__, tag);                   \
-               printf(format);                                         \
+               fprintf(stdout, "%s:FAIL:%s ", __func__, tag);          \
+               fprintf(stdout, ##format);                              \
        } else {                                                        \
-               printf("%s:PASS:%s %d nsec\n",                          \
+               fprintf(stdout, "%s:PASS:%s %d nsec\n",                 \
                       __func__, tag, duration);                        \
        }                                                               \
        errno = __save_errno;                                           \
@@ -124,7 +124,7 @@ extern struct ipv6_packet pkt_v6;
        int __save_errno = errno;                                       \
        if (__ret) {                                                    \
                test__fail();                                           \
-               printf("%s:FAIL:%d\n", __func__, __LINE__);             \
+               fprintf(stdout, "%s:FAIL:%d\n", __func__, __LINE__);    \
        }                                                               \
        errno = __save_errno;                                           \
        __ret;                                                          \