kunit: fix bug in the order of lines in debugfs logs
[platform/kernel/linux-starfive.git] / lib / kunit / debugfs.c
index de0ee2e..b08bb1f 100644 (file)
@@ -55,14 +55,24 @@ static int debugfs_print_results(struct seq_file *seq, void *v)
        enum kunit_status success = kunit_suite_has_succeeded(suite);
        struct kunit_case *test_case;
 
-       if (!suite || !suite->log)
+       if (!suite)
                return 0;
 
-       seq_printf(seq, "%s", suite->log);
+       /* Print KTAP header so the debugfs log can be parsed as valid KTAP. */
+       seq_puts(seq, "KTAP version 1\n");
+       seq_puts(seq, "1..1\n");
+
+       /* Print suite header because it is not stored in the test logs. */
+       seq_puts(seq, KUNIT_SUBTEST_INDENT "KTAP version 1\n");
+       seq_printf(seq, KUNIT_SUBTEST_INDENT "# Subtest: %s\n", suite->name);
+       seq_printf(seq, KUNIT_SUBTEST_INDENT "1..%zd\n", kunit_suite_num_test_cases(suite));
 
        kunit_suite_for_each_test_case(suite, test_case)
                debugfs_print_result(seq, suite, test_case);
 
+       if (suite->log)
+               seq_printf(seq, "%s", suite->log);
+
        seq_printf(seq, "%s %d %s\n",
                   kunit_status_to_ok_not_ok(success), 1, suite->name);
        return 0;