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')