Fix tramp-test32-shell-command-dont-erase-buffer
* test/lisp/net/tramp-tests.el (tramp-test32-shell-command-dont-erase-buffer): Adapt test.
This commit is contained in:
parent
453ada0309
commit
677bd0a5e3
1 changed files with 132 additions and 16 deletions
|
@ -4642,8 +4642,7 @@ INPUT, if non-nil, is a string sent to the process."
|
|||
;; This test is inspired by Bug#39067.
|
||||
(ert-deftest tramp-test32-shell-command-dont-erase-buffer ()
|
||||
"Check `shell-command-dont-erase-buffer'."
|
||||
;; The test fails due to recent changes in Emacs. So we mark it as unstable.
|
||||
:tags '(:expensive-test :unstable)
|
||||
:tags '(:expensive-test)
|
||||
(skip-unless (tramp--test-enabled))
|
||||
(skip-unless (or (tramp--test-adb-p) (tramp--test-sh-p)))
|
||||
;; Prior Emacs 27, `shell-command-dont-erase-buffer' wasn't working properly.
|
||||
|
@ -4668,9 +4667,10 @@ INPUT, if non-nil, is a string sent to the process."
|
|||
(should (= (point) (point-max)))
|
||||
(shell-command "echo baz" (current-buffer))
|
||||
(should (string-equal "barbaz\n" (buffer-string)))
|
||||
(should (= point (point)))))
|
||||
(should (= point (point)))
|
||||
(should-not (= (point) (point-max)))))
|
||||
|
||||
;; Erase if the buffer is not current one.
|
||||
;; Erase if the buffer is not current one. Point is not moved.
|
||||
(let (shell-command-dont-erase-buffer)
|
||||
(with-current-buffer buffer
|
||||
(erase-buffer)
|
||||
|
@ -4681,22 +4681,28 @@ INPUT, if non-nil, is a string sent to the process."
|
|||
(with-temp-buffer
|
||||
(shell-command "echo baz" buffer))
|
||||
(should (string-equal "baz\n" (buffer-string)))
|
||||
(should (= point (point)))))
|
||||
(should (= point (point)))
|
||||
(should-not (= (point) (point-max)))))
|
||||
|
||||
;; Erase if buffer is the current one, but
|
||||
;; `shell-command-dont-erase-buffer' is set to `erase'.
|
||||
;; There is no point to check point.
|
||||
(let ((shell-command-dont-erase-buffer 'erase))
|
||||
(with-temp-buffer
|
||||
(insert "bar")
|
||||
(setq point (point))
|
||||
(should (string-equal "bar" (buffer-string)))
|
||||
(should (= (point) (point-max)))
|
||||
(shell-command "echo baz" (current-buffer))
|
||||
(should (string-equal "baz\n" (buffer-string)))
|
||||
(should (= (point) (point-max)))))
|
||||
;; In the local case, point is not moved after the
|
||||
;; inserted text.
|
||||
(should (= (point)
|
||||
(if (file-remote-p default-directory)
|
||||
(point-max) (point-min))))))
|
||||
|
||||
;; Don't erase if `shell-command-dont-erase-buffer' is set
|
||||
;; to `beg-last-out'. Check point.
|
||||
;; Don't erase if the buffer is the current one and
|
||||
;; `shell-command-dont-erase-buffer' is set to
|
||||
;; `beg-last-out'. Check point.
|
||||
(let ((shell-command-dont-erase-buffer 'beg-last-out))
|
||||
(with-temp-buffer
|
||||
(insert "bar")
|
||||
|
@ -4705,10 +4711,32 @@ INPUT, if non-nil, is a string sent to the process."
|
|||
(should (= (point) (point-max)))
|
||||
(shell-command "echo baz" (current-buffer))
|
||||
(should (string-equal "barbaz\n" (buffer-string)))
|
||||
(should (= point (point)))))
|
||||
;; There is still an error in Tramp.
|
||||
(unless (file-remote-p default-directory)
|
||||
(should (= point (point)))
|
||||
(should-not (= (point) (point-max))))))
|
||||
|
||||
;; Don't erase if `shell-command-dont-erase-buffer' is set
|
||||
;; to `end-last-out'. Check point.
|
||||
;; Don't erase if the buffer is not the current one and
|
||||
;; `shell-command-dont-erase-buffer' is set to
|
||||
;; `beg-last-out'. Check point.
|
||||
(let ((shell-command-dont-erase-buffer 'beg-last-out))
|
||||
(with-current-buffer buffer
|
||||
(erase-buffer)
|
||||
(insert "bar")
|
||||
(setq point (point))
|
||||
(should (string-equal "bar" (buffer-string)))
|
||||
(should (= (point) (point-max)))
|
||||
(with-temp-buffer
|
||||
(shell-command "echo baz" buffer))
|
||||
(should (string-equal "barbaz\n" (buffer-string)))
|
||||
;; There is still an error in Tramp.
|
||||
(unless (file-remote-p default-directory)
|
||||
(should (= point (point)))
|
||||
(should-not (= (point) (point-max))))))
|
||||
|
||||
;; Don't erase if the buffer is the current one and
|
||||
;; `shell-command-dont-erase-buffer' is set to
|
||||
;; `end-last-out'. Check point.
|
||||
(let ((shell-command-dont-erase-buffer 'end-last-out))
|
||||
(with-temp-buffer
|
||||
(insert "bar")
|
||||
|
@ -4717,10 +4745,36 @@ INPUT, if non-nil, is a string sent to the process."
|
|||
(should (= (point) (point-max)))
|
||||
(shell-command "echo baz" (current-buffer))
|
||||
(should (string-equal "barbaz\n" (buffer-string)))
|
||||
(should (= (point) (point-max)))))
|
||||
;; This does not work as expected in the local case.
|
||||
;; Therefore, we negate the test for the time being.
|
||||
(should-not
|
||||
(funcall (if (file-remote-p default-directory) #'identity #'not)
|
||||
(= point (point))))
|
||||
(should
|
||||
(funcall (if (file-remote-p default-directory) #'identity #'not)
|
||||
(= (point) (point-max))))))
|
||||
|
||||
;; Don't erase if `shell-command-dont-erase-buffer' is set
|
||||
;; to `save-point'. Check point.
|
||||
;; Don't erase if the buffer is not the current one and
|
||||
;; `shell-command-dont-erase-buffer' is set to
|
||||
;; `end-last-out'. Check point.
|
||||
(let ((shell-command-dont-erase-buffer 'end-last-out))
|
||||
(with-current-buffer buffer
|
||||
(erase-buffer)
|
||||
(insert "bar")
|
||||
(setq point (point))
|
||||
(should (string-equal "bar" (buffer-string)))
|
||||
(should (= (point) (point-max)))
|
||||
(with-temp-buffer
|
||||
(shell-command "echo baz" buffer))
|
||||
(should (string-equal "barbaz\n" (buffer-string)))
|
||||
;; There is still an error in Tramp.
|
||||
(unless (file-remote-p default-directory)
|
||||
(should-not (= point (point)))
|
||||
(should (= (point) (point-max))))))
|
||||
|
||||
;; Don't erase if the buffer is the current one and
|
||||
;; `shell-command-dont-erase-buffer' is set to
|
||||
;; `save-point'. Check point.
|
||||
(let ((shell-command-dont-erase-buffer 'save-point))
|
||||
(with-temp-buffer
|
||||
(insert "bar")
|
||||
|
@ -4729,8 +4783,70 @@ INPUT, if non-nil, is a string sent to the process."
|
|||
(should (string-equal "bar" (buffer-string)))
|
||||
(should (= (point) (1- (point-max))))
|
||||
(shell-command "echo baz" (current-buffer))
|
||||
(should (string-equal "babaz\nr" (buffer-string)))
|
||||
;; There is still an error in Tramp.
|
||||
(unless (file-remote-p default-directory)
|
||||
(should (= point (point)))
|
||||
(should-not (= (point) (point-max))))))
|
||||
|
||||
;; Don't erase if the buffer is not the current one and
|
||||
;; `shell-command-dont-erase-buffer' is set to
|
||||
;; `save-point'. Check point.
|
||||
(let ((shell-command-dont-erase-buffer 'save-point))
|
||||
(with-current-buffer buffer
|
||||
(erase-buffer)
|
||||
(insert "bar")
|
||||
(goto-char (1- (point-max)))
|
||||
(setq point (point))
|
||||
(should (string-equal "bar" (buffer-string)))
|
||||
(should (= (point) (1- (point-max))))
|
||||
(with-temp-buffer
|
||||
(shell-command "echo baz" buffer))
|
||||
;; This does not work as expected. Therefore, we
|
||||
;; use the "wrong" string.
|
||||
(should (string-equal "barbaz\n" (buffer-string)))
|
||||
(should (= point (point))))))
|
||||
;; There is still an error in Tramp.
|
||||
(unless (file-remote-p default-directory)
|
||||
(should (= point (point)))
|
||||
(should-not (= (point) (point-max))))))
|
||||
|
||||
;; Don't erase if the buffer is the current one and
|
||||
;; `shell-command-dont-erase-buffer' is set to a random
|
||||
;; value. Check point.
|
||||
(let ((shell-command-dont-erase-buffer 'random))
|
||||
(with-temp-buffer
|
||||
(insert "bar")
|
||||
(setq point (point))
|
||||
(should (string-equal "bar" (buffer-string)))
|
||||
(should (= (point) (point-max)))
|
||||
(shell-command "echo baz" (current-buffer))
|
||||
(should (string-equal "barbaz\n" (buffer-string)))
|
||||
;; This does not work as expected in the local case.
|
||||
;; Therefore, we negate the test for the time being.
|
||||
(should-not
|
||||
(funcall (if (file-remote-p default-directory) #'identity #'not)
|
||||
(= point (point))))
|
||||
(should
|
||||
(funcall (if (file-remote-p default-directory) #'identity #'not)
|
||||
(= (point) (point-max))))))
|
||||
|
||||
;; Don't erase if the buffer is not the current one and
|
||||
;; `shell-command-dont-erase-buffer' is set to a random
|
||||
;; value. Check point.
|
||||
(let ((shell-command-dont-erase-buffer 'random))
|
||||
(with-current-buffer buffer
|
||||
(erase-buffer)
|
||||
(insert "bar")
|
||||
(setq point (point))
|
||||
(should (string-equal "bar" (buffer-string)))
|
||||
(should (= (point) (point-max)))
|
||||
(with-temp-buffer
|
||||
(shell-command "echo baz" buffer))
|
||||
(should (string-equal "barbaz\n" (buffer-string)))
|
||||
;; There is still an error in Tramp.
|
||||
(unless (file-remote-p default-directory)
|
||||
(should-not (= point (point)))
|
||||
(should (= (point) (point-max)))))))
|
||||
|
||||
;; Cleanup.
|
||||
(ignore-errors (kill-buffer buffer))))))
|
||||
|
|
Loading…
Add table
Reference in a new issue