X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fstep.impure.lisp;h=9b48dc2214b7c044a3a20409cbaf84cc7493a1b2;hb=a189a69454ef7635149319ae213b337f17c50d20;hp=ef42033bb0bd779c931277857a2d6fc43e4c7ed3;hpb=fa3c9667a90083de646dcf5b20760b02d39f18c5;p=sbcl.git diff --git a/tests/step.impure.lisp b/tests/step.impure.lisp index ef42033..9b48dc2 100644 --- a/tests/step.impure.lisp +++ b/tests/step.impure.lisp @@ -15,7 +15,7 @@ ;; No stepper support on some platforms. #-(or x86 x86-64 ppc sparc mips) -(sb-ext:quit :unix-status 104) +(sb-ext:exit :code 104) (defun fib (x) (declare (optimize debug)) @@ -52,21 +52,35 @@ (defun test-step-into () (let* ((results nil) - (expected '(("(< X 2)" :unknown) - ("(- X 1)" :unknown) - ("(FIB (1- X))" (2)) - ("(< X 2)" :unknown) - ("(- X 1)" :unknown) - ("(FIB (1- X))" (1)) - ("(< X 2)" :unknown) - ("(- X 2)" :unknown) - ("(FIB (- X 2))" (0)) - ("(< X 2)" :unknown) - ("(+ (FIB (1- X)) (FIB (- X 2)))" :unknown) - ("(- X 2)" :unknown) - ("(FIB (- X 2))" (1)) - ("(< X 2)" :unknown) - ("(+ (FIB (1- X)) (FIB (- X 2)))" :unknown))) + ;; The generic-< VOP on x86oids doesn't emit a full call + (expected + #-(or x86 x86-64) + '(("(< X 2)" :unknown) + ("(- X 1)" :unknown) + ("(FIB (1- X))" (2)) + ("(< X 2)" :unknown) + ("(- X 1)" :unknown) + ("(FIB (1- X))" (1)) + ("(< X 2)" :unknown) + ("(- X 2)" :unknown) + ("(FIB (- X 2))" (0)) + ("(< X 2)" :unknown) + ("(+ (FIB (1- X)) (FIB (- X 2)))" :unknown) + ("(- X 2)" :unknown) + ("(FIB (- X 2))" (1)) + ("(< X 2)" :unknown) + ("(+ (FIB (1- X)) (FIB (- X 2)))" :unknown)) + #+(or x86 x86-64) + '(("(- X 1)" :unknown) + ("(FIB (1- X))" (2)) + ("(- X 1)" :unknown) + ("(FIB (1- X))" (1)) + ("(- X 2)" :unknown) + ("(FIB (- X 2))" (0)) + ("(+ (FIB (1- X)) (FIB (- X 2)))" :unknown) + ("(- X 2)" :unknown) + ("(FIB (- X 2))" (1)) + ("(+ (FIB (1- X)) (FIB (- X 2)))" :unknown))) (*stepper-hook* (lambda (condition) (typecase condition (step-form-condition @@ -79,18 +93,31 @@ (defun test-step-next () (let* ((results nil) - (expected '(("(< X 2)" :unknown) - ("(- X 1)" :unknown) - ("(FIB (1- X))" (2)) - ("(< X 2)" :unknown) - ("(- X 1)" :unknown) - ("(FIB (1- X))" (1)) - ("(- X 2)" :unknown) - ("(FIB (- X 2))" (0)) - ("(+ (FIB (1- X)) (FIB (- X 2)))" :unknown) - ("(- X 2)" :unknown) - ("(FIB (- X 2))" (1)) - ("(+ (FIB (1- X)) (FIB (- X 2)))" :unknown))) + (expected + #-(or x86 x86-64) + '(("(< X 2)" :unknown) + ("(- X 1)" :unknown) + ("(FIB (1- X))" (2)) + ("(< X 2)" :unknown) + ("(- X 1)" :unknown) + ("(FIB (1- X))" (1)) + ("(- X 2)" :unknown) + ("(FIB (- X 2))" (0)) + ("(+ (FIB (1- X)) (FIB (- X 2)))" :unknown) + ("(- X 2)" :unknown) + ("(FIB (- X 2))" (1)) + ("(+ (FIB (1- X)) (FIB (- X 2)))" :unknown)) + #+(or x86 x86-64) + '(("(- X 1)" :unknown) + ("(FIB (1- X))" (2)) + ("(- X 1)" :unknown) + ("(FIB (1- X))" (1)) + ("(- X 2)" :unknown) + ("(FIB (- X 2))" (0)) + ("(+ (FIB (1- X)) (FIB (- X 2)))" :unknown) + ("(- X 2)" :unknown) + ("(FIB (- X 2))" (1)) + ("(+ (FIB (1- X)) (FIB (- X 2)))" :unknown))) (count 0) (*stepper-hook* (lambda (condition) (typecase condition @@ -106,14 +133,24 @@ (defun test-step-out () (let* ((results nil) - (expected '(("(< X 2)" :unknown) - ("(- X 1)" :unknown) - ("(FIB (1- X))" (2)) - ("(< X 2)" :unknown) - ("(- X 2)" :unknown) - ("(FIB (- X 2))" (1)) - ("(< X 2)" :unknown) - ("(+ (FIB (1- X)) (FIB (- X 2)))" :unknown))) + (expected + #-(or x86 x86-64) + '(("(< X 2)" :unknown) + ("(- X 1)" :unknown) + ("(FIB (1- X))" (2)) + ("(< X 2)" :unknown) + ("(- X 2)" :unknown) + ("(FIB (- X 2))" (1)) + ("(< X 2)" :unknown) + ("(+ (FIB (1- X)) (FIB (- X 2)))" :unknown)) + #+(or x86 x86-64) + '(("(- X 1)" :unknown) + ("(FIB (1- X))" (2)) + ("(- X 1)" :unknown) + ("(FIB (1- X))" (1)) + ("(- X 2)" :unknown) + ("(FIB (- X 2))" (1)) + ("(+ (FIB (1- X)) (FIB (- X 2)))" :unknown))) (count 0) (*stepper-hook* (lambda (condition) (typecase condition @@ -129,14 +166,23 @@ (defun test-step-start-from-break () (let* ((results nil) - (expected '(("(- X 2)" :unknown) - ("(FIB-BREAK (- X 2))" (0)) - ("(< X 2)" :unknown) - ("(+ (FIB-BREAK (1- X)) (FIB-BREAK (- X 2)))" :unknown) - ("(- X 2)" :unknown) - ("(FIB-BREAK (- X 2))" (1)) - ("(< X 2)" :unknown) - ("(+ (FIB-BREAK (1- X)) (FIB-BREAK (- X 2)))" :unknown))) + (expected + #-(or x86 x86-64) + '(("(- X 2)" :unknown) + ("(FIB-BREAK (- X 2))" (0)) + ("(< X 2)" :unknown) + ("(+ (FIB-BREAK (1- X)) (FIB-BREAK (- X 2)))" :unknown) + ("(- X 2)" :unknown) + ("(FIB-BREAK (- X 2))" (1)) + ("(< X 2)" :unknown) + ("(+ (FIB-BREAK (1- X)) (FIB-BREAK (- X 2)))" :unknown)) + #+(or x86 x86-64) + '(("(- X 2)" :unknown) + ("(FIB-BREAK (- X 2))" (0)) + ("(+ (FIB-BREAK (1- X)) (FIB-BREAK (- X 2)))" :unknown) + ("(- X 2)" :unknown) + ("(FIB-BREAK (- X 2))" (1)) + ("(+ (FIB-BREAK (1- X)) (FIB-BREAK (- X 2)))" :unknown))) (count 0) (*stepper-hook* (lambda (condition) (typecase condition @@ -165,7 +211,7 @@ (incf count) (invoke-restart 'step-next))))))) (step (fib 3)) - (assert (= count 6)))) + (assert (= count #-(or x86 x86-64) 6 #+(or x86 x86-64) 5)))) (defun test-step-backtrace () (let* ((*stepper-hook* (lambda (condition) @@ -225,8 +271,7 @@ (handler-bind ((step-condition #'sb-impl::invoke-stepper)) (test-step-out))) -(with-test (:name :step-start-from-break - :fails-on :mips) +(with-test (:name :step-start-from-break) (handler-bind ((step-condition #'sb-impl::invoke-stepper)) (test-step-start-from-break)))