- From: Linss, Peter <peter.linss@hp.com>
- Date: Tue, 19 Jun 2012 17:15:08 +0000
- To: Aryeh Gregor <ayg@aryeh.name>
- CC: CSS-testsuite <public-css-testsuite@w3.org>
On Jun 19, 2012, at 7:58 AM, Aryeh Gregor wrote:
> On Tue, Jun 19, 2012 at 5:44 PM, Aryeh Gregor <ayg@aryeh.name> wrote:
>> Suppose you have a test that contains:
>>
>> <link rel="match" href="test-ref.html">
>> <link rel="mismatch" href="test-notref.html">
>>
>> Does the test pass if it matches test-ref.html *or* doesn't match
>> test-notref.html? Or does it only pass if it matches test-ref.html
>> *and* doesn't match test-notref.html? The wiki page doesn't seem
>> clear:
>>
>> http://wiki.csswg.org/test/format#reference-links
>
> Also, what about:
>
> <link rel="mismatch" href="test-notref-1.html">
> <link rel="mismatch" href="test-notref-2.html">
>
> Or:
>
> <link rel="match" href="test-ref.html">
> <link rel="mismatch" href="test-notref-1.html">
> <link rel="mismatch" href="test-notref-2.html">
>
A test may not match any of its 'mismatch' references. It's not really an 'and' relationship it's:
pass == (test == test-ref.html) and not ((test == test-notref-1.html) or (test == test-notref-2.html))
if that helps…
If you had a more complex situation like:
test:
<link rel="match" href="test-ref-1.html">
<link rel="match" href="test-ref-2.html">
<link rel="mismatch" href="test-notref-1.html">
<link rel="mismatch" href="test-notref-2.html">
then it's:
pass == ((test == test-ref-1.html) or (test == test-ref-2.html)) and not ((test == test-notref-1.html) or (test == test-notref-2.html))
And to get even more complicated, the references can have both 'match' and 'mismatch' references themselves. Consider:
test:
<link rel="match" href="test-ref-1.html">
<link rel="match" href="test-ref-2.html">
<link rel="mismatch" href="test-notref-1.html">
<link rel="mismatch" href="test-notref-2.html">
test-ref-1.html:
<link rel="match" href="test-ref-3.html">
<link rel="match" href="test-ref-4.html">
<link rel="mismatch" href="test-notref-3.html">
<link rel="mismatch" href="test-notref-4.html">
test-ref-2.html:
<link rel="match" href="test-ref-5.html">
<link rel="match" href="test-ref-6.html">
<link rel="mismatch" href="test-notref-5.html">
<link rel="mismatch" href="test-notref-6.html">
then it's:
pass == (((test == test-ref-1.html) and ((test-ref-1.html == test-ref-3.html) or (test-ref-1.html == test-ref-4.html))) or
((test == test-ref-2.html) and ((test-ref-2.html == test-ref-5.html) or (test-ref-2.html == test-ref-6.html)))) and
not ((test == test-notref-1.html) or (test == test-notref-2.html)) and
not ((test-ref-1.html == test-notref-3.html) or (test-ref-1.html == test-notref-4.html)) and
not ((test-ref-2.html == test-notref-5.html) or (test-ref-2.html == test-notref-6.html))
...hopefully that clears it right up :-)
I updated the wiki text.
Peter
Received on Tuesday, 19 June 2012 17:16:36 UTC