summaryrefslogtreecommitdiff
path: root/test/lisp/erc/erc-tests.el
diff options
context:
space:
mode:
authorF. Jason Park <jp@neverwas.me>2022-04-04 22:38:22 -0700
committerF. Jason Park <jp@neverwas.me>2022-06-30 15:03:26 -0700
commit0f52e7ac68457ca8beb22cd382b1637fed35fd73 (patch)
treee179bbd79daa6a1f27a65ba673ae1629d515b59e /test/lisp/erc/erc-tests.el
parenta3311dbce0008a23d8d6626ae6245d96ce3a20b2 (diff)
downloademacs-0f52e7ac68457ca8beb22cd382b1637fed35fd73.tar.gz
emacs-0f52e7ac68457ca8beb22cd382b1637fed35fd73.tar.bz2
emacs-0f52e7ac68457ca8beb22cd382b1637fed35fd73.zip
Rework mutual dependency between erc and erc-backend
* lisp/erc/erc.el: Declare needed variables exported by erc-backend.el as special near the top of the file, and only require `erc-backend' after providing `erc' as a feature at the very end. * lisp/erc/erc-backend.el: Don't preemptively provide `erc-backend'. * test/lisp/erc/erc-tests.el (erc--meta--backend-dependencies): Add utility test to scrape for unused vars that may accumulate over time. (Bug#54825)
Diffstat (limited to 'test/lisp/erc/erc-tests.el')
-rw-r--r--test/lisp/erc/erc-tests.el21
1 files changed, 21 insertions, 0 deletions
diff --git a/test/lisp/erc/erc-tests.el b/test/lisp/erc/erc-tests.el
index 520f10dd4e6..3c76cb97caf 100644
--- a/test/lisp/erc/erc-tests.el
+++ b/test/lisp/erc/erc-tests.el
@@ -48,6 +48,27 @@
(cl-letf (((symbol-function 'read-string) (lambda (&rest _) "1d")))
(should (equal (erc--read-time-period "foo: ") 86400))))
+(ert-deftest erc--meta--backend-dependencies ()
+ (with-temp-buffer
+ (insert-file-contents-literally
+ (concat (file-name-sans-extension (symbol-file 'erc)) ".el"))
+ (let ((beg (search-forward ";; Defined in erc-backend"))
+ (end (search-forward "\n\n"))
+ vars)
+ (save-excursion
+ (save-restriction
+ (narrow-to-region beg end)
+ (goto-char (point-min))
+ (with-syntax-table lisp-data-mode-syntax-table
+ (condition-case _
+ (while (push (cadr (read (current-buffer))) vars))
+ (end-of-file)))))
+ (should (= (point) end))
+ (dolist (var vars)
+ (setq var (concat "\\_<" (symbol-name var) "\\_>"))
+ (ert-info (var)
+ (should (save-excursion (search-forward-regexp var nil t))))))))
+
(ert-deftest erc-with-all-buffers-of-server ()
(let (proc-exnet
proc-onet