diff --git a/run_project_tests.py b/run_project_tests.py index 9bba6321e..1abc19971 100755 --- a/run_project_tests.py +++ b/run_project_tests.py @@ -283,14 +283,19 @@ def run_test_inprocess(testdir): sys.stderr = mystderr = StringIO() old_cwd = os.getcwd() os.chdir(testdir) + test_log_fname = 'meson-logs/testlog.txt' try: returncode_test = mesontest.run(['--no-rebuild']) + if os.path.exists(test_log_fname): + test_log = open(test_log_fname, errors='ignore').read() + else: + test_log = '' returncode_benchmark = mesontest.run(['--no-rebuild', '--benchmark', '--logbase', 'benchmarklog']) finally: sys.stdout = old_stdout sys.stderr = old_stderr os.chdir(old_cwd) - return max(returncode_test, returncode_benchmark), mystdout.getvalue(), mystderr.getvalue() + return max(returncode_test, returncode_benchmark), mystdout.getvalue(), mystderr.getvalue(), test_log def parse_test_args(testdir): args = [] @@ -357,10 +362,11 @@ def _run_test(testdir, test_build_dir, install_dir, extra_args, compiler, backen os.utime(os.path.join(testdir, 'meson.build')) test_start = time.time() # Test in-process - (returncode, tstdo, tstde) = run_test_inprocess(test_build_dir) + (returncode, tstdo, tstde, test_log) = run_test_inprocess(test_build_dir) test_time = time.time() - test_start stdo += tstdo stde += tstde + mesonlog += test_log if should_fail == 'test': if returncode != 0: return TestResult('', BuildStep.test, stdo, stde, mesonlog, gen_time)