From: Eli Zaretskii <eliz@gnu.org> Date: Thu, 5 Nov 2015 18:12:19 +0000 (+0200) Subject: Add test for bug #21831 X-Git-Tag: emacs-25.0.90~917 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=3be53aaed126e72be11a6743de6ddd51aaf96b63;p=emacs.git Add test for bug #21831 * test/automated/process-tests.el (start-process-should-not-modify-arguments): New test. (Bug#21831) Suggested by Nicolas Richard <youngfrog@members.fsf.org> --- diff --git a/test/automated/process-tests.el b/test/automated/process-tests.el index 58a2de7451d..4a43a013fb4 100644 --- a/test/automated/process-tests.el +++ b/test/automated/process-tests.el @@ -142,4 +142,22 @@ (should (equal "hello stderr!\n" (mapconcat #'identity (nreverse stderr-output) ""))))) +(ert-deftest start-process-should-not-modify-arguments () + "`start-process' must not modify its arguments in-place." + ;; See bug#21831. + (let* ((path (pcase system-type + ((or 'windows-nt 'ms-dos) + ;; Make sure the file name uses forward slashes. + ;; The original bug was that 'start-process' would + ;; convert forward slashes to backslashes. + (expand-file-name (executable-find "attrib.exe"))) + (_ "/bin//sh"))) + (samepath (copy-sequence path))) + ;; Make sure 'start-process' actually goes all the way and invokes + ;; the program. + (should (process-live-p (condition-case nil + (start-process "" nil path) + (error nil)))) + (should (equal path samepath)))) + (provide 'process-tests)