On Fri, Oct 30, 2015 at 9:10 PM, Eli Zaretskii wrote: > If the batch says > > cmd /c echo arg1 = %1, arg2 = %2 > > i.e. invokes cmd.exe from the batch file, does the test still fail? With (with-temp-file batfile (insert "@cmd /c echo arg1 = %1, arg2 = %2\n")) it still works on cmd.exe, fails on tcc.exe > If it still fails, I think making the test more tolerant of the > trailing whitespace is IMO a better alternative than letting it fail. > After all, that trailing space is not what we are testing there. Something like this, you mean? diff --git a/test/automated/process-tests.el b/test/automated/process-tests.el index 1dab615..58a2de7 100644 --- a/test/automated/process-tests.el +++ b/test/automated/process-tests.el @@ -61,15 +61,15 @@ process-test-sentinel-wait-function-working-p ;; to force quoting. (setq batfile (make-temp-file "echo args" nil ".bat")) (with-temp-file batfile - (insert "@echo arg1 = %1, arg2 = %2\n")) + (insert "@echo arg1=%1, arg2=%2\n")) (with-temp-buffer (call-process batfile nil '(t t) t "x &y") - (should (string= (buffer-string) "arg1 = \"x &y\", arg2 = \n"))) + (should (string= (buffer-string) "arg1=\"x &y\", arg2=\n"))) (with-temp-buffer (call-process-shell-command (mapconcat #'shell-quote-argument (list batfile "x &y") " ") nil '(t t) t) - (should (string= (buffer-string) "arg1 = \"x &y\", arg2 = \n")))) + (should (string= (buffer-string) "arg1=\"x &y\", arg2=\n")))) (when batfile (delete-file batfile)))))) (ert-deftest process-test-stderr-buffer () warning: LF will be replaced by CRLF in test/automated/process-tests.el. The file will have its original line endings in your working directory. BTW, curiously, the stderr-related tests in the same test file (process-test-stderr-buffer and process-test-stderr-filter) fail sometimes. Much more frequently on TCC than CMD, but they also fail in CMD, as in these examples: C:\...\automated> ..\..\src\emacs.exe -Q -batch -l ert -l process-tests.elc -f ert-run-tests-batch-and-exit Running 5 tests (2015-10-31 23:35:46+0100) passed 1/5 process-test-quoted-batfile passed 2/5 process-test-sentinel-accept-process-output passed 3/5 process-test-sentinel-sit-for Test process-test-stderr-buffer backtrace: #[nil "\306\307C \310 \311 \3121 \313\216\314 \"\211 )0\202 \210 ert--run-test-internal([cl-struct-ert--test-execution-info [cl-struc ert-run-test([cl-struct-ert-test process-test-stderr-buffer nil #[ni ert-run-or-rerun-test([cl-struct-ert--stats t [[cl-struct-ert-test p ert-run-tests(t #[385 "\306 \307\"\203G \211\211G\310U\203 \211@\20 ert-run-tests-batch(nil) ert-run-tests-batch-and-exit() command-line-1(("-l" "ert" "-l" "process-tests.elc" "-f" "ert-run-te command-line() normal-top-level() Test process-test-stderr-buffer condition: (ert-test-failed ((should (with-current-buffer stderr-buffer (goto-char ...) (looking-at "hello stderr!"))) :form (save-current-buffer (set-buffer stderr-buffer) (goto-char (point-min)) (looking-at "hello stderr!")) :value nil)) FAILED 4/5 process-test-stderr-buffer passed 5/5 process-test-stderr-filter Ran 5 tests, 4 results as expected, 1 unexpected (2015-10-31 23:35:47+0100) 1 unexpected results: FAILED process-test-stderr-buffer C:\...\automated> ..\..\src\emacs.exe -Q -batch -l ert -l process-tests.elc -f ert-run-tests-batch-and-exit Running 5 tests (2015-10-31 23:34:42+0100) passed 1/5 process-test-quoted-batfile passed 2/5 process-test-sentinel-accept-process-output passed 3/5 process-test-sentinel-sit-for passed 4/5 process-test-stderr-buffer Test process-test-stderr-filter backtrace: #[nil "\306\307C \310 \311 \3121 \313\216\314 \"\211 )0\202 \210 ert--run-test-internal([cl-struct-ert--test-execution-info [cl-struc ert-run-test([cl-struct-ert-test process-test-stderr-filter nil #[ni ert-run-or-rerun-test([cl-struct-ert--stats t [[cl-struct-ert-test p ert-run-tests(t #[385 "\306 \307\"\203G \211\211G\310U\203 \211@\20 ert-run-tests-batch(nil) ert-run-tests-batch-and-exit() command-line-1(("-l" "ert" "-l" "process-tests.elc" "-f" "ert-run-te command-line() normal-top-level() Test process-test-stderr-filter condition: (ert-test-failed ((should stderr-sentinel-called) :form stderr-sentinel-called :value nil)) FAILED 5/5 process-test-stderr-filter Ran 5 tests, 4 results as expected, 1 unexpected (2015-10-31 23:34:43+0100) 1 unexpected results: FAILED process-test-stderr-filter