;; the presence of the IR1 stepper instrumentation (and
;; is thus again failing now that the instrumentation is
;; no more).
- :fails-on '(or :x86 :x86-64 :alpha :mips :ppc))
+ :fails-on '(or :alpha :mips :ppc))
(assert (verify-backtrace
(lambda () (test #'not-optimized))
(list *undefined-function-frame*
(with-test (:name (:throw :no-such-tag)
:fails-on '(or
- (and :x86 :openbsd)
- (and :x86 :sunos)
- (and :x86 :darwin)
- (and :x86 :linux)
- (and :x86-64 :darwin)
- (and :x86-64 :linux)
- (and :x86-64 :openbsd)
(and :sparc :linux)
:alpha
:mips))
(assert-no-consing (vector-on-stack :x :y)))
#+raw-instance-init-vops
-(with-test (:name (:no-consing :dx-raw-instances))
+(with-test (:name (:no-consing :dx-raw-instances) :fails-on :ppc)
(let (a b)
(setf a 1.24 b 1.23d0)
(assert-no-consing (make-foo2-on-stack a b)))
(with-test (:name :length-and-words-packed-in-same-tn)
(assert (= 1 (length-and-words-packed-in-same-tn -3))))
-(with-test (:name :handler-case-bogus-compiler-note)
- (handler-bind ((compiler-note #'error))
+(with-test (:name :handler-case-bogus-compiler-note :fails-on :ppc)
+ (handler-bind
+ ((compiler-note (lambda (note)
+ (error "compiler issued note ~S during test" note))))
;; Taken from SWANK, used to signal a bogus stack allocation
;; failure note.
(compile nil
v))
(defun barvector (x y z)
(make-array 3 :initial-contents (list x y z)))
-(with-test (:name :dx-compiler-notes)
+(with-test (:name :dx-compiler-notes :fails-on :ppc)
(flet ((assert-notes (j lambda)
(let ((n 0))
(handler-bind ((compiler-note (lambda (c)
(if sp
(assert (= sp (sb-c::%primitive sb-c:current-stack-pointer)))
(setf sp (sb-c::%primitive sb-c:current-stack-pointer))))))
-(with-test (:name :handler-case-eating-stack)
+(with-test (:name :handler-case-eating-stack :fails-on :ppc)
(assert-no-consing (handler-case-eating-stack)))
;;; A nasty bug where RECHECK-DYNAMIC-EXTENT-LVARS thought something was going
(let ((vec (vec (aref vec 0) (aref vec 1) (aref vec 2))))
(declare (dynamic-extent vec))
(funcall fun vec))))
-(with-test (:name :recheck-nested-dx-bug)
+(with-test (:name :recheck-nested-dx-bug :fails-on :ppc)
(assert (funcall (bad-boy (vec 1.0 2.0 3.3))
(lambda (vec) (equalp vec (vec 1.0 2.0 3.3)))))
(flet ((foo (x) (declare (ignore x))))
;; The tests are extremely brittle and could be broken by any number of
;; back- or front-end optimisations. We should just keep the issue above
;; in mind at all times when working with SSE or similar instruction sets.
+#+(or x86 x86-64) ;; No other platforms have SB-VM::TOUCH-OBJECT.
(macrolet ((with-pinned-floats ((count type &rest names) &body body)
"Force COUNT float values to be kept live (and hopefully in registers),
fill a temporary register with noise, and execute BODY."
;; We can't check for the signal itself since run-program.c resets the
;; forked process' signal mask to defaults. But the default is `stop'
;; of which we can be notified asynchronously by providing a status hook.
-(with-test (:name (:run-program :inherit-stdin)
- :fails-on :sbcl)
- (error "Hangs at least on threaded Darwin and threaded x86-64/Linux.")
+(with-test (:name (:run-program :inherit-stdin))
(let (stopped)
(flet ((status-hook (proc)
(case (sb-ext:process-status proc)
;; We used to fork() for POSIX platforms, and use this for Windows.
;; However, it seems better to use the same solution everywhere.
(process-exit-code
- (sb-ext:run-program
- (first *POSIX-ARGV*)
- (append
- (list "--core" SB-INT:*CORE-STRING*
- "--noinform"
- "--no-sysinit"
- "--no-userinit")
- (loop for form in (append load-forms forms)
- collect "--eval"
- collect (write-to-string form)))
- :output sb-sys:*stdout*
- :input sb-sys:*stdin*)))
+ (#-win32 with-open-file #-win32 (devnull "/dev/null") #+win32 progn
+ (sb-ext:run-program
+ (first *POSIX-ARGV*)
+ (append
+ (list "--core" SB-INT:*CORE-STRING*
+ "--noinform"
+ "--no-sysinit"
+ "--no-userinit"
+ "--noprint"
+ "--disable-debugger")
+ (loop for form in (append load-forms forms)
+ collect "--eval"
+ collect (write-to-string form)))
+ :output sb-sys:*stdout*
+ :input #-win32 devnull #+win32 sb-sys:*stdin*))))
(defun run-impure-in-child-sbcl (test-file test-code)
(run-in-child-sbcl
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.38.7"
+"1.0.38.8"