Sigh, I thought that change had been reverted, but apparently the CQ defeated me. I'm trying again now ...
That said, I don't quite agree w/ Elliott's response. Let me rephrase things and provide some background
The W3C has many thousands of tests written in a pass/fail assert-style manner using the testharness.js script . They do not have corresponding -expected.txt files for them, and I have no desire to track thousands of -expected.txt baselines that we have to generate and verify (that's almost as bad as pixel tests!).
The change in question was meant to add the following logic:
if a test does not produce any pixel output and is not a ref test and does not produce a render tree as text output
*and* we don't have an -expected.txt baseline
*and* the test contains at least one line starting with "PASS" or "FAIL"
then treat it as a pass/fail test and fail it if it contains any lines containing FAIL.
This works fine for the testharness-based tests, but it turns out that js-test-pre/post always prints at least one PASS line if the scripts were all parsed successfully, even if no other asserts fire. So, the change was reverted until I can change the logic to accomodate that.
I think a better solution would be to modify the output of testharness.js/testharnessreport.js to print a magic string like "THIS IS A TESTHARNESS TEST" that we can also check for to be sure :).
Once we have an appropriately modified harness, I think it's reasonable to not require existing baselines for tests even in our own (non-W3C) tests. Note that this approach can't handle the case where some assertions pass in a test but some are expected to fail (you still need an -expected.txt reference for such situations), and there may be cases where the test will not run some expected assertions and we won't notice, but that seems like an acceptable risk.
Thoughts/feedback welcome,
-- Dirk