summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/compiler/glsl/tests/optimization_test.py23
-rw-r--r--src/compiler/glsl/tests/warnings_test.py23
2 files changed, 42 insertions, 4 deletions
diff --git a/src/compiler/glsl/tests/optimization_test.py b/src/compiler/glsl/tests/optimization_test.py
index 15ca3216f40..a02dcd31a05 100644
--- a/src/compiler/glsl/tests/optimization_test.py
+++ b/src/compiler/glsl/tests/optimization_test.py
@@ -24,6 +24,8 @@
from __future__ import print_function
import argparse
import difflib
+import errno
+import os
import subprocess
import sys
@@ -54,6 +56,14 @@ def compare(actual, expected):
return difflib.unified_diff(expected.splitlines(), actual.splitlines())
+def get_test_runner(runner):
+ """Wrap the test runner in the exe wrapper if necessary."""
+ wrapper = os.environ.get('MESON_EXE_WRAPPER', None)
+ if wrapper is None:
+ return [runner]
+ return [wrapper, runner]
+
+
def main():
"""Generate each test and report pass or fail."""
args = arg_parser()
@@ -61,12 +71,14 @@ def main():
total = 0
passes = 0
+ runner = get_test_runner(args.test_runner)
+
for gen in lower_jump_cases.CASES:
for name, opt, source, expected in gen():
total += 1
print('{}: '.format(name), end='')
proc = subprocess.Popen(
- [args.test_runner, 'optpass', '--quiet', '--input-ir', opt],
+ runner + ['optpass', '--quiet', '--input-ir', opt],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
stdin=subprocess.PIPE)
@@ -93,4 +105,11 @@ def main():
if __name__ == '__main__':
- main()
+ try:
+ main()
+ except OSError as e:
+ if e.errno == errno.ENOEXEC:
+ print('Skipping due to lack of exe_wrapper.', file=sys.stderr)
+ sys.exit(77)
+ else:
+ raise
diff --git a/src/compiler/glsl/tests/warnings_test.py b/src/compiler/glsl/tests/warnings_test.py
index 2c4fa5a0d5a..ed0774880d3 100644
--- a/src/compiler/glsl/tests/warnings_test.py
+++ b/src/compiler/glsl/tests/warnings_test.py
@@ -21,8 +21,10 @@
from __future__ import print_function
import argparse
+import errno
import os
import subprocess
+import sys
def arg_parser():
@@ -38,6 +40,14 @@ def arg_parser():
return parser.parse_args()
+def get_test_runner(runner):
+ """Wrap the test runner in the exe wrapper if necessary."""
+ wrapper = os.environ.get('MESON_EXE_WRAPPER', None)
+ if wrapper is None:
+ return [runner]
+ return [wrapper, runner]
+
+
def main():
args = arg_parser()
files = [f for f in os.listdir(args.test_directory) if f.endswith('.vert')]
@@ -47,6 +57,8 @@ def main():
print('Could not find any tests')
exit(1)
+ runner = get_test_runner(args.glsl_compiler)
+
print('====== Testing compilation output ======')
for file in files:
print('Testing {} ...'.format(file), end='')
@@ -56,7 +68,7 @@ def main():
expected = f.read().strip()
actual = subprocess.check_output(
- [args.glsl_compiler, '--just-log', '--version', '150', file]
+ runner + ['--just-log', '--version', '150', file]
).strip()
if actual == expected:
@@ -70,4 +82,11 @@ def main():
if __name__ == '__main__':
- main()
+ try:
+ main()
+ except OSError as e:
+ if e.errno == errno.ENOEXEC:
+ print('Skipping due to lack of exe_wrapper.', file=sys.stderr)
+ sys.exit(77)
+ else:
+ raise