diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-22 16:09:49 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-22 16:09:49 -0500 |
| commit | fe4ee2dc51a4bbc70b90f6d104c222857384b4e7 (patch) | |
| tree | e9b28800dc5fefb2a9876bab66a9c6c6b70c82e9 /tests/test-system-defaults-functions.el | |
| parent | b90c32d6705f75840b239683c2c8221594008970 (diff) | |
| download | dotemacs-fe4ee2dc51a4bbc70b90f6d104c222857384b4e7.tar.gz dotemacs-fe4ee2dc51a4bbc70b90f6d104c222857384b4e7.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.el | 7 |
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) |
