Commit ff1befcb authored by Cheng-Yang Chou's avatar Cheng-Yang Chou Committed by Tejun Heo
Browse files

selftests/sched_ext: Improve runner error reporting for invalid arguments



Report an error for './runner foo' (positional arg instead of -t) and
for './runner -t foo' when the filter matches no tests. Previously both
cases produced no error output.

Pre-scan the test list before the main loop so the error is reported
immediately, avoiding spurious SKIP output from '-s' when no tests
match.

Signed-off-by: default avatarCheng-Yang Chou <yphbchou0911@gmail.com>
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
parent 39375419
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -164,6 +164,26 @@ int main(int argc, char **argv)
		}
	}

	if (optind < argc) {
		fprintf(stderr, "Unexpected argument '%s'. Use -t to filter tests.\n",
			argv[optind]);
		return 1;
	}

	if (filter) {
		for (i = 0; i < __scx_num_tests; i++) {
			if (!should_skip_test(&__scx_tests[i], filter))
				break;
		}
		if (i == __scx_num_tests) {
			fprintf(stderr, "No tests matched filter '%s'\n", filter);
			fprintf(stderr, "Available tests (use -l to list):\n");
			for (i = 0; i < __scx_num_tests; i++)
				fprintf(stderr, "  %s\n", __scx_tests[i].name);
			return 1;
		}
	}

	for (i = 0; i < __scx_num_tests; i++) {
		enum scx_test_status status;
		struct scx_test *test = &__scx_tests[i];