Skip to content
Snippets Groups Projects
Commit 1f037a6d authored by pfdietz's avatar pfdietz
Browse files

Order of eval tests

parent 50a61794
No related branches found
No related tags found
No related merge requests found
...@@ -86,6 +86,54 @@ ...@@ -86,6 +86,54 @@
fn) fn)
nil) nil)
(deftest macro-function.12
(let ((sym (gensym)))
(eval `(defmacro ,sym () t))
(let ((i 0))
(values
(funcall (macro-function (progn (incf i) sym)) (list sym) nil)
i)))
t 1)
(deftest macro-function.13
(let ((sym (gensym)))
(eval `(defmacro ,sym () t))
(let ((i 0) a b)
(values
(funcall (macro-function (progn (setf a (incf i)) sym)
(progn (setf b (incf i)) nil))
(list sym) nil)
i a b)))
t 2 1 2)
(deftest macro-function.14
(let ((sym (gensym))
(i 0))
(setf (macro-function (progn (incf i) sym)) (macro-function 'pop))
(values
(eval `(let ((x '(a b c)))
(list
(,sym x)
x)))
i))
(a (b c)) 1)
(deftest macro-function.15
(let ((sym (gensym))
(i 0) a b)
(setf (macro-function (progn (setf a (incf i)) sym)
(progn (setf b (incf i)) nil))
(macro-function 'pop))
(values
(eval `(let ((x '(a b c)))
(list
(,sym x)
x)))
i a b))
(a (b c)) 2 1 2)
;;; Error tests ;;; Error tests
(deftest macro-function.error.1 (deftest macro-function.error.1
......
...@@ -16,32 +16,49 @@ ...@@ -16,32 +16,49 @@
;;; Non-error tests ;;; Non-error tests
(deftest macroexpand-1.1 (deftest macroexpand-1.1
(loop for x in *universe* (let (vals)
unless (or (symbolp x) (loop for x in *universe*
(consp x) unless (or (symbolp x)
(eql (macroexpand-1 x) x)) (consp x)
collect (list x (macroexpand-1 x))) (progn
(setq vals (multiple-value-list (macroexpand-1 x)))
(and (= (length vals) 2)
(eql (car vals) x)
(null (cadr vals)))))
collect (cons x vals)))
nil) nil)
(deftest macroexpand-1.2 (deftest macroexpand-1.2
(loop for x in *universe* (let (vals)
unless (or (symbolp x) (loop for x in *universe*
(consp x) unless (or (symbolp x)
(eql (macroexpand-1 x nil) x)) (consp x)
collect (list x (macroexpand-1 x nil))) (progn
(setq vals (multiple-value-list (macroexpand-1 x nil)))
(and (= (length vals) 2)
(eql (car vals) x)
(null (cadr vals)))))
collect (cons x vals)))
nil) nil)
(deftest macroexpand-1.3 (deftest macroexpand-1.3
(macrolet ((%m (&environment env) (macrolet
`(quote ((%m (&environment env)
,(loop for x in *universe* `(quote
unless (or (symbolp x) ,(let (vals)
(consp x) (loop for x in *universe*
(eql (macroexpand-1 x env) x)) unless (or (symbolp x)
collect (list x (macroexpand-1 x env)))))) (consp x)
(progn
(setq vals (multiple-value-list (macroexpand-1 x env)))
(and (= (length vals) 2)
(eql (car vals) x)
(null (cadr vals)))))
collect (cons x vals))))))
(%m)) (%m))
nil) nil)
(deftest macroexpand-1.4 (deftest macroexpand-1.4
(macrolet ((%m () ''foo)) (macrolet ((%m () ''foo))
(macrolet ((%m2 (&environment env) (macrolet ((%m2 (&environment env)
...@@ -49,10 +66,20 @@ ...@@ -49,10 +66,20 @@
(%m2))) (%m2)))
foo) foo)
(deftest macroexpand-1.5
(let ((form (list (gensym)))
(i 0))
(values
(equalt (macroexpand-1 (progn (incf i) form)) form)
i))
t 1)
(deftest macroexpand-1.6
(let ((form (list (gensym)))
(i 0) a b)
(values
(equalt (macroexpand-1 (progn (setf a (incf i)) form)
(progn (setf b (incf i)) nil))
form)
i a b))
t 2 1 2)
...@@ -16,32 +16,49 @@ ...@@ -16,32 +16,49 @@
;;; Non-error tests ;;; Non-error tests
(deftest macroexpand.1 (deftest macroexpand.1
(loop for x in *universe* (let (vals)
unless (or (symbolp x) (loop for x in *universe*
(consp x) unless (or (symbolp x)
(eql (macroexpand x) x)) (consp x)
collect (list x (macroexpand x))) (progn
(setq vals (multiple-value-list (macroexpand x)))
(and (= (length vals) 2)
(eql (car vals) x)
(null (cadr vals)))))
collect (cons x vals)))
nil) nil)
(deftest macroexpand.2 (deftest macroexpand.2
(loop for x in *universe* (let (vals)
unless (or (symbolp x) (loop for x in *universe*
(consp x) unless (or (symbolp x)
(eql (macroexpand x nil) x)) (consp x)
collect (list x (macroexpand x nil))) (progn
(setq vals (multiple-value-list (macroexpand x nil)))
(and (= (length vals) 2)
(eql (car vals) x)
(null (cadr vals)))))
collect (cons x vals)))
nil) nil)
(deftest macroexpand.3 (deftest macroexpand.3
(macrolet ((%m (&environment env) (macrolet
`(quote ((%m (&environment env)
,(loop for x in *universe* `(quote
unless (or (symbolp x) ,(let (vals)
(consp x) (loop for x in *universe*
(eql (macroexpand x env) x)) unless (or (symbolp x)
collect (list x (macroexpand x env)))))) (consp x)
(progn
(setq vals (multiple-value-list (macroexpand x env)))
(and (= (length vals) 2)
(eql (car vals) x)
(null (cadr vals)))))
collect (cons x vals))))))
(%m)) (%m))
nil) nil)
(deftest macroexpand.4 (deftest macroexpand.4
(macrolet ((%m () ''foo)) (macrolet ((%m () ''foo))
(macrolet ((%m2 (&environment env) (macrolet ((%m2 (&environment env)
...@@ -49,9 +66,20 @@ ...@@ -49,9 +66,20 @@
(%m2))) (%m2)))
foo) foo)
(deftest macroexpand.5
(let ((form (list (gensym)))
(i 0))
(values
(equalt (macroexpand (progn (incf i) form)) form)
i))
t 1)
(deftest macroexpand.6
(let ((form (list (gensym)))
(i 0) a b)
(values
(equalt (macroexpand (progn (setf a (incf i)) form)
(progn (setf b (incf i)) nil))
form)
i a b))
t 2 1 2)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment