1.0.6.18: Two fixes from Eric Marsden
[sbcl.git] / tests / debug.impure.lisp
index ea5d8b7..2fdda62 100644 (file)
 
                         ;; Make sure the backtrace isn't stunted in
                         ;; any way.  (Depends on running in the main
-                        ;; thread.)
-                        (let ((end (last backtrace 2)))
+                        ;; thread.) FIXME: On Windows we get two
+                        ;; extra foreign frames below regular frames.
+                        (let ((end (last backtrace #-win32 2 #+win32 4)))
                           (unless (equal (caar end)
-                                         (if *show-entry-point-details*
-                                             '(sb-c::tl-xep sb-impl::toplevel-init)
-                                             'sb-impl::toplevel-init))
+                                         'sb-impl::toplevel-init)
                             (print (list :backtrace-stunted (caar end)))
                             (setf result nil)))
                         (return-from outer-handler)))))
          (funcall fun)))
 
   (with-test (:name (:undefined-function :bug-346)
-              :fails-on '(or :alpha))   ; bug 346
+              :fails-on '(or :alpha (and :x86-64 :freebsd))) ; bug 346
     (assert (verify-backtrace
              (lambda () (test #'optimized))
              (list *undefined-function-frame*
                    (list '(flet not-optimized))
                    (list '(flet test) #'not-optimized))))))
 
-;;; Division by zero was a common error on PPC.  It depended on the
+;;; Division by zero was a common error on PPC. It depended on the
 ;;; return function either being before INTEGER-/-INTEGER in memory,
-;;; or more than MOST-POSITIVE-FIXNUM bytes ahead.  It also depends on
-;;; INTEGER-/-INTEGER calling SIGNED-TRUNCATE.  I believe Raymond Toy
+;;; or more than MOST-POSITIVE-FIXNUM bytes ahead. It also depends on
+;;; INTEGER-/-INTEGER calling SIGNED-TRUNCATE. I believe Raymond Toy
 ;;; says that the Sparc backend (at least for CMUCL) inlines this, so
 ;;; if SBCL does the same this test is probably not good for the
 ;;; Sparc.
 
 (with-test (:name (:throw :no-such-tag)
             :fails-on '(or
-                        (and :x86 (or :linux :freebsd sunos))
+                        (and :x86 (or :sunos))
                         :alpha
                         :mips))
   (progn
 
 ;;; FIXME: This test really should be broken into smaller pieces
 (with-test (:name (:backtrace :misc)
-            :fails-on '(and :x86 (or :linux :sunos)))
+            :fails-on '(and :x86 (or :sunos)))
   (macrolet ((with-details (bool &body body)
                `(let ((sb-debug:*show-entry-point-details* ,bool))
                  ,@body)))
 ;;; This is not a WITH-TEST :FAILS-ON PPC DARWIN since there are
 ;;; suspicions that the breakpoint trace might corrupt the whole image
 ;;; on that platform.
-#-(and (or ppc x86) darwin)
+#-(and (or ppc x86 x86-64) darwin)
 (with-test (:name (trace :encapsulate nil)
             :fails-on '(or :ppc :sparc :mips))
   (let ((out (with-output-to-string (*trace-output*)
     (assert (search "TRACE-THIS" out))
     (assert (search "returned OK" out))))
 
-#-(and (or ppc x86) darwin)
+#-(and (or ppc x86 x86-64) darwin)
 (with-test (:name (trace-recursive :encapsulate nil)
             :fails-on '(or :ppc :sparc :mips))
   (let ((out (with-output-to-string (*trace-output*)
   (loop while (sb-thread:thread-alive-p thread)))
 
 (disable-debugger)
+
+(write-line "/debug.impure.lisp done")