summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichel Dänzer <mdaenzer@redhat.com>2021-03-05 17:49:03 +0100
committerDylan Baker <dylan.c.baker@intel.com>2021-03-19 13:51:02 -0700
commit8e300244d9fc87c7f8b512a57eaa46a614e0a555 (patch)
tree6c79d2bbcc8c0285787b9ad3ec7ed8c782478888
parentce0fb7e0cb746ab7d2a1addb09dea96b11f1e344 (diff)
downloadmesa-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.json2
-rwxr-xr-xsrc/intel/tools/tests/run-test.py11
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'))