2011-01-21 Dirk Pranke <dpranke@chromium.org>
authordpranke@chromium.org <dpranke@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 22 Jan 2011 01:29:59 +0000 (01:29 +0000)
committerdpranke@chromium.org <dpranke@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 22 Jan 2011 01:29:59 +0000 (01:29 +0000)
        Reviewed by Mihai Parparita.

        Fix bug introduced in r76322 that caused NRWT to not actually
        read the Skipped files properly.

        https://bugs.webkit.org/show_bug.cgi?id=52771

        * Scripts/webkitpy/layout_tests/port/mac_unittest.py:
        * Scripts/webkitpy/layout_tests/port/webkit.py:
        * Scripts/webkitpy/layout_tests/port/webkit_unittest.py:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@76413 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Tools/ChangeLog
Tools/Scripts/webkitpy/layout_tests/port/mac_unittest.py
Tools/Scripts/webkitpy/layout_tests/port/webkit.py
Tools/Scripts/webkitpy/layout_tests/port/webkit_unittest.py

index 3ef3b4a4518ce6fe22fdce6f4e47983cddf07b6c..b07c7154c855d6b669a6bd49a3dc48a5b96c05ab 100644 (file)
@@ -1,3 +1,16 @@
+2011-01-21  Dirk Pranke  <dpranke@chromium.org>
+
+        Reviewed by Mihai Parparita.
+
+        Fix bug introduced in r76322 that caused NRWT to not actually
+        read the Skipped files properly.
+
+        https://bugs.webkit.org/show_bug.cgi?id=52771
+
+        * Scripts/webkitpy/layout_tests/port/mac_unittest.py:
+        * Scripts/webkitpy/layout_tests/port/webkit.py:
+        * Scripts/webkitpy/layout_tests/port/webkit_unittest.py:
+
 2011-01-21  Sam Weinig  <sam@webkit.org>
 
         Reviewed by Geoffrey Sean Garen and Mark Rowe.
index d383a4cd8837e59ca54cdae97961a4a55b1f4004..eec1102cb0d44842adb6bb6f813a0f42dd592a29 100644 (file)
@@ -69,12 +69,11 @@ svg/batik/text/smallFonts.svg
         "svg/batik/text/smallFonts.svg",
     ]
 
-    def test_skipped_file_paths(self):
+    def test_tests_from_skipped_file_contents(self):
         port = self.make_port()
         if not port:
             return
-        skipped_file = StringIO.StringIO(self.example_skipped_file)
-        self.assertEqual(port._tests_from_skipped_file(skipped_file), self.example_skipped_tests)
+        self.assertEqual(port._tests_from_skipped_file_contents(self.example_skipped_file), self.example_skipped_tests)
 
 
 if __name__ == '__main__':
index 577acd45e983cc1c4cd8ad17da179f3db04ad8ef..476555c5a29c099b02caf4bca4cd83979dcd7837 100644 (file)
@@ -283,9 +283,9 @@ class WebKitPort(base.Port):
         unsupported_feature_tests = self._skipped_tests_for_unsupported_features()
         return disabled_feature_tests + webarchive_tests + unsupported_feature_tests
 
-    def _tests_from_skipped_file(self, skipped_file):
+    def _tests_from_skipped_file_contents(self, skipped_file_contents):
         tests_to_skip = []
-        for line in skipped_file.readlines():
+        for line in skipped_file_contents.split('\n'):
             line = line.strip()
             if line.startswith('#') or not len(line):
                 continue
@@ -301,7 +301,8 @@ class WebKitPort(base.Port):
             if not self._filesystem.exists(filename):
                 _log.warn("Failed to open Skipped file: %s" % filename)
                 continue
-            skipped_file = self._filesystem.read_text_file(filename)
+            skipped_file_contents = self._filesystem.read_text_file(filename)
+            tests_to_skip.extend(self._tests_from_skipped_file_contents(skipped_file_contents))
         return tests_to_skip
 
     def test_expectations(self):
index 7b6831085dfae980b297c6762822393fe31f5832..c72a411acb003fb886d61af4165d11df2016ece4 100644 (file)
@@ -1,5 +1,6 @@
 #!/usr/bin/env python
 # Copyright (C) 2010 Gabor Rapcsanyi <rgabor@inf.u-szeged.hu>, University of Szeged
+# Copyright (C) 2010 Google Inc. All rights reserved.
 #
 # All rights reserved.
 #
 
 import unittest
 
+from webkitpy.common.system import filesystem_mock
+
 from webkitpy.layout_tests.port.webkit import WebKitPort
 
 
 class TestWebKitPort(WebKitPort):
-    def __init__(self, symbol_list=None, feature_list=None):
+    def __init__(self, symbol_list=None, feature_list=None,
+                 expectations_file=None, skips_file=None, **kwargs):
         self.symbol_list = symbol_list
         self.feature_list = feature_list
+        self.expectations_file = expectations_file
+        self.skips_file = skips_file
+        WebKitPort.__init__(self, **kwargs)
 
     def _runtime_feature_list(self):
         return self.feature_list
@@ -46,7 +53,14 @@ class TestWebKitPort(WebKitPort):
     def _tests_for_disabled_features(self):
         return ["accessibility", ]
 
+    def path_to_test_expectations_file(self):
+        if self.expectations_file:
+            return self.expectations_file
+        return WebKitPort.path_to_test_expectations_file(self)
+
     def _skipped_file_paths(self):
+        if self.skips_file:
+            return [self.skips_file]
         return []
 
 class WebKitPortTest(unittest.TestCase):
@@ -66,3 +80,23 @@ class WebKitPortTest(unittest.TestCase):
     def test_skipped_layout_tests(self):
         self.assertEqual(TestWebKitPort(None, None).skipped_layout_tests(),
                          set(["media", "accessibility"]))
+
+    def test_test_expectations(self):
+        # Check that we read both the expectations file and anything in a
+        # Skipped file, and that we include the feature and platform checks.
+        files = {
+            '/tmp/test_expectations.txt': 'BUG_TESTEXPECTATIONS SKIP : fast/html/article-element.html = FAIL\n',
+            '/tmp/Skipped': 'fast/html/keygen.html',
+        }
+        mock_fs = filesystem_mock.MockFileSystem(files)
+        port = TestWebKitPort(expectations_file='/tmp/test_expectations.txt',
+                              skips_file='/tmp/Skipped', filesystem=mock_fs)
+        self.assertEqual(port.test_expectations(),
+        """BUG_TESTEXPECTATIONS SKIP : fast/html/article-element.html = FAIL
+BUG_SKIPPED SKIP : fast/html/keygen.html = FAIL
+BUG_SKIPPED SKIP : media = FAIL
+BUG_SKIPPED SKIP : accessibility = FAIL""")
+
+
+if __name__ == '__main__':
+    unittest.main()