| Index: test/webkit/testcfg.py
|
| diff --git a/test/webkit/testcfg.py b/test/webkit/testcfg.py
|
| index 2c4a29c03e61a836878073ca4e63890a19197bb6..e4e3f8fa8b94691ad847b47aef77b03c2de7197c 100644
|
| --- a/test/webkit/testcfg.py
|
| +++ b/test/webkit/testcfg.py
|
| @@ -116,16 +116,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 separator was found.
|
| + 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
|
|
|