diff options
author | Michel Dänzer <mdaenzer@redhat.com> | 2021-03-05 17:49:03 +0100 |
---|---|---|
committer | Dylan Baker <dylan.c.baker@intel.com> | 2021-03-19 13:51:02 -0700 |
commit | 8e300244d9fc87c7f8b512a57eaa46a614e0a555 (patch) | |
tree | 6c79d2bbcc8c0285787b9ad3ec7ed8c782478888 | |
parent | ce0fb7e0cb746ab7d2a1addb09dea96b11f1e344 (diff) | |
download | mesa-8e300244d9fc87c7f8b512a57eaa46a614e0a555.tar.gz |
intel/tools: Use subprocess.Popen to read output directly from a pipe
Instead of using tempfiles to communicate between child & parent
process. The latter sometimes resulted in hitting the meson timeout if
there was high filesystem pressure.
Fixes: ccaa5b034f48 "intel/tools: rewrite run-test.sh in python"
Reviewed-by: Dylan Baker <dylan.c.baker@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9528>
(cherry picked from commit 05bf12ccb6f290c701ef5b84a7c46e7818bf2c3e)
-rw-r--r-- | .pick_status.json | 2 | ||||
-rwxr-xr-x | src/intel/tools/tests/run-test.py | 11 |
2 files changed, 5 insertions, 8 deletions
diff --git a/.pick_status.json b/.pick_status.json index b493743ad33..1af45035f6e 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -427,7 +427,7 @@ "description": "intel/tools: Use subprocess.Popen to read output directly from a pipe", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "ccaa5b034f4845672e22c4bb990a8272a16da15e" }, diff --git a/src/intel/tools/tests/run-test.py b/src/intel/tools/tests/run-test.py index 1dfa305661d..221c991bdb9 100755 --- a/src/intel/tools/tests/run-test.py +++ b/src/intel/tools/tests/run-test.py @@ -7,7 +7,6 @@ import os import pathlib import subprocess import sys -import tempfile # The meson version handles windows paths better, but if it's not available # fall back to shlex @@ -37,18 +36,17 @@ success = True for asm_file in args.gen_folder.glob('*.asm'): expected_file = asm_file.stem + '.expected' expected_path = args.gen_folder / expected_file - out_path = tempfile.NamedTemporaryFile() try: command = i965_asm + [ '--type', 'hex', '--gen', args.gen_name, - '--output', out_path.name, asm_file ] - subprocess.run(command, - stdout=subprocess.DEVNULL, - stderr=subprocess.STDOUT) + with subprocess.Popen(command, + stdout=subprocess.PIPE, + stderr=subprocess.DEVNULL) as cmd: + lines_after = [line.decode('ascii') for line in cmd.stdout.readlines()] except OSError as e: if e.errno == errno.ENOEXEC: print('Skipping due to inability to run host binaries.', @@ -58,7 +56,6 @@ for asm_file in args.gen_folder.glob('*.asm'): with expected_path.open() as f: lines_before = f.readlines() - lines_after = [line.decode('ascii') for line in out_path] diff = ''.join(difflib.unified_diff(lines_before, lines_after, expected_file, asm_file.stem + '.out')) |