lkml.org 
[lkml]   [2022]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.16 0282/1039] kunit: tool: fix --json output for skipped tests
    Date
    From: Daniel Latypov <dlatypov@google.com>

    [ Upstream commit 9a6bb30a8830bb868b09629f0b9ad5d2b5fbb2f9 ]

    Currently, KUnit will report SKIPPED tests as having failed if one uses
    --json.

    Add the missing if statement to set the appropriate status ("SKIP").
    See https://api.kernelci.org/schema-test-case.html:
    "status": {
    "type": "string",
    "description": "The status of the execution of this test case",
    "enum": ["PASS", "FAIL", "SKIP", "ERROR"],
    "default": "PASS"
    },
    with this, we now can properly produce all four of the statuses.

    Fixes: 5acaf6031f53 ("kunit: tool: Support skipped tests in kunit_tool")
    Signed-off-by: Daniel Latypov <dlatypov@google.com>
    Reviewed-by: David Gow <davidgow@google.com>
    Reviewed-by: Brendan Higgins <brendanhiggins@google.com>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    tools/testing/kunit/kunit_json.py | 2 ++
    tools/testing/kunit/kunit_tool_test.py | 6 ++++++
    2 files changed, 8 insertions(+)

    diff --git a/tools/testing/kunit/kunit_json.py b/tools/testing/kunit/kunit_json.py
    index 746bec72b9ac2..b6e66c5d64d14 100644
    --- a/tools/testing/kunit/kunit_json.py
    +++ b/tools/testing/kunit/kunit_json.py
    @@ -30,6 +30,8 @@ def _get_group_json(test: Test, def_config: str,
    test_case = {"name": subtest.name, "status": "FAIL"}
    if subtest.status == TestStatus.SUCCESS:
    test_case["status"] = "PASS"
    + elif subtest.status == TestStatus.SKIPPED:
    + test_case["status"] = "SKIP"
    elif subtest.status == TestStatus.TEST_CRASHED:
    test_case["status"] = "ERROR"
    test_cases.append(test_case)
    diff --git a/tools/testing/kunit/kunit_tool_test.py b/tools/testing/kunit/kunit_tool_test.py
    index 9c41267314573..34cb0a12ba180 100755
    --- a/tools/testing/kunit/kunit_tool_test.py
    +++ b/tools/testing/kunit/kunit_tool_test.py
    @@ -383,6 +383,12 @@ class KUnitJsonTest(unittest.TestCase):
    {'name': 'example_simple_test', 'status': 'ERROR'},
    result["sub_groups"][1]["test_cases"][0])

    + def test_skipped_test_json(self):
    + result = self._json_for('test_skip_tests.log')
    + self.assertEqual(
    + {'name': 'example_skip_test', 'status': 'SKIP'},
    + result["sub_groups"][1]["test_cases"][1])
    +
    def test_no_tests_json(self):
    result = self._json_for('test_is_test_passed-no_tests_run_with_header.log')
    self.assertEqual(0, len(result['sub_groups']))
    --
    2.34.1


    \
     
     \ /
      Last update: 2022-01-25 04:09    [W:2.160 / U:1.068 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site