[matter_yamltests] Do not include the pre/post processing to the test timeout (#26680)
diff --git a/scripts/py_matter_yamltests/matter_yamltests/runner.py b/scripts/py_matter_yamltests/matter_yamltests/runner.py
index f87f94d..6f201c8 100644
--- a/scripts/py_matter_yamltests/matter_yamltests/runner.py
+++ b/scripts/py_matter_yamltests/matter_yamltests/runner.py
@@ -144,8 +144,8 @@
continue
loop = asyncio.get_event_loop()
- result = loop.run_until_complete(asyncio.wait_for(
- self._run(parser, runner_config), parser.timeout))
+ result = loop.run_until_complete(
+ self._run_with_timeout(parser, runner_config))
if isinstance(result, Exception):
raise (result)
elif not result:
@@ -157,11 +157,20 @@
return parser_builder.done
- async def _run(self, parser: TestParser, config: TestRunnerConfig):
+ async def _run_with_timeout(self, parser: TestParser, config: TestRunnerConfig):
status = True
try:
await self.start()
+ status = await asyncio.wait_for(self._run(parser, config), parser.timeout)
+ except Exception as exception:
+ status = exception
+ finally:
+ await self.stop()
+ return status
+ async def _run(self, parser: TestParser, config: TestRunnerConfig):
+ status = True
+ try:
hooks = config.hooks
hooks.test_start(parser.filename, parser.name, parser.tests.count)
@@ -214,5 +223,4 @@
except Exception as exception:
status = exception
finally:
- await self.stop()
return status