]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
selftests/sched_ext: Improve runner error reporting for invalid arguments
authorCheng-Yang Chou <yphbchou0911@gmail.com>
Tue, 7 Apr 2026 23:57:15 +0000 (07:57 +0800)
committerTejun Heo <tj@kernel.org>
Thu, 9 Apr 2026 01:20:44 +0000 (15:20 -1000)
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: Cheng-Yang Chou <yphbchou0911@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
tools/testing/selftests/sched_ext/runner.c

index d84f71eee049963dea67b6d9f685cd7f934bd508..c264807caa91eb04e21c6fdf045a7cf3dd7e19ab 100644 (file)
@@ -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];