2011-01-11 Dirk Pranke <dpranke@chromium.org>
authordpranke@chromium.org <dpranke@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 12 Jan 2011 01:15:46 +0000 (01:15 +0000)
committerdpranke@chromium.org <dpranke@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 12 Jan 2011 01:15:46 +0000 (01:15 +0000)
commitac5b4d972cf1ab93d7a5d6d87c1dd85038fa5218
treeb7fe5d1a7945efef67d16408de6d03c2c1eeef0b
parent9fdb2b7fc66501c30a1789bdc66fcda812497104
2011-01-11  Dirk Pranke  <dpranke@chromium.org>

        Reviewed by Ojan Vafai.

        The current modifier parsing code in test_expectations is
        fragile and hard-coded, so it's not easy to understand the logic
        or easily add new types of modifiers (like GPU vs. CPU testing
        for graphics tests, or 32-bit vs. 64-bit differences).

        This is the first of two patches that will add in more generic
        support and then eliminate the GPU-specific test expectations
        files for Chromium.

        This patch adds two standalone objects for handling modifiers. The
        rules for interpreting modifiers, precedence, and conflicts are
        given in the docstring to the ModifierMatcher class, which
        returns ModifierMatchResult objects.

        This patch also adds routines to the Port interface and a
        default set of values in the base object, in order to obtain the
        values needed on a given test run. These values are then passed
        to the expectation parser. This also allows us to clean up the
        logic used to lint all of the different configurations in a
        single test_expectations.txt file.

        The next patch will merge in the separate GPU expectations file.

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

        * Scripts/webkitpy/layout_tests/layout_package/printing_unittest.py:
        * Scripts/webkitpy/layout_tests/layout_package/test_expectations.py:
        * Scripts/webkitpy/layout_tests/layout_package/test_expectations_unittest.py:
        * Scripts/webkitpy/layout_tests/port/base.py:
        * Scripts/webkitpy/layout_tests/port/base_unittest.py:
        * Scripts/webkitpy/layout_tests/port/chromium.py:
        * Scripts/webkitpy/layout_tests/port/port_testcase.py:
        * Scripts/webkitpy/layout_tests/port/test.py:
        * Scripts/webkitpy/layout_tests/run_webkit_tests.py:
        * Scripts/webkitpy/layout_tests/run_webkit_tests_unittest.py:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@75576 268f45cc-cd09-0410-ab3c-d52691b4dbfc
13 files changed:
Tools/ChangeLog
Tools/Scripts/webkitpy/layout_tests/layout_package/printing_unittest.py
Tools/Scripts/webkitpy/layout_tests/layout_package/test_expectations.py
Tools/Scripts/webkitpy/layout_tests/layout_package/test_expectations_unittest.py
Tools/Scripts/webkitpy/layout_tests/layout_package/test_runner.py
Tools/Scripts/webkitpy/layout_tests/port/base.py
Tools/Scripts/webkitpy/layout_tests/port/chromium.py
Tools/Scripts/webkitpy/layout_tests/port/port_testcase.py
Tools/Scripts/webkitpy/layout_tests/port/test.py
Tools/Scripts/webkitpy/layout_tests/rebaseline_chromium_webkit_tests.py
Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py
Tools/Scripts/webkitpy/style/checkers/test_expectations.py
Tools/Scripts/webkitpy/style/checkers/test_expectations_unittest.py