On May 17, 2010, at 3:44 PM, James Robinson wrote: > Leopard and Snow Leopard have subtle differences in the way they render > antialiased text. This does not affect the text metrics but does cause > slight pixel differences. The majority of our existing pixel test baselines > appear to have been generated on Leopard, but there is a growing minority of > tests that have been generated on Snow Leopard as well as a small number of > baselines that are out of date or just plain incorrect. This means that when > run with --tolerance=0, there are a significant number of failures on Snow > Leopard that do not have anything to do with the behavior they are intended > to test. Here are some concrete numbers (taken around r59000, the exact > results vary slightly from revision to revision but not hugely). > > On a Leopard machine, running the tests with -p --tolerance=0 yields 120 > failures. With the default tolerance (0.1%) there are 68 failures. > > On Snow Leopard, with -p --tolerance=0 there are 3934 failures. With the > default tolerance (0.1%) there are 144 failures. > > Based on this, it seems reasonable to assume that there are ~3814 pixel test > results in platform/mac that are Leopard specific. There is also a smaller > number of results generated from Snow Leopard machines that fail on Leopard. > I think this is an unhealthy state for the project as it prevents people > developing on a Mac on Snow Leopard from running the pixel tests without > getting a huge number of spurious failures. Currently pretty much all Mac > developers are likely to be on Snow Leopard, except for Google employees who > will be moving to Snow Leopard in the near future. The pixel tests are our > only coverage for lots of the repaint logic currently. > > I think fundamentally there is a short term and a longer term problem here. > The short term problem is that since the Mac pixel results are in such a bad > state for people on Snow Leopard, people making changes to the code are not > likely to update the pixel results at all which leads to an even worse mess > in platform/mac. The longer term problem is that since the pixel tests are > only run on build bots by one port (Chromium) and not run on build.webkit.org > by anyone, the pixel tests are likely to languish.
Thanks for doing this, James. At one point we had pixel bots at Apple, but they fell by the wayside. > To resolve the immediate problem of Leopard-specific results in platform/mac, > I'd like to move all of the Leopard-specific results currently in > platform/mac to platform/mac-leopard and to generate new Snow Leopard > specific results for those tests in platform/mac. Specifically my plan is to > do this: > > For each test T with pixel results in platform/mac that fails on Leopard or > Snow Leopard with -p --tolerance=0: > - if T passes pixel tests exactly on Leopard and fails with a <0.5% pixel > difference on Snow Leopard, assume the only pixel difference is due to text > antialiasing and do the following: > - svn mv the current platform/mac pixel results to platform/mac-leopard > - add new pixel results generated on Snow Leopard into platform/mac > - there should be around 3800 tests in this category > - if T passes pixel tests exactly on Snow Leopard and fails with a <0.5% > pixel difference on Leopard: > - generate new pixel baselines for Leopard and add to platform/mac-leopard > - there should be around 50 tests in this category > - if T fails on both Leopard and Snow Leopard, remove the current > expectations and file a bug > - there should be around 70 tests in this category > > After this is done it should be possible to run the full layout test suite > with --tolerance=0 on Snow Leopard and have no failures. Assuming this > happens, I would like to switch the default value of --tolerance from 0.1 to > 0.0 to try to keep regressions from creeping back in. You may find that some of the text antialiasing differences are hardware-dependent, so I'm not sure if a tolerance of 0 would be possible. > Does this sound like a good plan? The biggest impact on the project will be > a number of large commits in LayoutTests/platform/ to do the svn move and svn > add operations to move results from platform/mac -> platform/mac-leopard and > to add new Snow Leopard results to platform/mac. This can be done over a > weekend and mostly by a script to try to minimize impact. This sounds like a great short-term plan. I think a longer-term plan would be to move as many tests to ref-tests as possible, which eliminates any text-aliasing issues. Simon
_______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev