test/py: ensure a log section exists for skipped tests
In pytest 3, runtestprotocol() may not call pytest_runtest_setup() if the test is skipped. That call is required to create a section for the test in the log file. If this is skipped, the call to log.end_section() at the tail of pytest_runtest_protocol() will throw an exception. This patch ensures that a log section always exists, both to avoid the exception and to ensure that a consistently structured log file is always created. Cc: Stefan Brüns <stefan.bruens@rwth-aachen.de> Reported-by: Stefan Brüns <stefan.bruens@rwth-aachen.de> Signed-off-by: Stephen Warren <swarren@nvidia.com> Tested-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
parent
3431b392ad
commit
b0a928a15d
@ -431,6 +431,9 @@ def setup_buildconfigspec(item):
|
||||
if not ubconfig.buildconfig.get('config_' + option.lower(), None):
|
||||
pytest.skip('.config feature not enabled')
|
||||
|
||||
def start_test_section(item):
|
||||
anchors[item.name] = log.start_section(item.name)
|
||||
|
||||
def pytest_runtest_setup(item):
|
||||
"""pytest hook: Configure (set up) a test item.
|
||||
|
||||
@ -444,7 +447,7 @@ def pytest_runtest_setup(item):
|
||||
Nothing.
|
||||
"""
|
||||
|
||||
anchors[item.name] = log.start_section(item.name)
|
||||
start_test_section(item)
|
||||
setup_boardspec(item)
|
||||
setup_buildconfigspec(item)
|
||||
|
||||
@ -464,6 +467,14 @@ def pytest_runtest_protocol(item, nextitem):
|
||||
|
||||
reports = runtestprotocol(item, nextitem=nextitem)
|
||||
|
||||
# In pytest 3, runtestprotocol() may not call pytest_runtest_setup() if
|
||||
# the test is skipped. That call is required to create the test's section
|
||||
# in the log file. The call to log.end_section() requires that the log
|
||||
# contain a section for this test. Create a section for the test if it
|
||||
# doesn't already exist.
|
||||
if not item.name in anchors:
|
||||
start_test_section(item)
|
||||
|
||||
failure_cleanup = False
|
||||
test_list = tests_passed
|
||||
msg = 'OK'
|
||||
|
Loading…
Reference in New Issue
Block a user