Re: [PATCH] kunit: tool: tweak error message when no KTAP found
From: David Gow
Date: Sat Nov 19 2022 - 03:42:48 EST
On Fri, Nov 11, 2022 at 11:19 AM Daniel Latypov <dlatypov@xxxxxxxxxx> wrote:
>
> We currently tell people we "couldn't find any KTAP output" with no
> indication as to what this might mean.
>
> After this patch, we get:
>
> $ ./tools/testing/kunit/kunit.py parse /dev/null
> ============================================================
> [ERROR] Test: <missing>: Could not find any KTAP output. Did any KUnit tests run?
> ============================================================
> Testing complete. Ran 0 tests: errors: 1
>
> Note: we could try and generate a more verbose message like
> > Please check .kunit/test.log to see the raw kernel output.
> or the like, but we'd need to know what the build dir was to know where
> test.log actually lives.
>
> This patch tries to make a more minimal improvement.
>
> Signed-off-by: Daniel Latypov <dlatypov@xxxxxxxxxx>
> ---
I agree that this is clearer.
One minor nitpick is that we still have the (useless) 'Test:
<missing>:' prefix, which also makes the error much longer than the
'===' dividers. I think the error would be more aesthetically pleasing
if we could fix that.
That's a very minor point, though, so regardless:
Reviewed-by: David Gow <davidgow@xxxxxxxxxx>
Cheers,
-- David
> tools/testing/kunit/kunit_parser.py | 2 +-
> tools/testing/kunit/kunit_tool_test.py | 4 ++--
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/tools/testing/kunit/kunit_parser.py b/tools/testing/kunit/kunit_parser.py
> index a56c75a973b5..d0ed5dd5cfc4 100644
> --- a/tools/testing/kunit/kunit_parser.py
> +++ b/tools/testing/kunit/kunit_parser.py
> @@ -782,7 +782,7 @@ def parse_run_tests(kernel_output: Iterable[str]) -> Test:
> test = Test()
> if not lines:
> test.name = '<missing>'
> - test.add_error('could not find any KTAP output!')
> + test.add_error('Could not find any KTAP output. Did any KUnit tests run?')
> test.status = TestStatus.FAILURE_TO_PARSE_TESTS
> else:
> test = parse_test(lines, 0, [])
> diff --git a/tools/testing/kunit/kunit_tool_test.py b/tools/testing/kunit/kunit_tool_test.py
> index 90c65b072be9..84a08cf07242 100755
> --- a/tools/testing/kunit/kunit_tool_test.py
> +++ b/tools/testing/kunit/kunit_tool_test.py
> @@ -207,7 +207,7 @@ class KUnitParserTest(unittest.TestCase):
> with open(crash_log) as file:
> result = kunit_parser.parse_run_tests(
> kunit_parser.extract_tap_lines(file.readlines()))
> - print_mock.assert_any_call(StrContains('could not find any KTAP output!'))
> + print_mock.assert_any_call(StrContains('Could not find any KTAP output.'))
> print_mock.stop()
> self.assertEqual(0, len(result.subtests))
> self.assertEqual(result.counts.errors, 1)
> @@ -588,7 +588,7 @@ class KUnitMainTest(unittest.TestCase):
> self.assertEqual(e.exception.code, 1)
> self.assertEqual(self.linux_source_mock.build_reconfig.call_count, 1)
> self.assertEqual(self.linux_source_mock.run_kernel.call_count, 1)
> - self.print_mock.assert_any_call(StrContains('could not find any KTAP output!'))
> + self.print_mock.assert_any_call(StrContains('Could not find any KTAP output.'))
>
> def test_exec_no_tests(self):
> self.linux_source_mock.run_kernel = mock.Mock(return_value=['TAP version 14', '1..0'])
>
> base-commit: 870f63b7cd78d0055902d839a60408f7428b4e84
> --
> 2.38.1.431.g37b22c650d-goog
>
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature