glsl/tests: Make the tests skip on Android binary execution failures.
We don't have a suitable exe wrapper for running them, and the missing
linker is throwing return code 255 instead of an ENOEXEC. Catch it and
return skip from the tests.
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6700>
diff --git a/src/compiler/glsl/glcpp/tests/glcpp_test.py b/src/compiler/glsl/glcpp/tests/glcpp_test.py
index c11a7c2..457bf82 100644
--- a/src/compiler/glsl/glcpp/tests/glcpp_test.py
+++ b/src/compiler/glsl/glcpp/tests/glcpp_test.py
@@ -76,6 +76,10 @@
actual, _ = proc.communicate(f.read())
actual = actual.decode('utf-8')
+ if proc.returncode == 255:
+ print("Test returned general error, possibly missing linker")
+ sys.exit(77)
+
with open(expfile, 'r') as f:
expected = f.read()
diff --git a/src/compiler/glsl/tests/optimization_test.py b/src/compiler/glsl/tests/optimization_test.py
index a413370..0662728 100644
--- a/src/compiler/glsl/tests/optimization_test.py
+++ b/src/compiler/glsl/tests/optimization_test.py
@@ -92,6 +92,11 @@
out, err = proc.communicate(source.encode('utf-8'))
out = out.decode('utf-8')
err = err.decode('utf-8')
+
+ if proc.returncode == 255:
+ print("Test returned general error, possibly missing linker")
+ sys.exit(77)
+
if err:
print('FAIL')
print('Unexpected output on stderr: {}'.format(err),
diff --git a/src/compiler/glsl/tests/warnings_test.py b/src/compiler/glsl/tests/warnings_test.py
index e587bc9..61a1413 100644
--- a/src/compiler/glsl/tests/warnings_test.py
+++ b/src/compiler/glsl/tests/warnings_test.py
@@ -74,9 +74,17 @@
with open('{}.expected'.format(file), 'rb') as f:
expected = f.read().splitlines()
- actual = subprocess.check_output(
- runner + ['--just-log', '--version', '150', file]
- ).splitlines()
+ proc= subprocess.run(
+ runner + ['--just-log', '--version', '150', file],
+ stdout=subprocess.PIPE
+ )
+ if proc.returncode == 255:
+ print("Test returned general error, possibly missing linker")
+ sys.exit(77)
+ elif proc.returncode != 0:
+ print("Test returned error: {}, output:\n{}\n".format(proc.returncode, proc.stdout))
+
+ actual = proc.stdout.splitlines()
if actual == expected:
print('PASS')