X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fwalk.impure.lisp;h=2fefd8fc9c6656723a2d7ddcdece5e2b818650b0;hb=2e52fa0553c5a256f482ee14e30608acf55e5f48;hp=2045fa02f2a8b26a52c970fe8e2606623dfe4e7e;hpb=3975b8496884b7f3672ef6772a957123568466d1;p=sbcl.git diff --git a/tests/walk.impure.lisp b/tests/walk.impure.lisp index 2045fa0..2fefd8f 100644 --- a/tests/walk.impure.lisp +++ b/tests/walk.impure.lisp @@ -32,11 +32,16 @@ (defun string-modulo-tabspace (s) (remove-if (lambda (c) (or (char= c #\space) - (char= c #\tab))) + (char= c #\tab) + (char= c #\newline))) s)) (defun string=-modulo-tabspace (x y) - (string= (string-modulo-tabspace x) - (string-modulo-tabspace y))) + (if (string= (string-modulo-tabspace x) + (string-modulo-tabspace y)) + t + (progn + (print (list :want y :got x)) + nil))) ;;;; tests based on stuff at the end of the original CMU CL ;;;; pcl/walk.lisp file @@ -343,7 +348,7 @@ Form: (TAGBODY) Context: EVAL C) Context: EVAL Form: (FOO A) Context: EVAL Form: 'GLOBAL-FOO Context: EVAL -Form: B Context: EVAL; lexically bound +Form: B Context: EVAL; lexically bound; declared special Form: C Context: EVAL; lexically bound (LET (A B C) (DECLARE (SPECIAL A B)) @@ -470,7 +475,7 @@ Form: B Context: EVAL; lexically bound Form: (FOO A B) Context: EVAL Form: 'GLOBAL-FOO Context: EVAL Form: (LIST A B) Context: EVAL -Form: A Context: EVAL; lexically bound +Form: A Context: EVAL; lexically bound; declared special Form: B Context: EVAL; lexically bound (MULTIPLE-VALUE-BIND (A B) (FOO A B) (DECLARE (SPECIAL A)) (LIST A B))")) @@ -579,30 +584,34 @@ Form: A Context: EVAL Form: B Context: EVAL Form: (LIST A B C) Context: EVAL Form: A Context: EVAL; lexically bound; declared special -Form: B Context: EVAL; lexically bound +Form: B Context: EVAL; lexically bound; declared special Form: C Context: EVAL; lexically bound (LET ((A A) (B A) (C B)) (DECLARE (SPECIAL A B)) (LIST A B C))")) -(assert (string=-modulo-tabspace +;;;; Bug in LET* walking! +(test-util:with-test (:name (:walk-let* :hairy-specials) + :fails-on :sbcl) + (assert + (string=-modulo-tabspace (with-output-to-string (*standard-output*) (take-it-out-for-a-test-walk (let* ((a a) (b a) (c b)) (declare (special a b)) (list a b c)))) "Form: (LET* ((A A) (B A) (C B)) - (DECLARE (SPECIAL A B)) - (LIST A B C)) Context: EVAL -Form: A Context: EVAL -Form: A Context: EVAL; lexically bound -Form: B Context: EVAL; lexically bound -Form: (LIST A B C) Context: EVAL -Form: A Context: EVAL; lexically bound; declared special -Form: B Context: EVAL; lexically bound -Form: C Context: EVAL; lexically bound -(LET* ((A A) (B A) (C B)) - (DECLARE (SPECIAL A B)) - (LIST A B C))")) + (DECLARE (SPECIAL A B)) + (LIST A B C)) Context: EVAL + Form: A Context: EVAL + Form: A Context: EVAL; lexically bound; declared special + Form: B Context: EVAL; lexically bound; declared special + Form: (LIST A B C) Context: EVAL + Form: A Context: EVAL; lexically bound; declared special + Form: B Context: EVAL; lexically bound; declared special + Form: C Context: EVAL; lexically bound + (LET* ((A A) (B A) (C B)) + (DECLARE (SPECIAL A B)) + (LIST A B C))"))) (assert (string=-modulo-tabspace (with-output-to-string (*standard-output*)