]> git.eshelyaron.com Git - emacs.git/commitdiff
Clean up after module assertion tests
authorGlenn Morris <rgm@gnu.org>
Mon, 12 Jun 2017 21:31:25 +0000 (17:31 -0400)
committerGlenn Morris <rgm@gnu.org>
Mon, 12 Jun 2017 21:31:25 +0000 (17:31 -0400)
* test/src/emacs-module-tests.el (module--test-assertions):
Use a temporary directory to contain any core dumps.

test/src/emacs-module-tests.el

index 502143dd48dc69f37baa5113030639a2bd4b1e68..aea0bba540b2ed310cb4bd4c9551c4a63b1255c4 100644 (file)
@@ -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