| 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..df2980a11a4303dde37b79675312768cde74af2a
|
| --- /dev/null
|
| +++ b/gpu/gles2_conform_support/generate_gles2_conform_tests.py
|
| @@ -0,0 +1,63 @@
|
| +#!/usr/bin/env python
|
| +# Copyright (c) 2013 The Chromium Authors. All rights reserved.
|
| +# 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:]))
|
|
|