1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-16 17:19:41 +00:00

Clean up after module assertion tests

* test/src/emacs-module-tests.el (module--test-assertions):
Use a temporary directory to contain any core dumps.
This commit is contained in:
Glenn Morris 2017-06-12 17:31:25 -04:00
parent 1612d3dd78
commit ab2116c9a9

View File

@ -187,25 +187,29 @@ changes."
(skip-unless (file-executable-p mod-test-emacs))
;; This doesnt yet cause undefined behavior.
(should (eq (mod-test-invalid-store) 123))
(with-temp-buffer
;; FIXME this dumps a core file if the user has them enabled,
;; which seems unfriendly.
(should (string-match-p
"Abort" ; eg "Aborted" or "Abort trap: 6"
(call-process mod-test-emacs nil t nil
"-batch" "-Q" "-module-assertions" "-eval"
(prin1-to-string
`(progn
(require 'mod-test ,mod-test-file)
;; Storing and reloading a local value
;; causes undefined behavior, which should be
;; detected by the module assertions.
(mod-test-invalid-store)
(mod-test-invalid-load))))))
;; FIXME a failure here gives an uninformative error.
(re-search-backward (rx bos "Emacs module assertion: "
"Emacs value not found in "
(+ digit) " values of "
(+ digit) " environments" ?\n eos))))
;; To contain any core dumps.
(let ((tempdir (make-temp-file "emacs-module-test" t)))
(unwind-protect
(with-temp-buffer
(should (string-match-p
"Abort" ; eg "Aborted" or "Abort trap: 6"
(let ((default-directory tempdir))
(call-process mod-test-emacs nil t nil
"-batch" "-Q" "-module-assertions" "-eval"
(prin1-to-string
`(progn
(require 'mod-test ,mod-test-file)
;; Storing and reloading a local
;; value causes undefined behavior,
;; which should be detected by the
;; module assertions.
(mod-test-invalid-store)
(mod-test-invalid-load)))))))
;; FIXME a failure here gives an uninformative error.
(re-search-backward (rx bos "Emacs module assertion: "
"Emacs value not found in "
(+ digit) " values of "
(+ digit) " environments" ?\n eos)))
(delete-directory tempdir t))))
;;; emacs-module-tests.el ends here