emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

emacs-29 a7cd125d490 2/2: More robustly unspoof HOME in Eglot tests (bug


From: João Távora
Subject: emacs-29 a7cd125d490 2/2: More robustly unspoof HOME in Eglot tests (bug#61637)
Date: Sat, 4 Mar 2023 14:14:11 -0500 (EST)

branch: emacs-29
commit a7cd125d490295eb24edf43119f3d3511c3dfddd
Author: João Távora <joaotavora@gmail.com>
Commit: João Távora <joaotavora@gmail.com>

    More robustly unspoof HOME in Eglot tests (bug#61637)
    
    A fair number of LSP servers allow user-local installations instead of
    system wide installations.  Emacs's technique of spoofing the HOME env
    var to some non-existent or non-home directory during 'make check'
    breaks these tests.  That's because the executables are still found by
    executable-find, but their invocation will rarely be successful as
    HOME isn't what they expect it to be.
    
    Eglot tests already had a technique for dealing with this,
    "unspoffing" HOME just for the invocations of LSP server but it
    stopped working a while back.  So make it more robust.
    
    Eventually, we'll want to decide wether these local servers should be
    considered in 'make check' runs at all, or whether there is a way to
    use them with a spoofed HOME.
    
    * test/lisp/progmodes/eglot-tests.el (eglot--call-with-fixture):
    More robustly unspoof HOME.
---
 test/lisp/progmodes/eglot-tests.el | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/test/lisp/progmodes/eglot-tests.el 
b/test/lisp/progmodes/eglot-tests.el
index 5d5de59a19a..7a90d68d213 100644
--- a/test/lisp/progmodes/eglot-tests.el
+++ b/test/lisp/progmodes/eglot-tests.el
@@ -103,22 +103,21 @@ then restored."
              (set (car spec) (cadr spec)))
             ((stringp (car spec)) (push spec file-specs))))
     (unwind-protect
-        (let* ((home (getenv "HOME"))
-               (process-environment
+        (let* ((process-environment
                 (append
                  `(;; Set XDF_CONFIG_HOME to /dev/null to prevent
                    ;; user-configuration to have an influence on
                    ;; language servers. (See github#441)
                    "XDG_CONFIG_HOME=/dev/null"
                    ;; ... on the flip-side, a similar technique by
-                   ;; Emacs's test makefiles means that HOME is set to
-                   ;; /nonexistent.  This breaks some common
-                   ;; installations for LSP servers like pylsp, making
-                   ;; these tests mostly useless, so we hack around it
-                   ;; here with a great big hack.
+                   ;; Emacs's test makefiles means that HOME is
+                   ;; spoofed to /nonexistent, or sometimes /tmp.
+                   ;; This breaks some common installations for LSP
+                   ;; servers like pylsp, rust-analyzer making these
+                   ;; tests mostly useless, so we hack around it here
+                   ;; with a great big hack.
                    ,(format "HOME=%s"
-                            (if (file-exists-p home) home
-                              (format "/home/%s" (getenv "USER")))))
+                            (expand-file-name (format "~%s" 
(user-login-name)))))
                  process-environment))
                ;; Prevent "Can't guess python-indent-offset ..." messages.
                (python-indent-guess-indent-offset-verbose . nil)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]