summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.pick_status.json2
-rw-r--r--src/compiler/glsl/glcpp/tests/glcpp_test.py45
-rw-r--r--src/compiler/glsl/tests/optimization_test.py16
-rw-r--r--src/compiler/glsl/tests/warnings_test.py16
4 files changed, 56 insertions, 23 deletions
diff --git a/.pick_status.json b/.pick_status.json
index 2edb04414f6..cf3a2787318 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -67,7 +67,7 @@
"description": "tests: Make tests aware of meson test wrapper",
"nominated": true,
"nomination_type": 0,
- "resolution": 0,
+ "resolution": 1,
"master_sha": null,
"because_sha": null
},
diff --git a/src/compiler/glsl/glcpp/tests/glcpp_test.py b/src/compiler/glsl/glcpp/tests/glcpp_test.py
index b024300522f..c11a7c2105b 100644
--- a/src/compiler/glsl/glcpp/tests/glcpp_test.py
+++ b/src/compiler/glsl/glcpp/tests/glcpp_test.py
@@ -24,12 +24,20 @@
from __future__ import print_function
import argparse
import difflib
+import errno
import io
import os
import subprocess
import sys
import tempfile
+# The meson version handles windows paths better, but if it's not available
+# fall back to shlex
+try:
+ from meson.mesonlib import split_args
+except ImportError:
+ from shlex import split as split_args
+
def arg_parser():
parser = argparse.ArgumentParser()
@@ -61,7 +69,7 @@ def test_output(glcpp, filename, expfile, nl_format='\n'):
with open(filename, 'rb') as f:
proc = subprocess.Popen(
- [glcpp] + extra_args,
+ glcpp + extra_args,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
stdin=subprocess.PIPE)
@@ -85,7 +93,7 @@ def _valgrind(glcpp, filename):
os.close(fd)
with open(filename, 'rb') as f:
proc = subprocess.Popen(
- ['valgrind', '--error-exitcode=31', '--log-file', tmpfile, glcpp] + extra_args,
+ ['valgrind', '--error-exitcode=31', '--log-file', tmpfile] + glcpp + extra_args,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
stdin=subprocess.PIPE)
@@ -216,17 +224,30 @@ def test_valgrind(args):
def main():
args = arg_parser()
+ wrapper = os.environ.get('MESON_EXE_WRAPPER')
+ if wrapper is not None:
+ args.glcpp = split_args(wrapper) + [args.glcpp]
+ else:
+ args.glcpp = [args.glcpp]
+
success = True
- if args.unix:
- success = success and test_unix(args)
- if args.windows:
- success = success and test_windows(args)
- if args.oldmac:
- success = success and test_oldmac(args)
- if args.bizarro:
- success = success and test_bizarro(args)
- if args.valgrind:
- success = success and test_valgrind(args)
+ try:
+ if args.unix:
+ success = success and test_unix(args)
+ if args.windows:
+ success = success and test_windows(args)
+ if args.oldmac:
+ success = success and test_oldmac(args)
+ if args.bizarro:
+ success = success and test_bizarro(args)
+ if args.valgrind:
+ success = success and test_valgrind(args)
+ except OSError as e:
+ if e.errno == errno.ENOEXEC:
+ print('Skipping due to inability to run host binaries.',
+ file=sys.stderr)
+ sys.exit(77)
+ raise
exit(0 if success else 1)
diff --git a/src/compiler/glsl/tests/optimization_test.py b/src/compiler/glsl/tests/optimization_test.py
index a02dcd31a05..a413370a5e7 100644
--- a/src/compiler/glsl/tests/optimization_test.py
+++ b/src/compiler/glsl/tests/optimization_test.py
@@ -32,6 +32,13 @@ import sys
import sexps
import lower_jump_cases
+# The meson version handles windows paths better, but if it's not available
+# fall back to shlex
+try:
+ from meson.mesonlib import split_args
+except ImportError:
+ from shlex import split as split_args
+
def arg_parser():
parser = argparse.ArgumentParser()
@@ -58,10 +65,10 @@ def compare(actual, expected):
def get_test_runner(runner):
"""Wrap the test runner in the exe wrapper if necessary."""
- wrapper = os.environ.get('MESON_EXE_WRAPPER', None)
+ wrapper = os.environ.get('MESON_EXE_WRAPPER', None)
if wrapper is None:
return [runner]
- return [wrapper, runner]
+ return split_args(wrapper) + [runner]
def main():
@@ -109,7 +116,6 @@ if __name__ == '__main__':
main()
except OSError as e:
if e.errno == errno.ENOEXEC:
- print('Skipping due to lack of exe_wrapper.', file=sys.stderr)
+ print('Skipping due to inability to run host binaries', file=sys.stderr)
sys.exit(77)
- else:
- raise
+ raise
diff --git a/src/compiler/glsl/tests/warnings_test.py b/src/compiler/glsl/tests/warnings_test.py
index 6cd3fbf294f..e587bc9ba2d 100644
--- a/src/compiler/glsl/tests/warnings_test.py
+++ b/src/compiler/glsl/tests/warnings_test.py
@@ -26,6 +26,13 @@ import os
import subprocess
import sys
+# The meson version handles windows paths better, but if it's not available
+# fall back to shlex
+try:
+ from meson.mesonlib import split_args
+except ImportError:
+ from shlex import split as split_args
+
def arg_parser():
parser = argparse.ArgumentParser()
@@ -42,10 +49,10 @@ def arg_parser():
def get_test_runner(runner):
"""Wrap the test runner in the exe wrapper if necessary."""
- wrapper = os.environ.get('MESON_EXE_WRAPPER', None)
+ wrapper = os.environ.get('MESON_EXE_WRAPPER', None)
if wrapper is None:
return [runner]
- return [wrapper, runner]
+ return split_args(wrapper) + [runner]
def main():
@@ -86,7 +93,6 @@ if __name__ == '__main__':
main()
except OSError as e:
if e.errno == errno.ENOEXEC:
- print('Skipping due to lack of exe_wrapper.', file=sys.stderr)
+ print('Skipping due to inability to run host binaries', file=sys.stderr)
sys.exit(77)
- else:
- raise
+ raise