aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/automated/data/package/macro-problem-package-1.0/macro-aux.el31
-rw-r--r--test/automated/data/package/macro-problem-package-1.0/macro-problem.el40
-rw-r--r--test/automated/data/package/macro-problem-package-2.0/macro-aux.el35
-rw-r--r--test/automated/data/package/macro-problem-package-2.0/macro-problem.el49
-rw-r--r--test/automated/package-test.el14
5 files changed, 169 insertions, 0 deletions
diff --git a/test/automated/data/package/macro-problem-package-1.0/macro-aux.el b/test/automated/data/package/macro-problem-package-1.0/macro-aux.el
new file mode 100644
index 00000000000..9d14a211639
--- /dev/null
+++ b/test/automated/data/package/macro-problem-package-1.0/macro-aux.el
@@ -0,0 +1,31 @@
1;;; macro-aux.el --- laksd -*- lexical-binding: t; -*-
2
3;; Copyright (C) 2015 Artur Malabarba
4
5;; Author: Artur Malabarba <emacs@endlessparentheses.com>
6
7;; This program is free software; you can redistribute it and/or modify
8;; it under the terms of the GNU General Public License as published by
9;; the Free Software Foundation, either version 3 of the License, or
10;; (at your option) any later version.
11
12;; This program is distributed in the hope that it will be useful,
13;; but WITHOUT ANY WARRANTY; without even the implied warranty of
14;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15;; GNU General Public License for more details.
16
17;; You should have received a copy of the GNU General Public License
18;; along with this program. If not, see <http://www.gnu.org/licenses/>.
19
20;;; Commentary:
21
22;;
23
24;;; Code:
25
26(defun macro-aux-1 ( &rest forms)
27 "Description"
28 `(progn ,@forms))
29
30(provide 'macro-aux)
31;;; macro-aux.el ends here
diff --git a/test/automated/data/package/macro-problem-package-1.0/macro-problem.el b/test/automated/data/package/macro-problem-package-1.0/macro-problem.el
new file mode 100644
index 00000000000..a44074c4f87
--- /dev/null
+++ b/test/automated/data/package/macro-problem-package-1.0/macro-problem.el
@@ -0,0 +1,40 @@
1;;; macro-problem.el --- laksd -*- lexical-binding: t; -*-
2
3;; Copyright (C) 2015 Artur Malabarba
4
5;; Author: Artur Malabarba <emacs@endlessparentheses.com>
6;; Keywords: tools
7;; Version: 1.0
8
9;; This program is free software; you can redistribute it and/or modify
10;; it under the terms of the GNU General Public License as published by
11;; the Free Software Foundation, either version 3 of the License, or
12;; (at your option) any later version.
13
14;; This program is distributed in the hope that it will be useful,
15;; but WITHOUT ANY WARRANTY; without even the implied warranty of
16;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17;; GNU General Public License for more details.
18
19;; You should have received a copy of the GNU General Public License
20;; along with this program. If not, see <http://www.gnu.org/licenses/>.
21
22;;; Commentary:
23
24;;
25
26;;; Code:
27
28(require 'macro-aux)
29
30(defmacro macro-problem-1 ( &rest forms)
31 "Description"
32 `(progn ,@forms))
33
34(defun macro-problem-func ()
35 ""
36 (macro-problem-1 'a 'b)
37 (macro-aux-1 'a 'b))
38
39(provide 'macro-problem)
40;;; macro-problem.el ends here
diff --git a/test/automated/data/package/macro-problem-package-2.0/macro-aux.el b/test/automated/data/package/macro-problem-package-2.0/macro-aux.el
new file mode 100644
index 00000000000..4785cd78031
--- /dev/null
+++ b/test/automated/data/package/macro-problem-package-2.0/macro-aux.el
@@ -0,0 +1,35 @@
1;;; macro-aux.el --- laksd -*- lexical-binding: t; -*-
2
3;; Copyright (C) 2015 Artur Malabarba
4
5;; Author: Artur Malabarba <emacs@endlessparentheses.com>
6
7;; This program is free software; you can redistribute it and/or modify
8;; it under the terms of the GNU General Public License as published by
9;; the Free Software Foundation, either version 3 of the License, or
10;; (at your option) any later version.
11
12;; This program is distributed in the hope that it will be useful,
13;; but WITHOUT ANY WARRANTY; without even the implied warranty of
14;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15;; GNU General Public License for more details.
16
17;; You should have received a copy of the GNU General Public License
18;; along with this program. If not, see <http://www.gnu.org/licenses/>.
19
20;;; Commentary:
21
22;;
23
24;;; Code:
25
26(defmacro macro-aux-1 ( &rest forms)
27 "Description"
28 `(progn ,@forms))
29
30(defmacro macro-aux-3 ( &rest _)
31 "Description"
32 90)
33
34(provide 'macro-aux)
35;;; macro-aux.el ends here
diff --git a/test/automated/data/package/macro-problem-package-2.0/macro-problem.el b/test/automated/data/package/macro-problem-package-2.0/macro-problem.el
new file mode 100644
index 00000000000..ead3d29dc3d
--- /dev/null
+++ b/test/automated/data/package/macro-problem-package-2.0/macro-problem.el
@@ -0,0 +1,49 @@
1;;; macro-problem.el --- laksd -*- lexical-binding: t; -*-
2
3;; Copyright (C) 2015 Artur Malabarba
4
5;; Author: Artur Malabarba <emacs@endlessparentheses.com>
6;; Keywords: tools
7;; Version: 2.0
8
9;; This program is free software; you can redistribute it and/or modify
10;; it under the terms of the GNU General Public License as published by
11;; the Free Software Foundation, either version 3 of the License, or
12;; (at your option) any later version.
13
14;; This program is distributed in the hope that it will be useful,
15;; but WITHOUT ANY WARRANTY; without even the implied warranty of
16;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17;; GNU General Public License for more details.
18
19;; You should have received a copy of the GNU General Public License
20;; along with this program. If not, see <http://www.gnu.org/licenses/>.
21
22;;; Commentary:
23
24;;
25
26;;; Code:
27
28(require 'macro-aux)
29
30(defmacro macro-problem-1 ( &rest forms)
31 "Description"
32 `(progn ,(cadr (car forms))))
33
34
35(defun macro-problem-func ()
36 ""
37 (list (macro-problem-1 '1 'b)
38 (macro-aux-1 'a 'b)))
39
40(defmacro macro-problem-3 (&rest _)
41 "Description"
42 10)
43
44(defun macro-problem-10-and-90 ()
45 ""
46 (list (macro-problem-3 haha) (macro-aux-3 hehe)))
47
48(provide 'macro-problem)
49;;; macro-problem.el ends here
diff --git a/test/automated/package-test.el b/test/automated/package-test.el
index de41c3bc8e4..8401d1879ae 100644
--- a/test/automated/package-test.el
+++ b/test/automated/package-test.el
@@ -242,6 +242,20 @@ Must called from within a `tar-mode' buffer."
242 (should (package-installed-p 'simple-single)) 242 (should (package-installed-p 'simple-single))
243 (should (package-installed-p 'simple-depend)))) 243 (should (package-installed-p 'simple-depend))))
244 244
245(ert-deftest package-test-macro-compilation ()
246 "Install a package which includes a dependency."
247 (with-package-test (:basedir "data/package")
248 (package-install-file (expand-file-name "macro-problem-package-1.0/"))
249 (require 'macro-problem)
250 ;; `macro-problem-func' uses a macro from `macro-aux'.
251 (should (equal (macro-problem-func) '(progn a b)))
252 (package-install-file (expand-file-name "macro-problem-package-2.0/"))
253 ;; After upgrading, `macro-problem-func' depends on a new version
254 ;; of the macro from `macro-aux'.
255 (should (equal (macro-problem-func) '(1 b)))
256 ;; `macro-problem-10-and-90' depends on an entirely new macro from `macro-aux'.
257 (should (equal (macro-problem-10-and-90) '(10 90)))))
258
245(ert-deftest package-test-install-two-dependencies () 259(ert-deftest package-test-install-two-dependencies ()
246 "Install a package which includes a dependency." 260 "Install a package which includes a dependency."
247 (with-package-test () 261 (with-package-test ()