From: Andrea Corallo Date: Mon, 4 Oct 2021 20:47:30 +0000 (+0200) Subject: * Fix mh tests for native comp builds (bug#50975) X-Git-Tag: emacs-28.0.90~407 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=63cb65dccecb1146cdad7134e4b62ea3e1433880;p=emacs.git * Fix mh tests for native comp builds (bug#50975) * test/lisp/mh-e/mh-utils-tests.el (mh-ensure-native-trampolines): New function. (mh-test-utils-setup-with-mocks) (mh-test-utils-setup-with-variant): Use it. --- diff --git a/test/lisp/mh-e/mh-utils-tests.el b/test/lisp/mh-e/mh-utils-tests.el index 68152ce3b64..82afbab6474 100644 --- a/test/lisp/mh-e/mh-utils-tests.el +++ b/test/lisp/mh-e/mh-utils-tests.el @@ -107,6 +107,15 @@ install an MH variant and test it interactively." (if temp-home-dir (delete-directory temp-home-dir t)) (setenv "MH" original-mh-envvar)))) +(defun mh-ensure-native-trampolines () + "Build head of time the trampolines we'll need. +As `call-process'' and `file-directory-p' will be redefined, the +native compiler will invoke `call-process' to compile the +respective trampolines. To avoid interferences with the +`call-process' mocking we build these AOT." + (when (featurep 'native-compile) + (mapc #'comp-subr-trampoline-install '(call-process file-directory-p)))) + (defun mh-test-utils-setup-with-mocks () "Set dynamically bound variables so that MH programs are mocked out. The tests use this method if no configured MH variant is found." @@ -116,6 +125,7 @@ The tests use this method if no configured MH variant is found." (mh-populate-sub-folders-cache "+rela-folder/bar") (mh-populate-sub-folders-cache "+rela-folder/foo") (mh-populate-sub-folders-cache "+rela-folder/food") + (mh-ensure-native-trampolines) (fset 'call-process #'mh-test-utils-mock-call-process) (fset 'file-directory-p #'mh-test-utils-mock-file-directory-p)) @@ -205,6 +215,7 @@ The tests use this method if a configured MH variant is found." (make-directory (expand-file-name "foo" abso-folder) t) (make-directory (expand-file-name "food" abso-folder) t) (setq mh-test-abs-folder abso-folder) + (mh-ensure-native-trampolines) (fset 'call-process #'mh-test-utils-log-call-process) (fset 'file-directory-p #'mh-test-utils-log-file-directory-p) temp-home-dir))