From: Daniel Latypov <dlatypov@google.com>
To: davidgow@google.com, brendanhiggins@google.com
Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org,
skhan@linuxfoundation.org, Daniel Latypov <dlatypov@google.com>
Subject: [PATCH v3 2/3] kunit: tool: fix minor typing issue with None status
Date: Thu, 7 Jan 2021 15:48:02 -0800 [thread overview]
Message-ID: <20210107234803.1096592-2-dlatypov@google.com> (raw)
In-Reply-To: <20210107234803.1096592-1-dlatypov@google.com>
The code to handle aggregating statuses didn't check that the status
actually got set to some non-None value.
Default the value to SUCCESS instead of adding a bunch of `is None`
checks.
This sorta follows the precedent in commit 3fc48259d525 ("kunit: Don't
fail test suites if one of them is empty").
Also slightly simplify the code and add type annotations.
Signed-off-by: Daniel Latypov <dlatypov@google.com>
Reviewed-by: David Gow <davidgow@google.com>
---
tools/testing/kunit/kunit_parser.py | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
diff --git a/tools/testing/kunit/kunit_parser.py b/tools/testing/kunit/kunit_parser.py
index 8b5eb9507765..2e4cb5206fa7 100644
--- a/tools/testing/kunit/kunit_parser.py
+++ b/tools/testing/kunit/kunit_parser.py
@@ -12,13 +12,13 @@ from collections import namedtuple
from datetime import datetime
from enum import Enum, auto
from functools import reduce
-from typing import Iterator, List, Optional, Tuple
+from typing import Iterable, Iterator, List, Optional, Tuple
TestResult = namedtuple('TestResult', ['status','suites','log'])
class TestSuite(object):
def __init__(self) -> None:
- self.status = None # type: Optional[TestStatus]
+ self.status = TestStatus.SUCCESS
self.name = ''
self.cases = [] # type: List[TestCase]
@@ -30,7 +30,7 @@ class TestSuite(object):
class TestCase(object):
def __init__(self) -> None:
- self.status = None # type: Optional[TestStatus]
+ self.status = TestStatus.SUCCESS
self.name = ''
self.log = [] # type: List[str]
@@ -224,12 +224,11 @@ def parse_ok_not_ok_test_suite(lines: List[str],
else:
return False
-def bubble_up_errors(to_status, status_container_list) -> TestStatus:
- status_list = map(to_status, status_container_list)
- return reduce(max_status, status_list, TestStatus.SUCCESS)
+def bubble_up_errors(statuses: Iterable[TestStatus]) -> TestStatus:
+ return reduce(max_status, statuses, TestStatus.SUCCESS)
def bubble_up_test_case_errors(test_suite: TestSuite) -> TestStatus:
- max_test_case_status = bubble_up_errors(lambda x: x.status, test_suite.cases)
+ max_test_case_status = bubble_up_errors(x.status for x in test_suite.cases)
return max_status(max_test_case_status, test_suite.status)
def parse_test_suite(lines: List[str], expected_suite_index: int) -> Optional[TestSuite]:
@@ -282,8 +281,8 @@ def parse_test_plan(lines: List[str]) -> Optional[int]:
else:
return None
-def bubble_up_suite_errors(test_suite_list: List[TestSuite]) -> TestStatus:
- return bubble_up_errors(lambda x: x.status, test_suite_list)
+def bubble_up_suite_errors(test_suites: Iterable[TestSuite]) -> TestStatus:
+ return bubble_up_errors(x.status for x in test_suites)
def parse_test_result(lines: List[str]) -> TestResult:
consume_non_diagnositic(lines)
--
2.29.2.729.g45daf8777d-goog
next prev parent reply other threads:[~2021-01-07 23:49 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-07 23:48 [PATCH v3 1/3] kunit: tool: surface and address more typing issues Daniel Latypov
2021-01-07 23:48 ` Daniel Latypov [this message]
2021-01-11 21:19 ` [PATCH v3 2/3] kunit: tool: fix minor typing issue with None status Brendan Higgins
2021-01-07 23:48 ` [PATCH v3 3/3] kunit: tool: move kunitconfig parsing into __init__, make it optional Daniel Latypov
2021-01-11 21:24 ` Brendan Higgins
2021-01-11 21:15 ` [PATCH v3 1/3] kunit: tool: surface and address more typing issues Brendan Higgins
2021-01-15 0:32 ` Brendan Higgins
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210107234803.1096592-2-dlatypov@google.com \
--to=dlatypov@google.com \
--cc=brendanhiggins@google.com \
--cc=davidgow@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=skhan@linuxfoundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.