1.0.38.8: Test suite cleanups.
authorAlastair Bridgewater <lisphacker@users.sourceforge.net>
Thu, 20 May 2010 22:09:39 +0000 (22:09 +0000)
committerAlastair Bridgewater <lisphacker@users.sourceforge.net>
Thu, 20 May 2010 22:09:39 +0000 (22:09 +0000)
  * 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.

tests/debug.impure.lisp
tests/dynamic-extent.impure.lisp
tests/float.pure.lisp
tests/run-program.impure.lisp
tests/run-tests.lisp
version.lisp-expr

index 8ba4e91..67303cc 100644 (file)
               ;; 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))
index 3bc2318..75b4cb1 100644 (file)
   (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))))
index eb1d5bc..0fcf284 100644 (file)
 ;; 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."
index 29fbd72..f02cfa0 100644 (file)
 ;; 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)
index 67ba274..d2942b1 100644 (file)
   ;; 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
index 26ef870..a8abec0 100644 (file)
@@ -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"