Skip to content

Commit

Permalink
Forcibly fail frlock.1 on Windows by means of a timeout
Browse files Browse the repository at this point in the history
Presumably due to windows sb-thread bugs, this test often hangs on
Windows.  For now, establish a timeout, and mark the test as a known
failure on this platform.
  • Loading branch information
lichtblau committed Nov 13, 2012
1 parent ed1910e commit 695bb17
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 4 deletions.
19 changes: 17 additions & 2 deletions contrib/sb-concurrency/sb-concurrency.asd
Expand Up @@ -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"))))
13 changes: 11 additions & 2 deletions contrib/sb-concurrency/tests/test-frlock.lisp
Expand Up @@ -11,6 +11,12 @@

(in-package :sb-concurrency-test)

(defmacro deftest* ((name &key fails-on) form &rest results)
`(progn
(when (sb-impl::featurep ',fails-on)
(pushnew ',name sb-rt::*expected-failures*))
(deftest ,name ,form ,@results)))

(defun test-frlocks (&key (reader-count 100) (read-count 1000000)
(outer-read-pause 0) (inner-read-pause 0)
(writer-count 10) (write-count 10000)
Expand Down Expand Up @@ -73,7 +79,10 @@
nil))))
(values (cdr w-e!) (cdr r-e!))))

(deftest frlock.1
(test-frlocks)
(deftest* (frlock.1 :fails-on :win32)
(handler-case
(sb-ext:with-timeout 60 (test-frlocks))
(sb-ext:timeout (c)
(error "~A" c)))
nil
nil)

0 comments on commit 695bb17

Please sign in to comment.