X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Finterface.pure.lisp;h=1e76ccd3cff49094bc1e3662f8073a7d7c7e061a;hb=171fde84561e232b8af8c05b82dfe8a8f9e08340;hp=7c600c6d41fd10bdc9155394c8c711ce25af42a0;hpb=4c81c652cdc32faefee1bccb84c3c9a7854e3edd;p=sbcl.git diff --git a/tests/interface.pure.lisp b/tests/interface.pure.lisp index 7c600c6..1e76ccd 100644 --- a/tests/interface.pure.lisp +++ b/tests/interface.pure.lisp @@ -12,6 +12,10 @@ ;;;; more information. (in-package :cl-user) + +(load "test-util.lisp") +(load "compiler-test-util.lisp") +(use-package :test-util) ;;;; properties of symbols, e.g. presence of doc strings for public symbols @@ -63,6 +67,10 @@ (sleep 2) (sleep 2)))) +;;; SLEEP should not cons +(with-test (:name (sleep :non-consing) :fails-on '(not :x86-64)) + (ctu:assert-no-consing (sleep 0.00001))) + ;;; 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) @@ -116,3 +124,14 @@ (loop repeat 2 do (compile nil '(lambda (x) x)) do (sb-ext:gc :full t)) + +;;; On x86-64, the instruction definitions for CMP*[PS][SD] were broken +;;; so that the disassembler threw an error when they were used with +;;; one operand in memory. +(with-test (:name :bug-814702) + (disassemble (lambda (x) + (= #C(2.0f0 3.0f0) + (the (complex single-float) x)))) + (disassemble (lambda (x y) + (= (the (complex single-float) x) + (the (complex single-float) y)))))