Forcibly fail frlock.1 on Windows by means of a timeout
[sbcl.git] / contrib / sb-concurrency / sb-concurrency.asd
index ba901c8..913f078 100644 (file)
 
 (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"))))