X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=inline;f=tests%2Finterface.pure.lisp;h=2612bf38604fb2b167bdc3a6eba72731490b0b98;hb=5fca28334e00c7e1ad159924ac2db4a3e1c9e354;hp=8a4d2fd90dfc63b80bec4e39c9140222a26abb32;hpb=13909586f2c9f3397c3a276c7b6f92d62089f9e2;p=sbcl.git diff --git a/tests/interface.pure.lisp b/tests/interface.pure.lisp index 8a4d2fd..2612bf3 100644 --- a/tests/interface.pure.lisp +++ b/tests/interface.pure.lisp @@ -67,13 +67,28 @@ (sleep 2) (sleep 2)))) -;;; SLEEP should not cons -(with-test (:name (sleep :non-consing) :fails-on '(or (not :x86-64) :win32)) - (ctu:assert-no-consing (sleep 0.00001))) +;;; SLEEP should not cons except on 32-bit platforms when +;;; (> (mod seconds 1) (* most-positive-fixnum 1e-9)) +(with-test (:name (sleep :non-consing) :fails-on :win32) + (ctu:assert-no-consing (sleep 0.00001s0)) + (locally (declare (notinline sleep)) + (ctu:assert-no-consing (sleep 0.00001s0)) + (ctu:assert-no-consing (sleep 0.00001d0)) + (ctu:assert-no-consing (sleep 1/100000003)))) + +;;; Changes to make SLEEP cons less led to SLEEP +;;; not sleeping at all on 32-bit platforms when +;;; (> (mod seconds 1) (* most-positive-fixnum 1e-9)). +(with-test (:name :bug-1194673) + (assert (eq :timeout + (handler-case + (with-timeout 0.01 + (sleep 0.6)) + (timeout () + :timeout))))) -;;; SLEEP should work with large integers as well -- no timers -;;; on win32, so don't test there. -(with-test (:name (sleep pretty-much-forever) :skipped-on :win32) +;;; SLEEP should work with large integers as well +(with-test (:name (sleep pretty-much-forever)) (assert (eq :timeout (handler-case (sb-ext:with-timeout 1