Commit f7343f66 authored by Ned Nguyen's avatar Ned Nguyen Committed by Commit Bot

Update TestExpectation to no longer include lines with mutual exclusive specifiers

This also update test expectation linter to error out on lines with mutual
exclusive specifiers

The Expectation files are updated using the script in https://chromium-review.googlesource.com/c/chromium/src/+/1336387

This is the first part of the plan to migrate WebkitLayout test expectations to the new format.

Bug: 807751
Change-Id: Iad2296a99804fb16d9b474229b68c0d47d3fe1eb
Reviewed-on: https://chromium-review.googlesource.com/c/1336439
Commit-Queue: Ned Nguyen <nednguyen@google.com>
Reviewed-by: default avatarRobert Ma <robertma@chromium.org>
Cr-Commit-Position: refs/heads/master@{#610468}
parent daa3cb99
...@@ -228,8 +228,12 @@ crbug.com/866165 virtual/stable/webexposed/global-interface-listing.html [ Slow ...@@ -228,8 +228,12 @@ crbug.com/866165 virtual/stable/webexposed/global-interface-listing.html [ Slow
crbug.com/866165 webexposed/global-interface-listing.html [ Slow ] crbug.com/866165 webexposed/global-interface-listing.html [ Slow ]
# SwiftShader slow tests # SwiftShader slow tests
crbug.com/726075 [ Win Linux Mac ] css3/filters/effect-reference-zoom-hw.html [ Slow ] crbug.com/726075 [ Win ] css3/filters/effect-reference-zoom-hw.html [ Slow ]
crbug.com/726075 [ Win Linux Mac ] virtual/gpu/fast/canvas/canvas-composite-shadow.html [ Slow ] crbug.com/726075 [ Linux ] css3/filters/effect-reference-zoom-hw.html [ Slow ]
crbug.com/726075 [ Mac ] css3/filters/effect-reference-zoom-hw.html [ Slow ]
crbug.com/726075 [ Win ] virtual/gpu/fast/canvas/canvas-composite-shadow.html [ Slow ]
crbug.com/726075 [ Linux ] virtual/gpu/fast/canvas/canvas-composite-shadow.html [ Slow ]
crbug.com/726075 [ Mac ] virtual/gpu/fast/canvas/canvas-composite-shadow.html [ Slow ]
# IDB Observer tests require multiple browsing contexts/workers interacting with # IDB Observer tests require multiple browsing contexts/workers interacting with
# IndexedDB, which can be slow. # IndexedDB, which can be slow.
...@@ -359,7 +363,8 @@ crbug.com/626703 external/wpt/html/semantics/scripting-1/the-script-element/asyn ...@@ -359,7 +363,8 @@ crbug.com/626703 external/wpt/html/semantics/scripting-1/the-script-element/asyn
crbug.com/626703 virtual/streaming-preload/external/wpt/html/semantics/scripting-1/the-script-element/async_007.htm [ Slow ] crbug.com/626703 virtual/streaming-preload/external/wpt/html/semantics/scripting-1/the-script-element/async_007.htm [ Slow ]
crbug.com/626703 virtual/streaming-preload/external/wpt/html/semantics/scripting-1/the-script-element/async_010.htm [ Slow ] crbug.com/626703 virtual/streaming-preload/external/wpt/html/semantics/scripting-1/the-script-element/async_010.htm [ Slow ]
crbug.com/840792 [ Mac10.12 Mac10.13 ] external/wpt/pointerevents/pointerevent_touch-action-table-test_touch-manual.html [ Slow ] crbug.com/840792 [ Mac10.12 ] external/wpt/pointerevents/pointerevent_touch-action-table-test_touch-manual.html [ Slow ]
crbug.com/840792 [ Mac10.13 ] external/wpt/pointerevents/pointerevent_touch-action-table-test_touch-manual.html [ Slow ]
# These tests take 90 seconds on MSAN due to a large amount of JS execution. # These tests take 90 seconds on MSAN due to a large amount of JS execution.
crbug.com/853977 [ Linux ] http/tests/fetch/chromium/call-extra-crash-tee.html [ Slow ] crbug.com/853977 [ Linux ] http/tests/fetch/chromium/call-extra-crash-tee.html [ Slow ]
...@@ -381,23 +386,40 @@ crbug.com/865262 [ Mac ] virtual/new-remote-playback-pipeline/media/controls/tex ...@@ -381,23 +386,40 @@ crbug.com/865262 [ Mac ] virtual/new-remote-playback-pipeline/media/controls/tex
crbug.com/876050 [ Mac ] virtual/video-surface-layer/media/controls/text-track-menu-pointer-selection.html [ Slow ] crbug.com/876050 [ Mac ] virtual/video-surface-layer/media/controls/text-track-menu-pointer-selection.html [ Slow ]
### virtual/gpu/fast/canvas/ blending layout tests are slow ### virtual/gpu/fast/canvas/ blending layout tests are slow
crbug.com/866850 [ Linux Mac ] virtual/gpu/fast/canvas/canvas-blend-image.html [ Slow ] crbug.com/866850 [ Linux ] virtual/gpu/fast/canvas/canvas-blend-image.html [ Slow ]
crbug.com/866850 [ Linux Mac ] virtual/gpu/fast/canvas/canvas-blending-color-over-image.html [ Slow ] crbug.com/866850 [ Mac ] virtual/gpu/fast/canvas/canvas-blend-image.html [ Slow ]
crbug.com/866850 [ Linux Mac ] virtual/gpu/fast/canvas/canvas-blending-color-over-pattern.html [ Slow ] crbug.com/866850 [ Linux ] virtual/gpu/fast/canvas/canvas-blending-color-over-image.html [ Slow ]
crbug.com/866850 [ Linux Mac ] virtual/gpu/fast/canvas/canvas-blending-gradient-over-image.html [ Slow ] crbug.com/866850 [ Mac ] virtual/gpu/fast/canvas/canvas-blending-color-over-image.html [ Slow ]
crbug.com/866850 [ Linux Mac ] virtual/gpu/fast/canvas/canvas-blending-gradient-over-pattern.html [ Slow ] crbug.com/866850 [ Linux ] virtual/gpu/fast/canvas/canvas-blending-color-over-pattern.html [ Slow ]
crbug.com/866850 [ Linux Mac ] virtual/gpu/fast/canvas/canvas-blending-image-over-gradient.html [ Slow ] crbug.com/866850 [ Mac ] virtual/gpu/fast/canvas/canvas-blending-color-over-pattern.html [ Slow ]
crbug.com/866850 [ Linux Mac ] virtual/gpu/fast/canvas/canvas-blending-image-over-image.html [ Slow ] crbug.com/866850 [ Linux ] virtual/gpu/fast/canvas/canvas-blending-gradient-over-image.html [ Slow ]
crbug.com/866850 [ Linux Mac ] virtual/gpu/fast/canvas/canvas-blending-image-over-pattern.html [ Slow ] crbug.com/866850 [ Mac ] virtual/gpu/fast/canvas/canvas-blending-gradient-over-image.html [ Slow ]
crbug.com/866850 [ Linux Mac ] virtual/gpu/fast/canvas/canvas-blending-pattern-over-color.html [ Slow ] crbug.com/866850 [ Linux ] virtual/gpu/fast/canvas/canvas-blending-gradient-over-pattern.html [ Slow ]
crbug.com/866850 [ Linux Mac ] virtual/gpu/fast/canvas/canvas-blending-pattern-over-gradient.html [ Slow ] crbug.com/866850 [ Mac ] virtual/gpu/fast/canvas/canvas-blending-gradient-over-pattern.html [ Slow ]
crbug.com/866850 [ Linux Mac ] virtual/gpu/fast/canvas/canvas-blending-pattern-over-image.html [ Slow ] crbug.com/866850 [ Linux ] virtual/gpu/fast/canvas/canvas-blending-image-over-gradient.html [ Slow ]
crbug.com/866850 [ Linux Mac ] virtual/gpu/fast/canvas/canvas-blending-pattern-over-pattern.html [ Slow ] crbug.com/866850 [ Mac ] virtual/gpu/fast/canvas/canvas-blending-image-over-gradient.html [ Slow ]
crbug.com/866850 [ Linux Mac ] virtual/gpu/fast/canvas/canvas-shadow-source-in.html [ Slow ] crbug.com/866850 [ Linux ] virtual/gpu/fast/canvas/canvas-blending-image-over-image.html [ Slow ]
crbug.com/866850 [ Linux Mac ] virtual/gpu/fast/canvas/color-space/canvas-createImageBitmap-p3.html [ Slow ] crbug.com/866850 [ Mac ] virtual/gpu/fast/canvas/canvas-blending-image-over-image.html [ Slow ]
crbug.com/866850 [ Linux Mac ] virtual/gpu/fast/canvas/color-space/canvas-createImageBitmap-rec2020.html [ Slow ] crbug.com/866850 [ Linux ] virtual/gpu/fast/canvas/canvas-blending-image-over-pattern.html [ Slow ]
crbug.com/866850 [ Linux Mac ] virtual/gpu/fast/canvas/OffscreenCanvas-filter.html [ Slow ] crbug.com/866850 [ Mac ] virtual/gpu/fast/canvas/canvas-blending-image-over-pattern.html [ Slow ]
crbug.com/866850 [ Linux Mac ] virtual/gpu/fast/canvas/OffscreenCanvas-filter-in-worker.html [ Slow ] crbug.com/866850 [ Linux ] virtual/gpu/fast/canvas/canvas-blending-pattern-over-color.html [ Slow ]
crbug.com/866850 [ Mac ] virtual/gpu/fast/canvas/canvas-blending-pattern-over-color.html [ Slow ]
crbug.com/866850 [ Linux ] virtual/gpu/fast/canvas/canvas-blending-pattern-over-gradient.html [ Slow ]
crbug.com/866850 [ Mac ] virtual/gpu/fast/canvas/canvas-blending-pattern-over-gradient.html [ Slow ]
crbug.com/866850 [ Linux ] virtual/gpu/fast/canvas/canvas-blending-pattern-over-image.html [ Slow ]
crbug.com/866850 [ Mac ] virtual/gpu/fast/canvas/canvas-blending-pattern-over-image.html [ Slow ]
crbug.com/866850 [ Linux ] virtual/gpu/fast/canvas/canvas-blending-pattern-over-pattern.html [ Slow ]
crbug.com/866850 [ Mac ] virtual/gpu/fast/canvas/canvas-blending-pattern-over-pattern.html [ Slow ]
crbug.com/866850 [ Linux ] virtual/gpu/fast/canvas/canvas-shadow-source-in.html [ Slow ]
crbug.com/866850 [ Mac ] virtual/gpu/fast/canvas/canvas-shadow-source-in.html [ Slow ]
crbug.com/866850 [ Linux ] virtual/gpu/fast/canvas/color-space/canvas-createImageBitmap-p3.html [ Slow ]
crbug.com/866850 [ Mac ] virtual/gpu/fast/canvas/color-space/canvas-createImageBitmap-p3.html [ Slow ]
crbug.com/866850 [ Linux ] virtual/gpu/fast/canvas/color-space/canvas-createImageBitmap-rec2020.html [ Slow ]
crbug.com/866850 [ Mac ] virtual/gpu/fast/canvas/color-space/canvas-createImageBitmap-rec2020.html [ Slow ]
crbug.com/866850 [ Linux ] virtual/gpu/fast/canvas/OffscreenCanvas-filter.html [ Slow ]
crbug.com/866850 [ Mac ] virtual/gpu/fast/canvas/OffscreenCanvas-filter.html [ Slow ]
crbug.com/866850 [ Linux ] virtual/gpu/fast/canvas/OffscreenCanvas-filter-in-worker.html [ Slow ]
crbug.com/866850 [ Mac ] virtual/gpu/fast/canvas/OffscreenCanvas-filter-in-worker.html [ Slow ]
### Some timeout tests in xmlhttprequest/timeout/ are slow ### Some timeout tests in xmlhttprequest/timeout/ are slow
crbug.com/869800 http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-aborted.html [ Slow ] crbug.com/869800 http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-aborted.html [ Slow ]
......
...@@ -68,6 +68,24 @@ class ParseError(Exception): ...@@ -68,6 +68,24 @@ class ParseError(Exception):
return 'ParseError(warnings=%s)' % self.warnings return 'ParseError(warnings=%s)' % self.warnings
_PLATFORM_TOKENS_LIST = [
'Android',
'Fuchsia',
'Linux',
'Mac', 'Mac10.10', 'Mac10.11', 'Retina', 'Mac10.12', 'Mac10.13',
'Win', 'Win7', 'Win10'
]
_BUILD_TYPE_TOKEN_LIST = [
'Release',
'Debug',
]
_SPECIFIER_GROUPS = [
set(s.upper() for s in _PLATFORM_TOKENS_LIST),
set(s.upper() for s in _BUILD_TYPE_TOKEN_LIST)
]
class TestExpectationParser(object): class TestExpectationParser(object):
"""Provides parsing facilities for lines in the test_expectation.txt file.""" """Provides parsing facilities for lines in the test_expectation.txt file."""
...@@ -102,8 +120,24 @@ class TestExpectationParser(object): ...@@ -102,8 +120,24 @@ class TestExpectationParser(object):
test_expectation = TestExpectationLine.tokenize_line(filename, line, line_number) test_expectation = TestExpectationLine.tokenize_line(filename, line, line_number)
self._parse_line(test_expectation) self._parse_line(test_expectation)
expectation_lines.append(test_expectation) expectation_lines.append(test_expectation)
if self._is_lint_mode:
self._validate_specifiers(expectation_lines)
return expectation_lines return expectation_lines
def _validate_specifiers(self, expectation_lines):
errors = []
for el in expectation_lines:
for s in _SPECIFIER_GROUPS:
if len(s.intersection(el.specifiers)) > 2:
errors.append('Expectation line contain more than one exclusive '
'specifiers: %s (%s:%s). Please split this test '
'expectation into multiple lines, each has one specifier.' % (
el.original_string, el.filename, el.line_numbers))
break
if errors:
raise ParseError(errors)
def _create_expectation_line(self, test_name, expectations, file_name): def _create_expectation_line(self, test_name, expectations, file_name):
expectation_line = TestExpectationLine() expectation_line = TestExpectationLine()
expectation_line.original_string = test_name expectation_line.original_string = test_name
...@@ -269,16 +303,7 @@ class TestExpectationLine(object): ...@@ -269,16 +303,7 @@ class TestExpectationLine(object):
return not self.original_string.strip() return not self.original_string.strip()
# FIXME: Update the original specifiers and remove this once the old syntax is gone. # FIXME: Update the original specifiers and remove this once the old syntax is gone.
_configuration_tokens_list = [ _configuration_tokens_list = _PLATFORM_TOKENS_LIST + _BUILD_TYPE_TOKEN_LIST
'Android',
'Fuchsia',
'Linux',
'Mac', 'Mac10.10', 'Mac10.11', 'Retina', 'Mac10.12', 'Mac10.13',
'Win', 'Win7', 'Win10',
'Release',
'Debug',
]
_configuration_tokens = dict((token, token.upper()) for token in _configuration_tokens_list) _configuration_tokens = dict((token, token.upper()) for token in _configuration_tokens_list)
_inverted_configuration_tokens = dict((value, name) for name, value in _configuration_tokens.iteritems()) _inverted_configuration_tokens = dict((value, name) for name, value in _configuration_tokens.iteritems())
......
...@@ -432,6 +432,15 @@ class SemanticTests(Base): ...@@ -432,6 +432,15 @@ class SemanticTests(Base):
except ParseError as exp: except ParseError as exp:
self.assertEqual(len(exp.warnings), 3) self.assertEqual(len(exp.warnings), 3)
def test_exclusive_specifiers_error_in_lint_mode(self):
with self.assertRaises(ParseError):
self.parse_exp('BUG1234 [ Mac Win ] failures/expected/text.html [ Failure ]',
is_lint_mode=True)
with self.assertRaises(ParseError):
self.parse_exp('BUG1234 [ Mac Debug Release ] failures/expected/text.html [ Failure ]',
is_lint_mode=True)
def test_missing_bugid(self): def test_missing_bugid(self):
self.parse_exp('failures/expected/text.html [ Failure ]', is_lint_mode=False) self.parse_exp('failures/expected/text.html [ Failure ]', is_lint_mode=False)
self.assertFalse(self._exp.has_warnings()) self.assertFalse(self._exp.has_warnings())
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment