When running kunit_tool_test.py, the test_run_raw_output_invalid test
prints invalid usage text and error messages to stderr. This happens
because the test triggers kunit.main() with an invalid argument, causing
argparse to print the usage and exit.

This output is confusing to the user because it looks like a test failure
or usage error, even though the test passed successfully. Furthermore,
argparse displays 'usage: kunit_tool_test.py run ...', which is misleading
since the test script itself does not accept the 'run' command.

This patch mocks sys.stderr in the test to suppress this expected error
output, making the test execution output cleaner.

Changes in v2:
- Reworded commit message to keep lines less than 75 characters

Signed-off-by: Jinseok Kim <[email protected]>
---
 tools/testing/kunit/kunit_tool_test.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/testing/kunit/kunit_tool_test.py 
b/tools/testing/kunit/kunit_tool_test.py
index b5cc07c3d027..7a8ba8e4f1d4 100755
--- a/tools/testing/kunit/kunit_tool_test.py
+++ b/tools/testing/kunit/kunit_tool_test.py
@@ -690,8 +690,8 @@ class KUnitMainTest(unittest.TestCase):
        def test_run_raw_output_invalid(self):
                self.linux_source_mock.run_kernel = mock.Mock(return_value=[])
                with mock.patch('sys.stderr', new=io.StringIO()):
-            with self.assertRaises(SystemExit) as e:
-                kunit.main(['run', '--raw_output=invalid'])
+                       with self.assertRaises(SystemExit) as e:
+                               kunit.main(['run', '--raw_output=invalid'])
                self.assertNotEqual(e.exception.code, 0)

        def test_run_raw_output_does_not_take_positional_args(self):
--
2.43.0

Reply via email to