From 07afea3890beb0df5d2a64cbf377b5a32e1aebbf Mon Sep 17 00:00:00 2001 From: Vladimir Sedach Date: Sun, 12 Aug 2007 01:23:49 +0000 Subject: [PATCH] Modified ParenScript tests to reflect the big compiler refactoring. --- t/ps-tests.lisp | 53 ++++++++++++++++++++++++++++-------------- t/reference-tests.lisp | 32 ++++++++----------------- t/test.lisp | 4 ++-- 3 files changed, 47 insertions(+), 42 deletions(-) diff --git a/t/ps-tests.lisp b/t/ps-tests.lisp index edaedc0..d35d155 100644 --- a/t/ps-tests.lisp +++ b/t/ps-tests.lisp @@ -92,20 +92,17 @@ x = 2 + sideEffect() + x + 5;") (test-ps-js simple-slot-value (let ((foo (create :a 1))) (alert (slot-value foo 'a))) - "{ - var foo = { a : 1 }; - alert(foo.a); - }") + "var foo = { a : 1 }; + alert(foo.a);") (test-ps-js buggy-slot-value (let ((foo (create :a 1)) (slot-name "a")) (alert (slot-value foo slot-name))) - "{ - var foo = { a : 1 }; + " var foo = { a : 1 }; var slotName = 'a'; alert(foo[slotName]); - }"); Last line was alert(foo.slotName) before bug-fix. + "); Last line was alert(foo.slotName) before bug-fix. (test-ps-js buggy-slot-value-two (slot-value foo (get-slot-name)) @@ -185,10 +182,8 @@ x = 2 + sideEffect() + x + 5;") ("uABCD" . ,(code-char #xabcd)))));; Really above ascii. (loop for (js-escape . lisp-char) in escapes for generated = (compile-script `(let ((x ,(format nil "hello~ahi" lisp-char))))) - for wanted = (format nil "{ - var x = 'hello\\~ahi'; -}" js-escape) - do (is (string= generated wanted))))) + for wanted = (format nil "var x = 'hello\\~ahi';" js-escape) + do (is (string= (normalize-js-code generated) wanted))))) (test-ps-js complicated-symbol-name1 grid-rows[foo].bar @@ -211,10 +206,10 @@ x = 2 + sideEffect() + x + 5;") "(!zoo ? foo : bar).x") (test script-star-eval1 - (is (string= "x = 1; y = 2;" (normalize-js-code (script* '(setf x 1) '(setf y 2)))))) + (is (string= "x = 1; y = 2;" (normalize-js-code (ps* '(setf x 1) '(setf y 2)))))) (test script-star-eval2 - (is (string= "x = 1;" (normalize-js-code (script* '(setf x 1)))))) + (is (string= "x = 1;" (normalize-js-code (ps* '(setf x 1)))))) (test-ps-js slot-value-null1 (slot-value foo nil) @@ -238,8 +233,8 @@ x = 2 + sideEffect() + x + 5;") (test defsetf1 (ps (defsetf baz (x y) (newval) `(set-baz ,x ,y ,newval))) - (is (string= "var PS_GS_2 = 1; var PS_GS_3 = 2; var PS_GS_1 = 3; setBaz(PS_GS_2, PS_GS_3, PS_GS_1);" - (normalize-js-code (let ((ps::*gen-script-name-counter* 0)) + (is (string= "var _js2 = 1; var _js3 = 2; var _js1 = 3; setBaz(_js2, _js3, _js1);" + (normalize-js-code (let ((ps:*ps-gensym-counter* 0)) (ps (setf (baz 1 2) 3))))))) (test defsetf-short @@ -250,8 +245,8 @@ x = 2 + sideEffect() + x + 5;") (is (and (string= (normalize-js-code (ps:ps (defun (setf some-thing) (new-val i1 i2) (setf (aref *some-thing* i1 i2) new-val)))) "null; function __setf_someThing(newVal, i1, i2) { SOMETHING[i1][i2] = newVal; };") - (string= (let ((ps::*gen-script-name-counter* 0)) (normalize-js-code (ps:ps (setf (some-thing 1 2) "foo")))) - "var PS_GS_2 = 1; var PS_GS_3 = 2; var PS_GS_1 = 'foo'; __setf_someThing(PS_GS_1, PS_GS_2, PS_GS_3);")))) + (string= (let ((ps:*ps-gensym-counter* 0)) (normalize-js-code (ps:ps (setf (some-thing 1 2) "foo")))) + "var _js2 = 1; var _js3 = 2; var _js1 = 'foo'; __setf_someThing(_js1, _js2, _js3);")))) (test-ps-js defun-optional1 (defun test-opt (&optional x) (return (if x "yes" "no"))) @@ -268,4 +263,26 @@ x = 2 + sideEffect() + x + 5;") (do-set-timeout (10) (alert "foo")) "setTimeout (function () { alert('foo'); }, 10)") - \ No newline at end of file +(test-ps-js operator-precedence + (* 3 (+ 4 5) 6) + "3 * (4 + 5) * 6") + +(test-ps-js incf1 + (incf foo bar) + "foo += bar") + +(test-ps-js decf1 + (decf foo bar) + "foo -= bar") + +(test-ps-js setf-conditional + (setf foo (if x 1 2)) + "foo = x ? 1 : 2;") + +(test-ps-js obj-literal-numbers + (create 1 "foo") + "{ 1 : 'foo' }") + +(test-ps-js obj-literal-strings + (create "foo" 2) + "{ 'foo' : 2 }") \ No newline at end of file diff --git a/t/reference-tests.lisp b/t/reference-tests.lisp index eba1829..d2885cf 100644 --- a/t/reference-tests.lisp +++ b/t/reference-tests.lisp @@ -197,34 +197,26 @@ "1 * (2 + 3 + 4) * 4 * (6 / 7)") (test-ps-js operator-expressions-6 - (++ i) - "i++") - -(test-ps-js operator-expressions-7 - (-- i) - "i--") - -(test-ps-js operator-expressions-8 (incf i) "++i") -(test-ps-js operator-expressions-9 +(test-ps-js operator-expressions-7 (decf i) "--i") -(test-ps-js operator-expressions-10 +(test-ps-js operator-expressions-8 (1- i) "i - 1") -(test-ps-js operator-expressions-11 +(test-ps-js operator-expressions-9 (1+ i) "i + 1") -(test-ps-js operator-expressions-12 +(test-ps-js operator-expressions-10 (not (< i 2)) "i >= 2") -(test-ps-js operator-expressions-13 +(test-ps-js operator-expressions-11 (not (eql i 2)) "i != 2") @@ -380,14 +372,12 @@ x = a + b + c;") (test-ps-js iteration-constructs-3 (dolist (l blorg) (document.write (+ "L is " l))) - "{ - var tmpArr1 = blorg; + " var tmpArr1 = blorg; for (var tmpI2 = 0; tmpI2 < tmpArr1.length; tmpI2 = tmpI2 + 1) { var l = tmpArr1[tmpI2]; document.write('L is ' + l); - }; -}") + };") (test-ps-js iteration-constructs-4 (doeach (i object) @@ -463,7 +453,7 @@ x = a + b + c;") (test-ps-js the-html-generator-3 (document.write (html ((:a :href "#" - :onclick (js-inline (transport))) "link"))) + :onclick (ps-inline (transport))) "link"))) "document.write ('link')") @@ -473,14 +463,12 @@ x = a + b + c;") (setf element.inner-h-t-m-l (html ((:textarea (or disabled (not authorized)) :disabled "disabled") "Edit me")))) - " { - var disabled = null; + " var disabled = null; var authorized = true; element.innerHTML = 'Edit me'; - }") + + '>Edit me';") (test-ps-js the-html-generator-5 (css-inline :color "red" diff --git a/t/test.lisp b/t/test.lisp index ca3b291..ce0894e 100644 --- a/t/test.lisp +++ b/t/test.lisp @@ -39,7 +39,7 @@ ;; ,parenscript))) ) `(test ,testname () - (setf js::*var-counter* 0) + (setf ps:*ps-gensym-counter* 0) ;; is-macro expands its argument again when reporting failures, so ;; the reported temporary js-variables get wrong if we don't evalute first. @@ -50,7 +50,7 @@ (defmacro defpstest (testname (&key (optimize t)) parenscript javascript) `(test ,testname - (setf parenscript::*var-counter* 0) + (setf ps:*ps-gensym-counter* 0) (let* ((generated-code (compile-script ',parenscript)) (js-code ,javascript)) (is (string= (normalize-js-code generated-code) -- 2.20.1