Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5838)

Unified Diff: chrome/test/gpu/generate_webgl_conformance_test_list.py

Issue 7563021: Added WebGL conformance test expectation script. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Updated regex. Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/chrome_tests.gypi ('k') | chrome/test/gpu/webgl_conformance_test_expectations.txt » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/gpu/generate_webgl_conformance_test_list.py
diff --git a/chrome/test/gpu/generate_webgl_conformance_test_list.py b/chrome/test/gpu/generate_webgl_conformance_test_list.py
index 8b05b4e778b0672ff07fcb2662a7090377d6465f..97bc6108ab64121f082b258073b5a818c6233739 100755
--- a/chrome/test/gpu/generate_webgl_conformance_test_list.py
+++ b/chrome/test/gpu/generate_webgl_conformance_test_list.py
@@ -11,8 +11,6 @@ for individual conformance tests (each on a new line). It recursively parses
sent to the C++ header file.
"""
-__author__ = 'jrt@chromium.org (Joe Tessler)'
-
import getopt
import os
import re
@@ -41,6 +39,27 @@ HEADER_GUARD_END = """
# Assume this script is run from the src/chrome/ directory.
INPUT_DIR = "../third_party/webgl_conformance"
INPUT_FILE = "00_test_list.txt"
+EXPECTATION_FILE = "test/gpu/webgl_conformance_test_expectations.txt"
+EXPECTATION_REGEXP = re.compile(
+ r'^(?P<BUG>\S+)\s+'
+ '(?P<OS>(\s*(WIN|MAC|LINUX)\s*)+):'
+ '(?P<TEST>[^=]+)='
+ '(?P<OUTCOME>(\s*(PASS|FAIL|TIMEOUT)\s*)+)')
+
+def is_matching_os(expected_os_list):
+ """Returns true if the current OS is in the given list.
+
+ Given a list containing 'WIN', 'MAC' or 'LINUX', return true if the current
+ OS, represented as 'win32', 'darwin' or 'linux*', respectively, exists in the
+ list.
+ """
+ if sys.platform.startswith('linux') and 'LINUX' in expected_os_list:
+ return True;
+ if sys.platform == 'darwin' and 'MAC' in expected_os_list:
+ return True;
+ if sys.platform == 'win32' and 'WIN' in expected_os_list:
+ return True;
+ return False;
def main(argv):
"""Main function for the WebGL conformance test list generator.
@@ -72,6 +91,27 @@ def main(argv):
print >> sys.stderr, "ERROR: WebGL conformance tests do not exist."
return 1
+ test_prefix = {}
+ if os.path.exists(EXPECTATION_FILE):
+ test_expectations = open(EXPECTATION_FILE)
+ for line in test_expectations:
+ line_match = EXPECTATION_REGEXP.match(line)
+ if line_match:
+ match_dict = line_match.groupdict()
+ os_list = match_dict['OS'].strip().split()
+ if not is_matching_os(os_list):
+ continue
+ test = match_dict['TEST'].strip()
+ outcome_list = match_dict['OUTCOME'].strip().split()
+ if 'TIMEOUT' in outcome_list:
+ test_prefix[test] = "DISABLED_"
+ elif 'FAIL' in outcome_list:
+ if 'PASS' in outcome_list:
+ test_prefix[test] = "FLAKY_"
+ else:
+ test_prefix[test] = "FAILS_"
+ test_expectations.close()
+
output = open(output_file, "w")
output.write(COPYRIGHT)
output.write(WARNING)
@@ -106,6 +146,9 @@ def main(argv):
# is sent through javascript.
url = "%s/%s" % (os.path.dirname(filename), url)
if os.path.exists(os.path.join(INPUT_DIR, url)):
+ # Append "DISABLED_" or "FAILS_" if needed.
+ if name in test_prefix:
+ name = test_prefix[name] + name
output.write('CONFORMANCE_TEST(%s,\n "%s");\n' % (name, url))
else:
print >> sys.stderr, "WARNING: %s does not exist (skipped)." % url
« no previous file with comments | « chrome/chrome_tests.gypi ('k') | chrome/test/gpu/webgl_conformance_test_expectations.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698