Sync with Tramp 2.5.0

* doc/misc/trampver.texi:
* lisp/net/trampver.el: Change version to "2.5.0".

* test/lisp/net/tramp-tests.el
(tramp--test--deftest-direct-async-process): Check, that
`make-process' supports file name handlers.  Suppress
`internal-default-process-sentinel'.
(tramp--test-async-shell-command): Set `proc' proper.
(tramp-test32-shell-command-direct-async): Tag it :unstable.
This commit is contained in:
Michael Albinus 2020-12-29 15:36:38 +01:00
parent ecd9264372
commit 7fbcca29b8
4 changed files with 38 additions and 25 deletions

View file

@ -8,7 +8,7 @@
@c In the Tramp GIT, the version numbers are auto-frobbed from
@c tramp.el, and the bug report address is auto-frobbed from
@c configure.ac.
@set trampver 2.5.0-pre
@set trampver 2.5.0
@set trampurl https://www.gnu.org/software/tramp/
@set tramp-bug-report-address tramp-devel@@gnu.org
@set emacsver 25.1

View file

@ -1131,6 +1131,13 @@ This happens for Android >= 4.0."
(if (string-match-p "[[:multibyte:]]" command)
;; Multibyte codepoints with four bytes are not supported at
;; least by toybox.
;; <https://android.stackexchange.com/questions/226638/how-to-use-multibyte-file-names-in-adb-shell/232379#232379>
;; mksh uses UTF-8 internally, but is currently limited to the
;; BMP (basic multilingua plane), which means U+0000 to
;; U+FFFD. If you want to use SMP codepoints (U-00010000 to
;; U-0010FFFD) on the input line, you currently have to disable
;; the UTF-8 mode (sorry).
(tramp-adb-execute-adb-command vec "shell" command)
(unless neveropen (tramp-adb-maybe-open-connection vec))

View file

@ -7,7 +7,7 @@
;; Maintainer: Michael Albinus <michael.albinus@gmx.de>
;; Keywords: comm, processes
;; Package: tramp
;; Version: 2.5.0-pre
;; Version: 2.5.0
;; Package-Requires: ((emacs "25.1"))
;; Package-Type: multi
;; URL: https://www.gnu.org/software/tramp/
@ -40,7 +40,7 @@
;; ./configure" to change them.
;;;###tramp-autoload
(defconst tramp-version "2.5.0-pre"
(defconst tramp-version "2.5.0"
"This version of Tramp.")
;;;###tramp-autoload
@ -76,7 +76,7 @@
;; Check for Emacs version.
(let ((x (if (not (string-lessp emacs-version "25.1"))
"ok"
(format "Tramp 2.5.0-pre is not fit for %s"
(format "Tramp 2.5.0 is not fit for %s"
(replace-regexp-in-string "\n" "" (emacs-version))))))
(unless (string-equal "ok" x) (error "%s" x)))

View file

@ -4475,23 +4475,30 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'."
"Define ert test `TEST-direct-async' for direct async processes.
If UNSTABLE is non-nil, the test is tagged as `:unstable'."
(declare (indent 1))
`(ert-deftest ,(intern (concat (symbol-name test) "-direct-async")) ()
,docstring
:tags (if ,unstable '(:expensive-test :unstable) '(:expensive-test))
(skip-unless (tramp--test-enabled))
(let ((default-directory tramp-test-temporary-file-directory)
(ert-test (ert-get-test ',test))
(tramp-connection-properties
(cons '(nil "direct-async-process" t) tramp-connection-properties)))
(skip-unless (tramp-direct-async-process-p))
;; For whatever reason, it doesn't cooperate with the "mock" method.
(skip-unless (not (tramp--test-mock-p)))
;; We do expect an established connection already,
;; `file-truename' does it by side-effect. Suppress
;; `tramp--test-enabled', in order to keep the connection.
(cl-letf (((symbol-function #'tramp--test-enabled) (lambda nil t)))
(file-truename tramp-test-temporary-file-directory)
(funcall (ert-test-body ert-test))))))
;; `make-process' supports file name handlers since Emacs 27.
(when (let ((file-name-handler-alist '(("" . (lambda (&rest _) t)))))
(ignore-errors (make-process :file-handler t)))
`(ert-deftest ,(intern (concat (symbol-name test) "-direct-async")) ()
,docstring
:tags (if ,unstable '(:expensive-test :unstable) '(:expensive-test))
(skip-unless (tramp--test-enabled))
(let ((default-directory tramp-test-temporary-file-directory)
(ert-test (ert-get-test ',test))
(tramp-connection-properties
(cons '(nil "direct-async-process" t)
tramp-connection-properties)))
(skip-unless (tramp-direct-async-process-p))
;; For whatever reason, it doesn't cooperate with the "mock" method.
(skip-unless (not (tramp--test-mock-p)))
;; We do expect an established connection already,
;; `file-truename' does it by side-effect. Suppress
;; `tramp--test-enabled', in order to keep the connection.
;; Suppress "Process ... finished" messages.
(cl-letf (((symbol-function #'tramp--test-enabled) (lambda nil t))
((symbol-function #'internal-default-process-sentinel)
#'ignore))
(file-truename tramp-test-temporary-file-directory)
(funcall (ert-test-body ert-test)))))))
(tramp--test--deftest-direct-async-process tramp-test29-start-file-process
"Check direct async `start-file-process'.")
@ -4704,8 +4711,7 @@ If UNSTABLE is non-nil, the test is tagged as `:unstable'."
(command output-buffer &optional error-buffer input)
"Like `async-shell-command', reading the output.
INPUT, if non-nil, is a string sent to the process."
(async-shell-command command output-buffer error-buffer)
(let ((proc (get-buffer-process output-buffer))
(let ((proc (async-shell-command command output-buffer error-buffer))
(delete-exited-processes t))
(cl-letf (((symbol-function #'shell-command-sentinel) #'ignore))
(when (stringp input)
@ -4818,7 +4824,7 @@ INPUT, if non-nil, is a string sent to the process."
(should (= cols async-shell-command-width))))))
(tramp--test--deftest-direct-async-process tramp-test32-shell-command
"Check direct async `shell-command'.")
"Check direct async `shell-command'." 'unstable)
;; This test is inspired by Bug#39067.
(ert-deftest tramp-test32-shell-command-dont-erase-buffer ()
@ -6452,7 +6458,7 @@ process sentinels. They shall not disturb each other."
(ignore-errors (delete-directory tmp-name 'recursive))))))
;; (tramp--test--deftest-direct-async-process tramp-test43-asynchronous-requests
;; "Check parallel direct asynchronous requests.")
;; "Check parallel direct asynchronous requests." 'unstable)
;; This test is inspired by Bug#29163.
(ert-deftest tramp-test44-auto-load ()