]> code.delx.au - gnu-emacs/commitdiff
Add test for bug #21831
authorEli Zaretskii <eliz@gnu.org>
Thu, 5 Nov 2015 18:12:19 +0000 (20:12 +0200)
committerEli Zaretskii <eliz@gnu.org>
Thu, 5 Nov 2015 18:12:19 +0000 (20:12 +0200)
* test/automated/process-tests.el
(start-process-should-not-modify-arguments): New test.  (Bug#21831)
Suggested by Nicolas Richard <youngfrog@members.fsf.org>

test/automated/process-tests.el

index 58a2de7451d4870ca5a7139588adaf9521e627df..4a43a013fb44de2dec2b08d7b1627be6f8af505f 100644 (file)
     (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)