diff --git a/.gitlab/ci/host-test.yml b/.gitlab/ci/host-test.yml index 9bc91765b6..b2333592ca 100644 --- a/.gitlab/ci/host-test.yml +++ b/.gitlab/ci/host-test.yml @@ -210,6 +210,7 @@ test_idf_tools: when: on_failure paths: - tools/tools.new.json + - tools/test_idf_tools/test_python_env_logs.txt expire_in: 1 week script: # Remove Xtensa and ULP toolchains from the PATH, tests will expect a clean environment diff --git a/tools/test_idf_tools/test_idf_tools_python_env.py b/tools/test_idf_tools/test_idf_tools_python_env.py index 985ae140a0..3d2da27ef1 100644 --- a/tools/test_idf_tools/test_idf_tools_python_env.py +++ b/tools/test_idf_tools/test_idf_tools_python_env.py @@ -1,6 +1,7 @@ # SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Apache-2.0 +import inspect import os import shutil import subprocess @@ -34,7 +35,12 @@ class TestPythonInstall(unittest.TestCase): def run_idf_tools(self, extra_args): # type: (List[str]) -> str args = [sys.executable, '../idf_tools.py'] + extra_args ret = subprocess.run(args, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, timeout=120) - return ret.stdout.decode('utf-8', 'ignore') + decoded_output = ret.stdout.decode('utf-8', 'ignore') + with open(os.path.join(IDF_PATH, 'tools', 'test_idf_tools', 'test_python_env_logs.txt'), 'a+') as w: + # stack() returns list of callers frame records. [1] represent caller of this function + w.write('============================= ' + inspect.stack()[1].function + ' =============================\n') + w.write(decoded_output) + return decoded_output def test_default_arguments(self): # type: () -> None output = self.run_idf_tools(['check-python-dependencies'])