[webkit-dev] LayoutTests results fallback graph

Adam Barth abarth at webkit.org
Sun Jul 10 14:27:10 PDT 2011

On Sun, Jul 10, 2011 at 2:06 PM, Mark Rowe <mrowe at apple.com> wrote:
> On Jul 10, 2011, at 13:57, Adam Barth <abarth at webkit.org> wrote:
>> On Sun, Jul 10, 2011 at 1:26 PM, Mark Rowe <mrowe at apple.com> wrote:
>>> On 2011-07-10, at 13:20, Adam Barth wrote:
>>>> Sure.  I'll highlight the relevant section of my original email:
>>>> On Sun, Jul 10, 2011 at 10:52 AM, Adam Barth <abarth at webkit.org> wrote:
>>>>> These changes have the following virtues:
>>>>> A) The resulting fallback graph will be a tree, making the fallback
>>>>> graph easier to understand for both humans and automated tools.
>>> I don't see how Windows falling back to mac-snowleopard has any effect on that.  It's no different than mac-leopard in that regard.  Then again, maybe the diagram is trying to convey something that I'm missing due to having no idea what the difference is between the myriad of different line styles in the diagram.
>> Notice that the circle for "win" has two arrows emanating from it.
>> One of those arrows goes to "mac" and the other goes to
>> "mac-snowleopard".  That means that of the fallback paths that transit
>> "win", one path flows through "mac-snowlepard" where as the remainder
>> flow through "mac".  If we change "win" to fall back to "mac", then
>> the graph becomes more tree-like.  (If make change (2) as well, then
>> the graph globally becomes a tree.)
> Can you please clarify what the edges in your diagram, along with what the different line styles, represent?

Sure.  The solid arrows at the "normal" transitive fallback path.  For
example, mac-leopard falls back to mac-snowleopard, which falls back
to mac, which falls back to all (the platform independent results).

Some directories have non-transitive fallback paths, which a indicated
in dashed lines.  For example, chromium-mac-snowleopard falls back to
chromium-mac, which falls back to chromium.  However, the next step in
the fallback path depends on where the path started.  If the path
started at chromium-mac-leopard, the next step in the fallback is to
mac-snowleopard whereas if the path started at chromium-mac, the next
step in the path is to mac-snowleopard.

Similarly, if we arrive at chromium by falling back via chromium-win
(regardless of how we got to chromium-win), the next steps in the
fallback path is win, mac, and, finally, "all".

IMHO, these non-transitive fallback paths are nutty and not worth
their complexity.

Now, suppose we disabuse the chromium fallback paths of their
nuttiness and have every fallback path that transits "chromium" have
"all" as its next step, then we'll have a reasonably understandable
fallback system, with the sole exception of "win" being strangely
captive on "mac-snowleopard".

In practice, there's extremely little actual difference (e.g., just
one image baseline) between "mac" and "mac-snowleopard", so changing
"win" to fallback to "mac" has very little operational cost.


More information about the webkit-dev mailing list