X-Git-Url: http://git.hcoop.net/clinton/parenscript.git/blobdiff_plain/a9dd0664c4f62832683513a7125e67d45eb61b6d..0303b5f2d97a95d7ca2b7f2443ddf64ef2d6e054:/t/test.lisp diff --git a/t/test.lisp b/t/test.lisp index b3fe0b8..ac390f5 100644 --- a/t/test.lisp +++ b/t/test.lisp @@ -1,10 +1,10 @@ -(in-package :ps-test) +(in-package "PS-TEST") (defun normalize-whitespace (str) (substitute #\Space #\Newline (substitute #\Space #\Tab str))) -(defun same-space-between-statements(code) - (let ((cl-ppcre:*use-bmh-matchers* nil)) ;; disable Booyer Moore string matching algorithm, which doesn't work very well on unicode lisps +(defun same-space-between-statements (code) + (let ((cl-ppcre:*use-bmh-matchers* nil)) (cl-ppcre:regex-replace-all "\\s*;\\s*" code "; "))) (defun remove-duplicate-spaces (str) @@ -19,7 +19,7 @@ (string-trim '(#\Space) str)) (defun remove-spaces-near-brackets (str) - (let ((cl-ppcre:*use-bmh-matchers* nil)) ;; disable Booyer Moore string matching algorithm, which doesn't work very well on unicode lisps + (let ((cl-ppcre:*use-bmh-matchers* nil)) (reduce (lambda (str rex-pair) (cl-ppcre:regex-replace-all (first rex-pair) str (second rex-pair))) (cons str '(("\\[ " "[") (" \\]" "]") ("\\( " "(") (" \\)" ")")))))) @@ -30,33 +30,11 @@ (same-space-between-statements (normalize-whitespace str)))))) -(defmacro test-ps-js (testname parenscript javascript) - (let ( - ;; (parenscript - ;; `(progn - ;; (defpackage parenscript-test - ;; (:lisp-package :parenscript-test)) - ;; ,parenscript))) - ) - `(test ,testname () - (setf js::*var-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. - (let* ((parenscript::*enable-package-system* nil) - (generated-code (compile-script ',parenscript)) - (js-code ,javascript)) - (is (string= (normalize-js-code generated-code) - (normalize-js-code js-code))))))) - -(defmacro defpstest (testname (&key (optimize t) (enable-package-system t)) parenscript javascript) - `(test ,testname - (setf parenscript::*var-counter* 0) - (let* ((parenscript::*enable-package-system* ,enable-package-system) - (generated-code (compile-script ',parenscript)) - (js-code ,javascript)) - (is (string= (normalize-js-code generated-code) - (normalize-js-code js-code)))))) +(defmacro test-ps-js (testname parenscript javascript &key (js-target-version *js-target-version*)) + `(test ,testname () + (is (string= (normalize-js-code (let ((*js-target-version* ,js-target-version)) + (ps-doc* ',parenscript))) + (normalize-js-code ,javascript))))) (defun run-tests() (format t "Running reference tests:~&") @@ -65,4 +43,3 @@ (run! 'ps-tests) (format t "Running Package System tests:~&") (run! 'package-system-tests)) -