Fix connection-local variables settings

; * etc/NEWS: Fix typos.

* lisp/files-x.el (connection-local-set-profiles)
(connection-local-set-profile-variables): Use NOW when calling
`custom-set-variables'.

* test/lisp/files-x-tests.el
(files-x-test-connection-local-set-profile-variables)
(files-x-test-connection-local-update-profile-variables)
(files-x-test-connection-local-set-profiles)
(files-x-test-hack-connection-local-variables-apply)
(files-x-test-with-connection-local-variables)
(files-x-test-setq-connection-local): Fix tests.

* test/lisp/net/tramp-tests.el (tramp-test34-connection-local-variables)
(tramp-test34-explicit-shell-file-name): Fix tests.
This commit is contained in:
Michael Albinus 2023-03-13 18:02:36 +01:00
parent e759905d2e
commit 36ade0704e
4 changed files with 67 additions and 17 deletions

View file

@ -3215,7 +3215,7 @@ Emacs now comes with the Eglot package, which enhances various Emacs
features, such as completion, documentation, error detection, etc., features, such as completion, documentation, error detection, etc.,
based on data provided by language servers using the Language Server based on data provided by language servers using the Language Server
Protocol (LSP). See the new Info manual "(eglot) Top" for more. Also Protocol (LSP). See the new Info manual "(eglot) Top" for more. Also
see etc/EGLOT-NEWS. see "etc/EGLOT-NEWS".
+++ +++
** use-package: Declarative package configuration. ** use-package: Declarative package configuration.
@ -4889,7 +4889,7 @@ two buttons: "Yes" and "No".
+++ +++
*** The 'ns-popup-font-panel' command has been removed. *** The 'ns-popup-font-panel' command has been removed.
Use the general command "M-x menu-set-font" instead. Use the general command 'M-x menu-set-font' instead.
---------------------------------------------------------------------- ----------------------------------------------------------------------

View file

@ -682,7 +682,7 @@ variables for a connection profile are defined using
(cons (cons criteria (delete-dups profiles)) (cons (cons criteria (delete-dups profiles))
connection-local-criteria-alist)))) connection-local-criteria-alist))))
(custom-set-variables (custom-set-variables
`(connection-local-criteria-alist ',connection-local-criteria-alist))) `(connection-local-criteria-alist ',connection-local-criteria-alist now)))
(defsubst connection-local-get-profile-variables (profile) (defsubst connection-local-get-profile-variables (profile)
"Return the connection-local variable list for PROFILE." "Return the connection-local variable list for PROFILE."
@ -703,7 +703,7 @@ VARIABLES list of the connection profile. The list is processed
in order." in order."
(setf (alist-get profile connection-local-profile-alist) variables) (setf (alist-get profile connection-local-profile-alist) variables)
(custom-set-variables (custom-set-variables
`(connection-local-profile-alist ',connection-local-profile-alist))) `(connection-local-profile-alist ',connection-local-profile-alist now)))
;;;###autoload ;;;###autoload
(defun connection-local-update-profile-variables (profile variables) (defun connection-local-update-profile-variables (profile variables)

View file

@ -66,7 +66,9 @@
"Test setting connection-local profile variables." "Test setting connection-local profile variables."
;; Declare (PROFILE VARIABLES) objects. ;; Declare (PROFILE VARIABLES) objects.
(let (connection-local-profile-alist connection-local-criteria-alist) (let ((clpa connection-local-profile-alist)
(clca connection-local-criteria-alist)
connection-local-profile-alist connection-local-criteria-alist)
(connection-local-set-profile-variables (connection-local-set-profile-variables
'remote-bash files-x-test--variables1) 'remote-bash files-x-test--variables1)
(should (should
@ -94,13 +96,20 @@
(should (should
(equal (equal
(connection-local-get-profile-variables 'remote-nullfile) (connection-local-get-profile-variables 'remote-nullfile)
files-x-test--variables4)))) files-x-test--variables4))
;; Cleanup.
(custom-set-variables
`(connection-local-profile-alist ',clpa now)
`(connection-local-criteria-alist ',clca now))))
(ert-deftest files-x-test-connection-local-update-profile-variables () (ert-deftest files-x-test-connection-local-update-profile-variables ()
"Test updating connection-local profile variables." "Test updating connection-local profile variables."
;; Declare (PROFILE VARIABLES) objects. ;; Declare (PROFILE VARIABLES) objects.
(let (connection-local-profile-alist connection-local-criteria-alist) (let ((clpa connection-local-profile-alist)
(clca connection-local-criteria-alist)
connection-local-profile-alist connection-local-criteria-alist)
(connection-local-set-profile-variables (connection-local-set-profile-variables
'remote-bash (copy-alist files-x-test--variables1)) 'remote-bash (copy-alist files-x-test--variables1))
(should (should
@ -116,13 +125,20 @@
(equal (equal
(connection-local-get-profile-variables 'remote-bash) (connection-local-get-profile-variables 'remote-bash)
(cons (car files-x-test--variables2) (cons (car files-x-test--variables2)
(cdr files-x-test--variables1)))))) (cdr files-x-test--variables1))))
;; Cleanup.
(custom-set-variables
`(connection-local-profile-alist ',clpa now)
`(connection-local-criteria-alist ',clca now))))
(ert-deftest files-x-test-connection-local-set-profiles () (ert-deftest files-x-test-connection-local-set-profiles ()
"Test setting connection-local profiles." "Test setting connection-local profiles."
;; Declare (CRITERIA PROFILES) objects. ;; Declare (CRITERIA PROFILES) objects.
(let (connection-local-profile-alist connection-local-criteria-alist) (let ((clpa connection-local-profile-alist)
(clca connection-local-criteria-alist)
connection-local-profile-alist connection-local-criteria-alist)
(connection-local-set-profile-variables (connection-local-set-profile-variables
'remote-bash files-x-test--variables1) 'remote-bash files-x-test--variables1)
(connection-local-set-profile-variables (connection-local-set-profile-variables
@ -205,12 +221,19 @@
'(remote-bash remote-ksh remote-nullfile))) '(remote-bash remote-ksh remote-nullfile)))
;; A criteria other than plist is wrong. ;; A criteria other than plist is wrong.
(should-error (connection-local-set-profiles 'dummy)))) (should-error (connection-local-set-profiles 'dummy))
;; Cleanup.
(custom-set-variables
`(connection-local-profile-alist ',clpa now)
`(connection-local-criteria-alist ',clca now))))
(ert-deftest files-x-test-hack-connection-local-variables-apply () (ert-deftest files-x-test-hack-connection-local-variables-apply ()
"Test setting connection-local variables." "Test setting connection-local variables."
(let (connection-local-profile-alist connection-local-criteria-alist) (let ((clpa connection-local-profile-alist)
(clca connection-local-criteria-alist)
connection-local-profile-alist connection-local-criteria-alist)
(connection-local-set-profile-variables (connection-local-set-profile-variables
'remote-bash files-x-test--variables1) 'remote-bash files-x-test--variables1)
@ -302,13 +325,18 @@
(hack-connection-local-variables-apply nil) (hack-connection-local-variables-apply nil)
(should-not connection-local-variables-alist) (should-not connection-local-variables-alist)
(should-not (local-variable-p 'remote-shell-file-name)) (should-not (local-variable-p 'remote-shell-file-name))
(should-not (boundp 'remote-shell-file-name)))))) (should-not (boundp 'remote-shell-file-name))))
;; Cleanup.
(custom-set-variables
`(connection-local-profile-alist ',clpa now)
`(connection-local-criteria-alist ',clca now))))
(ert-deftest files-x-test-with-connection-local-variables () (ert-deftest files-x-test-with-connection-local-variables ()
"Test setting connection-local variables." "Test setting connection-local variables."
(let ((connection-local-profile-alist connection-local-profile-alist) (let ((clpa connection-local-profile-alist)
(connection-local-criteria-alist connection-local-criteria-alist)) (clca connection-local-criteria-alist))
(connection-local-set-profile-variables (connection-local-set-profile-variables
'remote-bash files-x-test--variables1) 'remote-bash files-x-test--variables1)
(connection-local-set-profile-variables (connection-local-set-profile-variables
@ -385,7 +413,12 @@
(should-not (local-variable-p 'remote-null-device)) (should-not (local-variable-p 'remote-null-device))
;; The variable values are reset. ;; The variable values are reset.
(should-not (boundp 'remote-shell-file-name)) (should-not (boundp 'remote-shell-file-name))
(should (string-equal (symbol-value 'remote-null-device) "null")))))) (should (string-equal (symbol-value 'remote-null-device) "null"))))
;; Cleanup.
(custom-set-variables
`(connection-local-profile-alist ',clpa now)
`(connection-local-criteria-alist ',clca now))))
(defun files-x-test--get-lazy-var () (defun files-x-test--get-lazy-var ()
"Get the connection-local value of `remote-lazy-var'. "Get the connection-local value of `remote-lazy-var'.
@ -405,7 +438,9 @@ If it's not initialized yet, initialize it."
(ert-deftest files-x-test-setq-connection-local () (ert-deftest files-x-test-setq-connection-local ()
"Test dynamically setting connection local variables." "Test dynamically setting connection local variables."
(let (connection-local-profile-alist connection-local-criteria-alist) (let ((clpa connection-local-profile-alist)
(clca connection-local-criteria-alist)
connection-local-profile-alist connection-local-criteria-alist)
(connection-local-set-profile-variables (connection-local-set-profile-variables
'remote-lazy files-x-test--variables5) 'remote-lazy files-x-test--variables5)
(connection-local-set-profiles (connection-local-set-profiles
@ -440,7 +475,12 @@ If it's not initialized yet, initialize it."
(should (equal (files-x-test--get-lazy-var) "there")) (should (equal (files-x-test--get-lazy-var) "there"))
(with-connection-local-application-variables (with-connection-local-application-variables
(cadr files-x-test--application) (cadr files-x-test--application)
(should (equal remote-null-device "null")))))) (should (equal remote-null-device "null"))))
;; Cleanup.
(custom-set-variables
`(connection-local-profile-alist ',clpa now)
`(connection-local-criteria-alist ',clca now))))
(provide 'files-x-tests) (provide 'files-x-tests)
;;; files-x-tests.el ends here ;;; files-x-tests.el ends here

View file

@ -5819,6 +5819,8 @@ INPUT, if non-nil, is a string sent to the process."
(enable-remote-dir-locals t) (enable-remote-dir-locals t)
(inhibit-message t) (inhibit-message t)
kill-buffer-query-functions kill-buffer-query-functions
(clpa connection-local-profile-alist)
(clca connection-local-criteria-alist)
connection-local-profile-alist connection-local-criteria-alist) connection-local-profile-alist connection-local-criteria-alist)
(unwind-protect (unwind-protect
(progn (progn
@ -5867,6 +5869,9 @@ INPUT, if non-nil, is a string sent to the process."
(kill-buffer (current-buffer)))) (kill-buffer (current-buffer))))
;; Cleanup. ;; Cleanup.
(custom-set-variables
`(connection-local-profile-alist ',clpa now)
`(connection-local-criteria-alist ',clca now))
(ignore-errors (delete-directory tmp-name1 'recursive))))) (ignore-errors (delete-directory tmp-name1 'recursive)))))
(ert-deftest tramp-test34-explicit-shell-file-name () (ert-deftest tramp-test34-explicit-shell-file-name ()
@ -5881,6 +5886,8 @@ INPUT, if non-nil, is a string sent to the process."
(let ((default-directory ert-remote-temporary-file-directory) (let ((default-directory ert-remote-temporary-file-directory)
explicit-shell-file-name kill-buffer-query-functions explicit-shell-file-name kill-buffer-query-functions
(clpa connection-local-profile-alist)
(clca connection-local-criteria-alist)
connection-local-profile-alist connection-local-criteria-alist) connection-local-profile-alist connection-local-criteria-alist)
(unwind-protect (unwind-protect
(progn (progn
@ -5915,6 +5922,9 @@ INPUT, if non-nil, is a string sent to the process."
;; Cleanup. ;; Cleanup.
(put 'explicit-shell-file-name 'permanent-local nil) (put 'explicit-shell-file-name 'permanent-local nil)
(custom-set-variables
`(connection-local-profile-alist ',clpa now)
`(connection-local-criteria-alist ',clca now))
(kill-buffer "*shell*")))) (kill-buffer "*shell*"))))
;; `exec-path' was introduced in Emacs 27.1. `executable-find' has ;; `exec-path' was introduced in Emacs 27.1. `executable-find' has