From: Alastair Bridgewater Date: Thu, 20 May 2010 22:09:39 +0000 (+0000) Subject: 1.0.38.8: Test suite cleanups. X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=6e4a6b4ccbc0608f29aad507ee20a3de1356b75a;p=sbcl.git 1.0.38.8: Test suite cleanups. * Changed the impure test runner to be more in line with what used to happen when it used fork() instead of RUN-PROGRAM (--noprint and --disable-debugger, don't allow RUN-PROGRAM to use the inherit-stdin code path). * Re-enabled the (RUN-PROGRAM INHERIT-STDIN) test, as it no longer hangs on ppc/linux, x86-64/linux, or x86-64/darwin, the platforms which prompted the test to be disabled. * Fixed the failure mode of dynamic-extent.impure.lisp test case HANDLER-CASE-BOGUS-COMPILER-NOTE to fail the test case instead of attempting to enter the debugger (due to COMPILER-NOTE not being a subclass of ERROR). * Disabled the x86-64 SSE floating-point tests on non-x86oid platforms due to the use of x86oid-only SB-VM::TOUCH-OBJECT in the test code causing a package lock error. * Registered all tests that fail on PPC/Linux as :fails-on :ppc. * Removed a number of :fails-on clauses that appear to be out of date. --- diff --git a/tests/debug.impure.lisp b/tests/debug.impure.lisp index 8ba4e91..67303cc 100644 --- a/tests/debug.impure.lisp +++ b/tests/debug.impure.lisp @@ -165,7 +165,7 @@ ;; 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* @@ -207,13 +207,6 @@ (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)) diff --git a/tests/dynamic-extent.impure.lisp b/tests/dynamic-extent.impure.lisp index 3bc2318..75b4cb1 100644 --- a/tests/dynamic-extent.impure.lisp +++ b/tests/dynamic-extent.impure.lisp @@ -540,7 +540,7 @@ (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))) @@ -756,8 +756,10 @@ (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 @@ -787,7 +789,7 @@ 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) @@ -844,7 +846,7 @@ (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 @@ -862,7 +864,7 @@ (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)))) diff --git a/tests/float.pure.lisp b/tests/float.pure.lisp index eb1d5bc..0fcf284 100644 --- a/tests/float.pure.lisp +++ b/tests/float.pure.lisp @@ -288,6 +288,7 @@ ;; 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." diff --git a/tests/run-program.impure.lisp b/tests/run-program.impure.lisp index 29fbd72..f02cfa0 100644 --- a/tests/run-program.impure.lisp +++ b/tests/run-program.impure.lisp @@ -153,9 +153,7 @@ ;; 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) diff --git a/tests/run-tests.lisp b/tests/run-tests.lisp index 67ba274..d2942b1 100644 --- a/tests/run-tests.lisp +++ b/tests/run-tests.lisp @@ -81,18 +81,21 @@ ;; 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 diff --git a/version.lisp-expr b/version.lisp-expr index 26ef870..a8abec0 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; 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"