Add test cases for non-consing WITHOUT-GCING and WITH-PINNED-OBJECTS.
[sbcl.git] / tests / interface.pure.lisp
index 7c600c6..74ce1e0 100644 (file)
 ;;;; more information.
 
 (in-package :cl-user)
+
+(load "test-util.lisp")
+(load "compiler-test-util.lisp")
+(use-package :test-util)
 \f
 ;;;; properties of symbols, e.g. presence of doc strings for public symbols
 
       (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 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)
 (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)))))