* test/src/comp-tests.el (copy-insn): New testcase.
* test/src/comp-test-funcs.el (comp-test-copy-insn-f): New
function.
comp-test-and-3-var
2))
+(defun comp-test-copy-insn-f (insn)
+ ;; From `comp-copy-insn'.
+ (if (consp insn)
+ (let (result)
+ (while (consp insn)
+ (let ((newcar (car insn)))
+ (if (or (consp (car insn)) (comp-mvar-p (car insn)))
+ (setf newcar (comp-copy-insn (car insn))))
+ (push newcar result))
+ (setf insn (cdr insn)))
+ (nconc (nreverse result)
+ (if (comp-mvar-p insn) (comp-copy-insn insn) insn)))
+ (if (comp-mvar-p insn)
+ (copy-comp-mvar insn)
+ insn)))
+
\f
;;;;;;;;;;;;;;;;;;;;
;; Tromey's tests ;;
(should (= (comp-test-and-3-f t) 2))
(should (null (comp-test-and-3-f '(1 2)))))
+(comp-deftest copy-insn ()
+ (should (equal (comp-test-copy-insn-f '(1 2 3 (4 5 6)))
+ '(1 2 3 (4 5 6))))
+ (should (null (comp-test-copy-insn-f nil))))
+
\f
;;;;;;;;;;;;;;;;;;;;;
;; Tromey's tests. ;;