X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-concurrency%2Fsb-concurrency.asd;h=913f078db7f48bb41a7b0bec2e80aa114fa604a0;hb=4ff9d1fe33f936d40e329bedc8e2872fc2edf36a;hp=ba901c83a2a04e20055758f3121cd807225408b7;hpb=2f9585060d5fe2c525955d80f34123761ded80fe;p=sbcl.git diff --git a/contrib/sb-concurrency/sb-concurrency.asd b/contrib/sb-concurrency/sb-concurrency.asd index ba901c8..913f078 100644 --- a/contrib/sb-concurrency/sb-concurrency.asd +++ b/contrib/sb-concurrency/sb-concurrency.asd @@ -41,5 +41,20 @@ (defmethod asdf:perform ((o asdf:test-op) (c (eql (asdf:find-system :sb-concurrency-tests)))) - (or (funcall (intern "DO-TESTS" (find-package "SB-RT"))) - (error "~S failed" 'asdf:test-op))) + (multiple-value-bind (soft strict pending) + (funcall (intern "DO-TESTS" (find-package "SB-RT"))) + (fresh-line) + (unless strict + #+sb-testing-contrib + ;; We create TEST-PASSED from a shell script if tests passed. But + ;; since the shell script only `touch'es it, we can actually create + ;; it ahead of time -- as long as we're certain that tests truly + ;; passed, hence the check for SOFT. + (when soft + (with-open-file (s #p"SYS:CONTRIB;SB-CONCURRENCY;TEST-PASSED" + :direction :output) + (dolist (pend pending) + (format s "Expected failure: ~A~%" pend)))) + (warn "ignoring expected failures in test-op")) + (unless soft + (error "test-op failed with unexpected failures"))))