From f7262b8f81e66a1963b020b1fe720575dc8aaba9 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Wed, 7 Dec 2022 21:23:42 +0200 Subject: [PATCH] Fix comint-tests on MS-Windows * test/lisp/comint-tests.el (comint-tests/test-password-function): On MS-Windows, call 'w32-native-executable-find' instead of 'executable-find', to find the native version of the 'cat' program. (w32-native-executable-p, w32-native-executable-find): New functions. --- test/lisp/comint-tests.el | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/test/lisp/comint-tests.el b/test/lisp/comint-tests.el index 8402c13daf3..88427dd05b1 100644 --- a/test/lisp/comint-tests.el +++ b/test/lisp/comint-tests.el @@ -59,9 +59,23 @@ (dolist (str comint-testsuite-password-strings) (should (string-match comint-password-prompt-regexp str)))) +(declare-function 'w32-application-type "w32proc.c") +(defun w32-native-executable-p (fname) + "Predicate to test program FNAME for being a native Windows application." + (and (memq (w32-application-type fname) '(w32-native dos)) + (file-executable-p fname))) + +(defun w32-native-executable-find (name) + "Find a native MS-Windows application named NAME. +This is needed to avoid invoking MSYS or Cygwin executables that +happen to lurk on PATH when running the test suite." + (locate-file name exec-path exec-suffixes 'w32-native-executable-p)) + (defun comint-tests/test-password-function (password-function) "PASSWORD-FUNCTION can return nil or a string." - (when-let ((cat (executable-find "cat"))) + (when-let ((cat (if (eq system-type 'windows-nt) + (w32-native-executable-find "cat") + (executable-find "cat")))) (let ((comint-password-function password-function)) (cl-letf (((symbol-function 'read-passwd) (lambda (&rest _args) "non-nil"))) -- 2.39.5