aboutsummaryrefslogtreecommitdiff
path: root/tests/test-system-defaults-functions.el
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-22 16:09:49 -0500
committerCraig Jennings <c@cjennings.net>2026-05-22 16:09:49 -0500
commit23832737af76b2cda2a2aeaa50e5fc26fd0348ad (patch)
tree584bb795b747e5e49cfd14052eb7727242ab030e /tests/test-system-defaults-functions.el
parent759597d42102778e91f7f62ef1b13b9b041efc75 (diff)
downloaddotemacs-23832737af76b2cda2a2aeaa50e5fc26fd0348ad.tar.gz
dotemacs-23832737af76b2cda2a2aeaa50e5fc26fd0348ad.zip
fix(test): make test-name resilient to load-time cwd changes
make test-name loads every test file into one Emacs, then selects by name. test-system-defaults-functions.el requires system-defaults at load, which runs (setq default-directory user-home-dir), an intentional config choice. That leaked the cwd into the shared session, so every relative -l tests/X.el load after it resolved against the wrong directory and aborted the whole run with Error 255. I made two changes. test-name now passes absolute paths to -l so loads survive any cwd change, and the test contains the leak by let-binding default-directory around the require. The production setq stays as is.
Diffstat (limited to 'tests/test-system-defaults-functions.el')
-rw-r--r--tests/test-system-defaults-functions.el7
1 files changed, 6 insertions, 1 deletions
diff --git a/tests/test-system-defaults-functions.el b/tests/test-system-defaults-functions.el
index 580e7a7cf..154e36783 100644
--- a/tests/test-system-defaults-functions.el
+++ b/tests/test-system-defaults-functions.el
@@ -47,7 +47,12 @@
;; bodies. Stubs deliberately scope only to the require so the
;; real primitives remain available for unrelated tests in the
;; same Emacs.
-(let ((use-package-always-ensure nil))
+;; Contain system-defaults' load-time `(setq default-directory user-home-dir)'
+;; so it doesn't leak into a shared batch session. `make test-name' loads
+;; every test file into one Emacs; a leaked cwd there breaks the relative
+;; loads of every file that follows.
+(let ((default-directory default-directory)
+ (use-package-always-ensure nil))
(cl-letf (((symbol-function 'server-running-p) (lambda (&rest _) t))
((symbol-function 'server-start) #'ignore)
((symbol-function 'set-locale-environment) #'ignore)