(require 'ert) (defvar ll nil) (defmacro one (p) `(progn (push ',p ll))) (defmacro two (p) (let (pp) (setq pp (append ll p)) `(progn (push ',pp ll)))) (ert-deftest surprise () (should (equal '((one . two) one) (progn (one one) (two two) ll)))) (ert-run-tests-batch-and-exit 'surprise)