diff --git a/test_collections/matter/sdk_tests/support/yaml_tests/matter_yaml_runner.py b/test_collections/matter/sdk_tests/support/yaml_tests/matter_yaml_runner.py index ce95aaff..261dd5eb 100644 --- a/test_collections/matter/sdk_tests/support/yaml_tests/matter_yaml_runner.py +++ b/test_collections/matter/sdk_tests/support/yaml_tests/matter_yaml_runner.py @@ -15,10 +15,11 @@ # from __future__ import annotations +import asyncio import json import subprocess from pathlib import Path -from typing import Any, Optional, Union +from typing import Any, Generator, Optional, Union import loguru from matter.yamltests.definitions import SpecDefinitionsFromPaths @@ -117,6 +118,17 @@ async def setup( self.__chip_tool_log = await self.chip_server.start(server_type, use_paa_certs) + def read_chip_log(gen: Generator) -> None: + try: + with open(YAML_TESTS_PATH_BASE / "chip_output.log", "wb") as f: + for data in gen: + f.write(data) + except Exception as e: + self.logger.error(f"Error in chip-tool log reader thread: {e}") + + loop = asyncio.get_running_loop() + loop.run_in_executor(None, read_chip_log, self.__chip_tool_log) + async def stop(self) -> None: await self.stop_runner() await self.chip_server.stop()