Rework test infrastructure to keep track of tests which are disabled
on the platform/feature combination being tested, and to differentiate
between tests disabled because the test is broken in some way, and those
skipped because the platform in question is broken in some way (or the test
is irrelevant for the given feature set).
This takes the form of two new keywords to WITH-TEST -- :BROKEN-ON, which
notes that the test itself is broken for a given feature expression, or
:SKIPPED-ON, which skips a test for a given feature expression. This
information is noted at the end of a test run like so:
Finished running tests.
Status:
Skipped (broken): debug.impure.lisp / (TRACE ENCAPSULATE NIL)
Skipped (broken): debug.impure.lisp / (TRACE-RECURSIVE ENCAPSULATE NIL)
Expected failure: packages.impure.lisp / USE-PACKAGE-CONFLICT-SET
Expected failure: packages.impure.lisp / IMPORT-SINGLE-CONFLICT
(38 tests skipped for this combination of platform and features)
ok
//apparent success (reached end of run-tests.sh normally)
Thu Jun 2 15:59:31 EDT 2011
Note that there is no :WORKS-ON or :ENABLED-ON, even though many of the
read-time conditionals this replaced were for a given feature instead of for
its absence -- you can still do, eg:
(with-test (:name foo :broken-on '(not :x86)) ...)
but such declarations are almost always too general (one exception being
`:skipped-on '(not :sb-thread)'), and IMO, should be discouraged.
While here, re-enable a bunch of tests previously skipped on Solaris which
now work.
22 files changed: