summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2017-06-12 17:31:25 -0400
committerGlenn Morris <rgm@gnu.org>2017-06-12 17:31:25 -0400
commitab2116c9a951cdaf269311a31a8b3da79834742f (patch)
tree574a4077f288240c3966f6475554e3beecf8c102
parent1612d3dd78875b518ebcbcf046e6f9510ff69c99 (diff)
downloademacs-ab2116c9a951cdaf269311a31a8b3da79834742f.tar.gz
emacs-ab2116c9a951cdaf269311a31a8b3da79834742f.tar.bz2
emacs-ab2116c9a951cdaf269311a31a8b3da79834742f.zip
Clean up after module assertion tests
* test/src/emacs-module-tests.el (module--test-assertions): Use a temporary directory to contain any core dumps.
-rw-r--r--test/src/emacs-module-tests.el44
1 files changed, 24 insertions, 20 deletions
diff --git a/test/src/emacs-module-tests.el b/test/src/emacs-module-tests.el
index 502143dd48d..aea0bba540b 100644
--- a/test/src/emacs-module-tests.el
+++ b/test/src/emacs-module-tests.el
@@ -187,25 +187,29 @@ changes."
(skip-unless (file-executable-p mod-test-emacs))
;; This doesn’t 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