Skip to content

Commit 73483a2

Browse files
committed
Add another test project with multiple files, to make sure they can be required from each other.
1 parent 6d14ca6 commit 73483a2

7 files changed

Lines changed: 77 additions & 6 deletions

File tree

test/flycheck-eldev-test.el

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,24 @@
77
(defvar flycheck-eldev--test-dir (file-name-directory (or load-file-name (buffer-file-name))))
88

99

10+
;; Copied from Eldev source code, see documentation there.
11+
(eval-when-compile
12+
(defmacro flycheck-eldev-ert-defargtest (name arguments values &rest body)
13+
(declare (indent 3))
14+
(let ((function (make-symbol (format "%s:impl" name))))
15+
`(progn
16+
(cl-macrolet ((skip-unless (form) `(ert--skip-unless ,form)))
17+
(defun ,function ,arguments ,@body))
18+
,@(mapcar (lambda (arg-values)
19+
`(ert-deftest ,(intern (format "%s/%s" name (flycheck-eldev--ert-defargtest-format-arguments arg-values))) ()
20+
(,function ,@(if (= (length arguments) 1) (list arg-values) arg-values))))
21+
values))))
22+
23+
(defun flycheck-eldev--ert-defargtest-format-arguments (arguments)
24+
(let ((print-quoted t))
25+
(downcase (replace-regexp-in-string " " "/" (replace-regexp-in-string (rx (not (any word "-" " "))) "" (prin1-to-string arguments)))))))
26+
27+
1028
(defmacro flycheck-eldev--test (file &rest body)
1129
(declare (indent 1) (debug (sexp body)))
1230
(let ((flycheck-eldev-whitelist nil)
@@ -77,13 +95,15 @@
7795
(ert-fail (format "expected error not detected: %S" expected))))))))
7896

7997

80-
(ert-deftest flycheck-eldev-basics-1 ()
81-
(flycheck-eldev--test "project-a/project-a.el"
98+
(flycheck-eldev-ert-defargtest flycheck-eldev-basics-1 (file)
99+
("project-a/project-a.el" "project-b/project-b.el" "project-b/project-b-util.el")
100+
(flycheck-eldev--test file
82101
(flycheck-eldev--test-recheck)
83102
(flycheck-eldev--test-expect-no-errors)))
84103

85-
(ert-deftest flycheck-eldev-basics-2 ()
86-
(flycheck-eldev--test "project-a/Eldev"
104+
(flycheck-eldev-ert-defargtest flycheck-eldev-basics-2 (file)
105+
("project-a/Eldev" "project-b/Eldev")
106+
(flycheck-eldev--test file
87107
;; Enable `checkdoc'. Must be disabled at runtime (currently through our own hack)
88108
;; for the test to pass.
89109
:enable-checkdoc t
@@ -111,8 +131,9 @@
111131
(flycheck-eldev--test-recheck)
112132
(flycheck-eldev--test-expect-no-errors)))
113133

114-
(ert-deftest flycheck-eldev-test-file-1 ()
115-
(flycheck-eldev--test "project-a/test/project-a.el"
134+
(flycheck-eldev-ert-defargtest flycheck-eldev-test-file-1 (file)
135+
("project-a/test/project-a.el" "project-b/test/project-b.el" "project-b/test/project-b-util.el")
136+
(flycheck-eldev--test file
116137
(flycheck-eldev--test-recheck)
117138
(flycheck-eldev--test-expect-no-errors)))
118139

test/project-a/test/test-util.el

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
;; -*- lexical-binding: t; -*-
2+
13
(require 'project-a)
24
(require 'ert)
35

test/project-b/Eldev

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
; -*- mode: emacs-lisp; lexical-binding: t -*-
2+
3+
(eldev-use-package-archive `("archive-a" . ,(expand-file-name "../package-archive-a")))

test/project-b/project-b-util.el

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
;;; -*- lexical-binding: t; -*-
2+
3+
(require 'dependency-a)
4+
(require 'dependency-b)
5+
6+
(defun project-b-do-hello ()
7+
(dependency-a-hello))
8+
9+
(provide 'project-b-util)

test/project-b/project-b.el

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
;;; project-b.el --- Test project with two files and two dependencies -*- lexical-binding: t; -*-
2+
3+
;; Version: 1.0
4+
;; Homepage: https://example.com/
5+
;; Package-Requires: ((dependency-a "1.0") (dependency-b "1.0"))
6+
7+
;;; Commentary:
8+
9+
;; Comments to make linters happy.
10+
11+
;;; Code:
12+
13+
(require 'project-b-util)
14+
(require 'dependency-a)
15+
(require 'dependency-b)
16+
17+
(defun project-b-hello ()
18+
"Invoke `project-b-do-hello' from `project-b-util'.
19+
This docstring exists to make linters happy."
20+
(project-b-do-hello))
21+
22+
(provide 'project-b)
23+
24+
;;; project-b.el ends here
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
;; -*- lexical-binding: t; -*-
2+
3+
(require 'project-b)
4+
(require 'ert)
5+
6+
(provide 'test/project-b-util)

test/project-b/test/project-b.el

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
;; -*- lexical-binding: t; -*-
2+
3+
(require 'test/project-b-util)
4+
5+
(ert-deftest project-b-test-hello ()
6+
(should (string= (project-b-hello) "Hello")))

0 commit comments

Comments
 (0)