Commit 38c957f0 authored by Jakub Kicinski's avatar Jakub Kicinski Committed by David S. Miller
Browse files

selftests: kselftest_harness: generate test name once



Since we added variant support generating full test case
name takes 4 string arguments. We're about to need it
in another two places. Stop the duplication and print
once into a temporary buffer.

Suggested-by: default avatarJakub Sitnicki <jakub@cloudflare.com>
Acked-by: default avatarKees Cook <keescook@chromium.org>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a7247079
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -56,6 +56,7 @@
#include <asm/types.h>
#include <ctype.h>
#include <errno.h>
#include <limits.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
@@ -1107,15 +1108,19 @@ void __run_test(struct __fixture_metadata *f,
		struct __fixture_variant_metadata *variant,
		struct __test_metadata *t)
{
	char test_name[LINE_MAX];

	/* reset test struct */
	t->passed = 1;
	t->skip = 0;
	t->trigger = 0;
	memset(t->results->reason, 0, sizeof(t->results->reason));

	ksft_print_msg(" RUN           %s%s%s.%s ...\n",
	snprintf(test_name, sizeof(test_name), "%s%s%s.%s",
		 f->name, variant->name[0] ? "." : "", variant->name, t->name);

	ksft_print_msg(" RUN           %s ...\n", test_name);

	/* Make sure output buffers are flushed before fork */
	fflush(stdout);
	fflush(stderr);
@@ -1135,15 +1140,14 @@ void __run_test(struct __fixture_metadata *f,
	} else {
		__wait_for_test(t);
	}
	ksft_print_msg("         %4s  %s%s%s.%s\n", t->passed ? "OK" : "FAIL",
	       f->name, variant->name[0] ? "." : "", variant->name, t->name);
	ksft_print_msg("         %4s  %s\n",
		       t->passed ? "OK" : "FAIL", test_name);

	if (t->skip)
		ksft_test_result_skip("%s\n", t->results->reason[0] ?
					t->results->reason : "unknown");
	else
		ksft_test_result(t->passed, "%s%s%s.%s\n",
			f->name, variant->name[0] ? "." : "", variant->name, t->name);
		ksft_test_result(t->passed, "%s\n", test_name);
}

static int test_harness_run(int argc, char **argv)