Index: third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py |
diff --git a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py |
index feabaa9055968687c5d127975112afe8298cdee1..702620b9a1e1adb75286fdf0551828102577d54c 100644 |
--- a/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py |
+++ b/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py |
@@ -465,6 +465,10 @@ class SemanticTests(Base): |
Bug(exp) failures/expected/text.html [ Failure ] |
Bug(exp) failures/expected/text.html [ Timeout ]""", is_lint_mode=True) |
+ self.assertRaises(ParseError, self.parse_exp, """ |
+Bug(exp) failures/expected/text.html [ Failure ] |
+Bug(exp) failures/expected/text.html [ NeedsRebaseline ]""", is_lint_mode=True) |
+ |
self.assertRaises(ParseError, self.parse_exp, |
self.get_basic_expectations(), overrides=""" |
Bug(override) failures/expected/text.html [ Failure ] |
@@ -476,6 +480,51 @@ Bug(exp) [ Release ] failures/expected/text.html [ Failure ] |
Bug(exp) [ Debug ] failures/expected/text.html [ Failure ] |
""") |
+ def test_duplicates_rebaseline_no_conflict(self): |
+ # Rebaseline throws in lint mode, so only test it in non-lint mode. |
+ # Check Rebaseline |
+ self.parse_exp(""" |
+Bug(exp) failures/expected/text.html [ Rebaseline ] |
+Bug(exp) failures/expected/text.html [ Pass Failure ] |
+""", is_lint_mode=False) |
+ self.assert_exp_list('failures/expected/text.html', [PASS, FAIL, REBASELINE]) |
+ |
+ # Check NeedsRebaseline. |
+ self.parse_exp(""" |
+Bug(exp) failures/expected/text.html [ Pass Failure ] |
+Bug(exp) failures/expected/text.html [ NeedsRebaseline ] |
+""", is_lint_mode=False) |
+ self.assert_exp_list('failures/expected/text.html', [PASS, FAIL, NEEDS_REBASELINE]) |
+ |
+ # Check NeedsManualRebaseline |
+ self.parse_exp(""" |
+Bug(exp) failures/expected/text.html [ Pass Failure ] |
+Bug(exp) failures/expected/text.html [ NeedsManualRebaseline ] |
+""", is_lint_mode=False) |
+ self.assert_exp_list('failures/expected/text.html', [PASS, FAIL, NEEDS_MANUAL_REBASELINE]) |
+ |
+ def test_duplicates_rebaseline_no_conflict_linting(self): |
+ # Check NeedsRebaseline |
+ self.parse_exp(""" |
+Bug(exp) failures/expected/text.html [ NeedsRebaseline ] |
+Bug(exp) failures/expected/text.html [ Pass Failure ] |
+""", is_lint_mode=True) |
+ self.assert_exp_list('failures/expected/text.html', [PASS, FAIL, NEEDS_REBASELINE]) |
+ |
+ # Check lines in reverse order. |
+ self.parse_exp(""" |
+Bug(exp) failures/expected/text.html [ Pass Failure ] |
+Bug(exp) failures/expected/text.html [ NeedsRebaseline ] |
+""", is_lint_mode=True) |
+ self.assert_exp_list('failures/expected/text.html', [PASS, FAIL, NEEDS_REBASELINE]) |
+ |
+ # Check NeedsManualRebaseline |
+ self.parse_exp(""" |
+Bug(exp) failures/expected/text.html [ Pass Failure ] |
+Bug(exp) failures/expected/text.html [ NeedsManualRebaseline ] |
+""", is_lint_mode=True) |
+ self.assert_exp_list('failures/expected/text.html', [PASS, FAIL, NEEDS_MANUAL_REBASELINE]) |
+ |
def test_missing_file(self): |
self.parse_exp('Bug(test) missing_file.html [ Failure ]') |
self.assertTrue(self._exp.has_warnings(), 1) |