[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 107e60f: Add test for Bug#27009 in tramp-tests.el
From: |
Michael Albinus |
Subject: |
[Emacs-diffs] master 107e60f: Add test for Bug#27009 in tramp-tests.el |
Date: |
Tue, 23 May 2017 03:25:11 -0400 (EDT) |
branch: master
commit 107e60f49db71f1869848f0f0ce5ea7dd057366c
Author: Michael Albinus <address@hidden>
Commit: Michael Albinus <address@hidden>
Add test for Bug#27009 in tramp-tests.el
* lisp/net/tramp-sh.el (tramp-compute-multi-hops):
Check `tramp-file-name-real-host' for being a local host.
* lisp/net/tramp.el (tramp-postfix-host-regexp): Fix docstring.
* test/lisp/net/tramp-tests.el (tramp-test-temporary-file-directory):
Declare default host for mock method.
(tramp-test29-environment-variables-and-port-numbers): New test.
---
lisp/net/tramp-sh.el | 2 +-
lisp/net/tramp.el | 4 +++-
test/lisp/net/tramp-tests.el | 41 +++++++++++++++++++++++++++++++++++++++++
3 files changed, 45 insertions(+), 2 deletions(-)
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 9b001a9..999de8e 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -4546,7 +4546,7 @@ Goes through the list `tramp-inline-compress-commands'."
;; host name.
(let* ((v (car target-alist))
(method (tramp-file-name-method v))
- (host (tramp-file-name-host v)))
+ (host (tramp-file-name-real-host v)))
(unless
(or
;; There are multi-hops.
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 5b1e478..70abb89 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -837,7 +837,7 @@ Used in `tramp-make-tramp-file-name'."
(defun tramp-postfix-host-regexp ()
"Regexp matching delimiter between host names and localnames.
-nDerived from `tramp-postfix-host-format'."
+Derived from `tramp-postfix-host-format'."
(regexp-quote (tramp-postfix-host-format)))
(defconst tramp-localname-regexp ".*$"
@@ -4396,6 +4396,8 @@ Only works for Bourne-like shells."
;; * Use also port to distinguish connections. This is needed for
;; different hosts sitting behind a single router (distinguished by
;; different port numbers). (Tzvi Edelman)
+;; Also needed for different systems serve SSH on different ports of
+;; the same IP address. (Bug#27009)
;;
;; * Refactor code from different handlers. Start with
;; *-process-file. One idea is to generalize `tramp-send-command'
diff --git a/test/lisp/net/tramp-tests.el b/test/lisp/net/tramp-tests.el
index 49c32db..0106807 100644
--- a/test/lisp/net/tramp-tests.el
+++ b/test/lisp/net/tramp-tests.el
@@ -67,6 +67,9 @@
(tramp-remote-shell "/bin/sh")
(tramp-remote-shell-args ("-c"))
(tramp-connection-timeout 10)))
+ (add-to-list
+ 'tramp-default-host-alist
+ `("\\`mock\\'" nil ,(system-name)))
(format "/mock::%s" temporary-file-directory)))
"Temporary directory for Tramp tests.")
@@ -2920,6 +2923,42 @@ This tests also `make-symbolic-link', `file-truename'
and `add-name-to-file'."
(regexp-quote envvar)
(funcall this-shell-command-to-string "set")))))))))
+;; This test is inspired by Bug#27009.
+(ert-deftest tramp-test29-environment-variables-and-port-numbers ()
+ "Check that two connections with separate ports are different."
+ ;; Mark as failed until bug has been fixed.
+ :expected-result :failed
+ (skip-unless (tramp--test-enabled))
+ ;; We test it only for the mock-up connection; otherwise there might
+ ;; be problems with the used ports.
+ (skip-unless
+ (and
+ (eq tramp-syntax 'default)
+ (string-equal
+ "mock" (file-remote-p tramp-test-temporary-file-directory 'method))))
+
+ ;; We force a reconnect, in order to have a clean environment.
+ (dolist (dir
+ `(,tramp-test-temporary-file-directory
+ "/mock:localhost#11111:" "/mock:localhost#22222:"))
+ (tramp-cleanup-connection
+ (tramp-dissect-file-name dir) 'keep-debug 'keep-password))
+
+ (dolist (port '(11111 22222))
+ (let* ((default-directory
+ (format "/mock:localhost#%d:%s" port temporary-file-directory))
+ (shell-file-name "/bin/sh")
+ (envvar (concat "VAR_" (upcase (md5 (current-time-string)))))
+ ;; We cannot use `process-environment', because this would
+ ;; be applied in `process-file'.
+ (tramp-remote-process-environment
+ (cons
+ (format "%s=%d" envvar port) tramp-remote-process-environment)))
+ (should
+ (string-equal
+ (number-to-string port)
+ (shell-command-to-string (format "echo -n $%s" envvar)))))))
+
;; The functions were introduced in Emacs 26.1.
(ert-deftest tramp-test30-explicit-shell-file-name ()
"Check that connection-local `explicit-shell-file-name' is set."
@@ -3766,6 +3805,8 @@ Since it unloads Tramp, it shall be the last test to run."
;; * Fix `tramp-test05-expand-file-name-relative' in `expand-file-name'.
;; * Fix `tramp-test06-directory-file-name' for `ftp'.
;; * Fix `tramp-test27-start-file-process' on MS Windows (`process-send-eof'?).
+;; * Fix Bug#27009. Set expected error of
+;; `tramp-test29-environment-variables-and-port-numbers'.
;; * Fix Bug#16928. Set expected error of
`tramp-test36-asynchronous-requests'.
;; * Fix `tramp-test38-unload' (Not all symbols are unbound). Set
;; expected error.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] master 107e60f: Add test for Bug#27009 in tramp-tests.el,
Michael Albinus <=