+ Moved unit tests out of tests/ and into their respective modules. + Rewrite makefile and added these tasks: + <MODULE>/<SUBMODULE> -- byte-compile a specific module + test:<MODULE>/<SUBMODULE> -- runs tests for a specific module + testi -- run tests in an interactive session of Emacs (WIP) + run -- opens an Emacs session with this config; useful when it is in a non-standard location.
15 lines
651 B
EmacsLisp
15 lines
651 B
EmacsLisp
;;; core/autoload/test.el -*- lexical-binding: t; -*-
|
|
|
|
;;;###autoload
|
|
(defmacro def-test! (name &rest body)
|
|
"Define a namespaced ERT test."
|
|
(declare (indent defun) (doc-string 2))
|
|
(unless (plist-get body :disabled)
|
|
`(ert-deftest
|
|
,(cl-loop with path = (file-relative-name (file-name-sans-extension load-file-name)
|
|
doom-emacs-dir)
|
|
for (rep . with) in '(("/test/" . "/") ("/" . ":"))
|
|
do (setq path (replace-regexp-in-string rep with path t t))
|
|
finally return (intern (format "%s::%s" path name))) ()
|
|
()
|
|
,@body)))
|