summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrea Corallo <akrl@sdf.org>2021-10-04 22:47:30 +0200
committerAndrea Corallo <akrl@sdf.org>2021-10-04 22:49:45 +0200
commit63cb65dccecb1146cdad7134e4b62ea3e1433880 (patch)
tree50edce98b25bbf22b1bd05338d052dd4d8521262
parente606cc6f4023a3b20179ed51e339941be7c36bd2 (diff)
downloademacs-63cb65dcce.tar.gz
* 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.
-rw-r--r--test/lisp/mh-e/mh-utils-tests.el11
1 files changed, 11 insertions, 0 deletions
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))