-(let ((out (with-output-to-string (*trace-output*)
- (trace trace-this :encapsulate nil)
- (assert (eq 'ok (trace-this)))
- (untrace))))
- (assert (search "TRACE-THIS" out))
- (assert (search "returned OK" out)))
+;;; 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 x86-64) darwin)
+(with-test (:name (trace :encapsulate nil)
+ :fails-on '(or :ppc :sparc :mips))
+ (let ((out (with-output-to-string (*trace-output*)
+ (trace trace-this :encapsulate nil)
+ (assert (eq 'ok (trace-this)))
+ (untrace))))
+ (assert (search "TRACE-THIS" out))
+ (assert (search "returned OK" out))))
+
+#-(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*)
+ (trace trace-fact :encapsulate nil)
+ (assert (= 120 (trace-fact 5)))
+ (untrace))))
+ (assert (search "TRACE-FACT" out))
+ (assert (search "returned 1" out))
+ (assert (search "returned 120" out))))
+
+(with-test (:name :bug-414)
+ (handler-bind ((warning #'error))
+ (load (compile-file "bug-414.lisp"))
+ (disassemble 'bug-414)))