summaryrefslogtreecommitdiffstats
path: root/src/compiler/glsl/tests/warnings_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/glsl/tests/warnings_test.py')
-rwxr-xr-xsrc/compiler/glsl/tests/warnings_test.py74
1 files changed, 74 insertions, 0 deletions
diff --git a/src/compiler/glsl/tests/warnings_test.py b/src/compiler/glsl/tests/warnings_test.py
new file mode 100755
index 00000000000..2e0f23180f3
--- /dev/null
+++ b/src/compiler/glsl/tests/warnings_test.py
@@ -0,0 +1,74 @@
+#!/usr/bin/env python
+# encoding=utf-8
+# Copyright © 2017 Intel Corporation
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+# SOFTWARE.
+
+from __future__ import print_function
+import argparse
+import os
+import subprocess
+
+
+def arg_parser():
+ parser = argparse.ArgumentParser()
+ parser.add_argument(
+ '--glsl-compiler',
+ required=True,
+ help='Path to the standalone glsl compiler')
+ parser.add_argument(
+ '--test-directory',
+ required=True,
+ help='Directory containing tests to run.')
+ return parser.parse_args()
+
+
+def main():
+ args = arg_parser()
+ files = [f for f in os.listdir(args.test_directory) if f.endswith('.vert')]
+ passed = 0
+
+ if not files:
+ print('Could not find any tests')
+ exit(1)
+
+ print('====== Testing compilation output ======')
+ for file in files:
+ print('Testing {} ...'.format(file), end='')
+ file = os.path.join(args.test_directory, file)
+
+ with open('{}.expected'.format(file), 'rb') as f:
+ expected = f.read().strip()
+
+ actual = subprocess.check_output(
+ [args.glsl_compiler, '--just-log', '--version', '150', file]
+ ).strip()
+
+ if actual == expected:
+ print('PASS')
+ passed += 1
+ else:
+ print('FAIL')
+
+ print('{}/{} tests returned correct results'.format(passed, len(files)))
+ exit(0 if passed == len(files) else 1)
+
+
+if __name__ == '__main__':
+ main()