;; Cleanup.
(ignore-errors (delete-process proc)))))
+(defun tramp--test-shell-command-to-string-asynchronously (command)
+ "Like `shell-command-to-string', but for asynchronous processes."
+ (with-temp-buffer
+ (async-shell-command command (current-buffer))
+ (with-timeout
+ ((if (getenv "EMACS_EMBA_CI") 30 10) (tramp--test-timeout-handler))
+ (while (accept-process-output
+ (get-buffer-process (current-buffer)) nil nil t)))
+ (buffer-substring-no-properties (point-min) (point-max))))
+
(ert-deftest tramp-test32-shell-command ()
"Check `shell-command'."
:tags '(:expensive-test)
;; Suppress nasty messages.
(inhibit-message t)
kill-buffer-query-functions)
+
+ ;; Test ordinary `shell-command'.
(unwind-protect
(with-temp-buffer
(write-region "foo" nil tmp-name)
;; Cleanup.
(ignore-errors (delete-file tmp-name)))
+ ;; Test ordinary `async-shell-command'.
(unwind-protect
(with-temp-buffer
(write-region "foo" nil tmp-name)
;; Cleanup.
(ignore-errors (delete-file tmp-name)))
+ ;; Test sending string to `async-shell-command'.
(unwind-protect
(with-temp-buffer
(write-region "foo" nil tmp-name)
(buffer-string))))
;; Cleanup.
- (ignore-errors (delete-file tmp-name))))))
+ (ignore-errors (delete-file tmp-name)))
-(defun tramp--test-shell-command-to-string-asynchronously (command)
- "Like `shell-command-to-string', but for asynchronous processes."
- (with-temp-buffer
- (async-shell-command command (current-buffer))
- (with-timeout
- ((if (getenv "EMACS_EMBA_CI") 30 10) (tramp--test-timeout-handler))
- (while (accept-process-output
- (get-buffer-process (current-buffer)) nil nil t)))
- (buffer-substring-no-properties (point-min) (point-max))))
+ ;; Test `shell-command-width' of `async-shell-command'.
+ (when (tramp--test-sh-p)
+ (let (shell-command-width)
+ (should
+ (string-equal
+ ;; `frame-width' does not return a proper value.
+ ;; `process-lines' uses `call-process', it doesn't care
+ ;; about `shell-command-width'.
+ (format "%s\n" (car (process-lines "tput" "cols")))
+ (tramp--test-shell-command-to-string-asynchronously
+ "tput cols")))
+ (setq shell-command-width 1024)
+ (should
+ (string-equal
+ "1024\n"
+ (tramp--test-shell-command-to-string-asynchronously
+ "tput cols"))))))))
;; This test is inspired by Bug#23952.
(ert-deftest tramp-test33-environment-variables ()