X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-concurrency%2Fsb-concurrency.asd;h=913f078db7f48bb41a7b0bec2e80aa114fa604a0;hb=5a2409dcbad2b0e1852f0835eae2b7c845793478;hp=b692132008d060cf74c1d3e0c82b6b125dfae83e;hpb=e034d6a8d034a3f8ca755bf89fae850f6387c505;p=sbcl.git diff --git a/contrib/sb-concurrency/sb-concurrency.asd b/contrib/sb-concurrency/sb-concurrency.asd index b692132..913f078 100644 --- a/contrib/sb-concurrency/sb-concurrency.asd +++ b/contrib/sb-concurrency/sb-concurrency.asd @@ -13,6 +13,7 @@ (asdf:defsystem :sb-concurrency :components ((:file "package") + (:file "frlock" :depends-on ("package")) (:file "queue" :depends-on ("package")) (:file "mailbox" :depends-on ("package" "queue")) (:file "gate" :depends-on ("package")))) @@ -24,6 +25,7 @@ :components ((:file "package") (:file "test-utils" :depends-on ("package")) + (:file "test-frlock" :depends-on ("package" "test-utils")) (:file "test-queue" :depends-on ("package" "test-utils")) (:file "test-mailbox" :depends-on ("package" "test-utils")) (:file "test-gate" :depends-on ("package" "test-utils")))))) @@ -39,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"))))