;;;; 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
(assert (not (special-operator-p 'declare)))
;;; WITH-TIMEOUT should accept more than one form in its body.
-(with-test (:name :with-timeout-forms)
+(with-test (:name :with-timeout-forms :fails-on :win32)
(handler-bind ((sb-ext:timeout #'continue))
(sb-ext:with-timeout 3
(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)
(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)))))