|
7 | 7 | (defvar flycheck-eldev--test-dir (file-name-directory (or load-file-name (buffer-file-name)))) |
8 | 8 |
|
9 | 9 |
|
| 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 | + |
10 | 28 | (defmacro flycheck-eldev--test (file &rest body) |
11 | 29 | (declare (indent 1) (debug (sexp body))) |
12 | 30 | (let ((flycheck-eldev-whitelist nil) |
|
77 | 95 | (ert-fail (format "expected error not detected: %S" expected)))))))) |
78 | 96 |
|
79 | 97 |
|
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 |
82 | 101 | (flycheck-eldev--test-recheck) |
83 | 102 | (flycheck-eldev--test-expect-no-errors))) |
84 | 103 |
|
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 |
87 | 107 | ;; Enable `checkdoc'. Must be disabled at runtime (currently through our own hack) |
88 | 108 | ;; for the test to pass. |
89 | 109 | :enable-checkdoc t |
|
111 | 131 | (flycheck-eldev--test-recheck) |
112 | 132 | (flycheck-eldev--test-expect-no-errors))) |
113 | 133 |
|
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 |
116 | 137 | (flycheck-eldev--test-recheck) |
117 | 138 | (flycheck-eldev--test-expect-no-errors))) |
118 | 139 |
|
|
0 commit comments