Chromium Code Reviews| Index: test/webkit/testcfg.py |
| diff --git a/test/webkit/testcfg.py b/test/webkit/testcfg.py |
| index 2c4a29c03e61a836878073ca4e63890a19197bb6..f3b3f5b458563161b084ddeddb467ac5027af340 100644 |
| --- a/test/webkit/testcfg.py |
| +++ b/test/webkit/testcfg.py |
| @@ -28,7 +28,6 @@ |
| import itertools |
| import os |
| import re |
| - |
|
Jakob Kummerow
2013/06/27 16:33:58
nit: I liked this line, please keep it.
|
| from testrunner.local import testsuite |
| from testrunner.objects import testcase |
| @@ -116,16 +115,40 @@ class WebkitTestSuite(testsuite.TestSuite): |
| return True |
| file_name = os.path.join(self.root, testpath) + "-expected.txt" |
| with file(file_name, "r") as expected: |
| - def ExpIterator(): |
| - for line in expected.readlines(): |
| - if line.startswith("#") or not line.strip(): continue |
| - yield line.strip() |
| - def ActIterator(): |
| - for line in output.stdout.splitlines(): |
| - if self._IgnoreLine(line.strip()): continue |
| - yield line.strip() |
| + expected_lines = expected.readlines() |
| + |
| + def ExpIterator(): |
| + for line in expected_lines: |
| + if line.startswith("#") or not line.strip(): continue |
| + yield line.strip() |
| + |
| + def ActIterator(lines): |
| + for line in lines: |
| + if self._IgnoreLine(line.strip()): continue |
| + yield line.strip() |
| + |
| + def ActBlockIterator(): |
| + """Iterates over blocks of actual output lines.""" |
| + lines = output.stdout.splitlines() |
| + start_index = 0 |
| + found_eqeq = False |
| + for index, line in enumerate(lines): |
| + # If a stress test separator is found: |
| + if line.startswith("=="): |
| + # Iterate over all lines before a separator except the first. |
| + if not found_eqeq: |
| + found_eqeq = True |
| + else: |
| + yield ActIterator(lines[start_index:index]) |
| + # The next block of ouput lines starts after the separator. |
| + start_index = index + 1 |
| + # Iterate over complete output if no seperator was found. |
|
Jakob Kummerow
2013/06/27 16:33:58
nit: separator
|
| + if not found_eqeq: |
| + yield ActIterator(lines) |
| + |
| + for act_iterator in ActBlockIterator(): |
| for (expected, actual) in itertools.izip_longest( |
| - ExpIterator(), ActIterator(), fillvalue=''): |
| + ExpIterator(), act_iterator, fillvalue=''): |
| if expected != actual: |
| return True |
| return False |