From 9bb2fc1e647bb74fd37a62c0b2f35c8eb4f8eece Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Thu, 12 Nov 2020 23:41:04 +0100 Subject: [PATCH] Add copy insn testcase * test/src/comp-tests.el (copy-insn): New testcase. * test/src/comp-test-funcs.el (comp-test-copy-insn-f): New function. --- test/src/comp-test-funcs.el | 16 ++++++++++++++++ test/src/comp-tests.el | 5 +++++ 2 files changed, 21 insertions(+) diff --git a/test/src/comp-test-funcs.el b/test/src/comp-test-funcs.el index 1b0f3056b98..bcf9fcb0fd1 100644 --- a/test/src/comp-test-funcs.el +++ b/test/src/comp-test-funcs.el @@ -354,6 +354,22 @@ 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))) + ;;;;;;;;;;;;;;;;;;;; ;; Tromey's tests ;; diff --git a/test/src/comp-tests.el b/test/src/comp-tests.el index 61838c670e1..b2f83998838 100644 --- a/test/src/comp-tests.el +++ b/test/src/comp-tests.el @@ -444,6 +444,11 @@ https://lists.gnu.org/archive/html/bug-gnu-emacs/2020-03/msg00914.html." (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)))) + ;;;;;;;;;;;;;;;;;;;;; ;; Tromey's tests. ;; -- 2.39.5