Chromium Code Reviews| Index: gpu/gles2_conform_support/generate_gles2_conform_tests.py |
| diff --git a/gpu/gles2_conform_support/generate_gles2_conform_tests.py b/gpu/gles2_conform_support/generate_gles2_conform_tests.py |
| new file mode 100755 |
| index 0000000000000000000000000000000000000000..39b301aeb05a17f69da3c98004d12d64e4d13fe5 |
| --- /dev/null |
| +++ b/gpu/gles2_conform_support/generate_gles2_conform_tests.py |
| @@ -0,0 +1,63 @@ |
| +#!/usr/bin/env python |
| +# Copyright (c) 2012 The Chromium Authors. All rights reserved. |
|
Ken Russell (switch to Gerrit)
2013/12/05 00:40:15
May be worth updating copyright year.
Zhenyao Mo
2013/12/05 01:48:31
Done here and all other newly added files
|
| +# Use of this source code is governed by a BSD-style license that can be |
| +# found in the LICENSE file. |
| + |
| +"""code generator for OpenGL ES 2.0 conformance tests.""" |
| + |
| +import os |
| +import re |
| +import sys |
| + |
| +def ReadFileAsLines(filename): |
| + """Reads a file, removing blank lines and lines that start with #""" |
| + file = open(filename, "r") |
| + raw_lines = file.readlines() |
| + file.close() |
| + lines = [] |
| + for line in raw_lines: |
| + line = line.strip() |
| + if len(line) > 0 and not line.startswith("#"): |
| + lines.append(line) |
| + return lines |
| + |
| + |
| +def GenerateTests(file): |
| + """Generates gles2_conform_test_autogen.cc""" |
| + |
| + tests = ReadFileAsLines( |
| + "../../third_party/gles2_conform/GTF_ES/glsl/GTF/mustpass_es20.run") |
| + |
| + file.write(""" |
| +#include "gpu/gles2_conform_support/gles2_conform_test.h" |
| +#include "testing/gtest/include/gtest/gtest.h" |
| +""") |
| + |
| + for test in tests: |
| + file.write(""" |
| +TEST(GLES2ConformTest, %(name)s) { |
| + EXPECT_TRUE(RunGLES2ConformTest("%(path)s")); |
| +} |
| +""" % { |
| + "name": re.sub(r'[^A-Za-z0-9]', '_', test), |
| + "path": test, |
| + }) |
| + |
| + |
| +def main(argv): |
| + """This is the main function.""" |
| + |
| + if len(argv) >= 1: |
| + dir = argv[0] |
| + else: |
| + dir = '.' |
| + |
| + file = open(os.path.join(dir, 'gles2_conform_test_autogen.cc'), 'wb') |
| + GenerateTests(file) |
| + file.close() |
| + |
| + return 0 |
| + |
| + |
| +if __name__ == '__main__': |
| + sys.exit(main(sys.argv[1:])) |