Commit 3e2671fb authored by Andrii Nakryiko's avatar Andrii Nakryiko Committed by Daniel Borkmann
Browse files

selftests/bpf: Ensure consistent test failure output



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: default avatarAndrii Nakryiko <andriin@fb.com>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
Acked-by: default avatarMartin KaFai Lau <kafai@fb.com>
Link: https://lore.kernel.org/bpf/20200313172336.1879637-2-andriin@fb.com
parent 30b4cb36
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -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,7 +716,7 @@ int main(int argc, char **argv)
			cleanup_cgroup_environment();
	}
	stdio_restore();
	printf("Summary: %d/%d PASSED, %d SKIPPED, %d FAILED\n",
	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);
+4 −4
Original line number Diff line number Diff line
@@ -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;								\