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>
This commit is contained in:
Eric Anholt 2020-09-12 08:53:52 -07:00 committed by Marge Bot
parent f51ce21e4e
commit 4722491124
3 changed files with 20 additions and 3 deletions

View File

@ -76,6 +76,10 @@ def test_output(glcpp, filename, expfile, nl_format='\n'):
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()

View File

@ -92,6 +92,11 @@ def main():
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),

View File

@ -74,9 +74,17 @@ def main():
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')