]> git.eshelyaron.com Git - emacs.git/commitdiff
Replace some macros with ert-with-temp-(file|directory)
authorStefan Kangas <stefan@marxist.se>
Sat, 6 Nov 2021 15:05:02 +0000 (16:05 +0100)
committerStefan Kangas <stefan@marxist.se>
Sat, 6 Nov 2021 18:16:05 +0000 (19:16 +0100)
* test/lisp/custom-tests.el (custom-tests--with-temp-dir):
* test/lisp/files-tests.el (files-tests--with-temp-file):
* test/lisp/progmodes/project-tests.el
(project-tests--with-temporary-directory):
* test/src/emacs-module-tests.el (module--with-temp-directory):
* test/src/emacs-tests.el (emacs-tests--with-temp-file):
* test/src/lread-tests.el (lread-tests--with-temp-file):
* test/src/process-tests.el (process-tests--with-temp-directory):
Replace macros with 'ert-with-temp-(file|directory)'.  Update callers.

test/lisp/custom-tests.el
test/lisp/files-tests.el
test/lisp/progmodes/project-tests.el
test/src/emacs-module-tests.el
test/src/emacs-tests.el
test/src/lread-tests.el
test/src/process-tests.el

index f4c43b0a1488d498c19d58f51afdda15c85b2084..6ebf2d53bada1761a34691618708107c8f029220 100644 (file)
 (require 'wid-edit)
 (require 'cus-edit)
 
-(defmacro custom-tests--with-temp-dir (&rest body)
-  "Eval BODY with `temporary-file-directory' bound to a fresh directory.
-Ensure the directory is recursively deleted after the fact."
-  (declare (debug t) (indent 0))
-  (let ((dir (make-symbol "dir")))
-    `(let ((,dir (file-name-as-directory (make-temp-file "custom-tests-" t))))
-       (unwind-protect
-           (let ((temporary-file-directory ,dir))
-             ,@body)
-         (delete-directory ,dir t)))))
-
 (ert-deftest custom-theme--load-path ()
   "Test `custom-theme--load-path' behavior."
-  (custom-tests--with-temp-dir
+  (ert-with-temp-directory temporary-file-directory
     ;; Path is empty.
     (let ((custom-theme-load-path ()))
       (should (null (custom-theme--load-path))))
@@ -97,7 +86,7 @@ Ensure the directory is recursively deleted after the fact."
 (ert-deftest custom-tests-require-theme ()
   "Test `require-theme'."
   (require 'warnings)
-  (custom-tests--with-temp-dir
+  (ert-with-temp-directory temporary-file-directory
     (let* ((default-directory temporary-file-directory)
            (custom-theme-load-path (list default-directory))
            (load-path ()))
index 4b9d4e4516437495ccf7786fd62da250d17d0e05..f2a6e062acc36d82128d098dd5dcb25ec59ed3a0 100644 (file)
@@ -341,14 +341,6 @@ be $HOME."
            (progn ,@body)
          (advice-remove #',symbol ,function)))))
 
-(defmacro files-tests--with-temp-file (name &rest body)
-  (declare (indent 1) (debug (symbolp body)))
-  (cl-check-type name symbol)
-  `(let ((,name (make-temp-file "emacs")))
-     (unwind-protect
-         (progn ,@body)
-       (delete-file ,name))))
-
 (ert-deftest files-tests-file-name-non-special--buffers ()
   "Check that Bug#25951 is fixed.
 We call `verify-visited-file-modtime' on a buffer visiting a file
@@ -357,7 +349,7 @@ the buffer current and a nil argument, second passing the buffer
 object explicitly.  In both cases no error should be raised and
 the `file-name-non-special' handler for quoted file names should
 be invoked with the right arguments."
-  (files-tests--with-temp-file temp-file-name
+  (ert-with-temp-file temp-file-name
     (with-temp-buffer
      (let* ((buffer-visiting-file (current-buffer))
             (actual-args ())
@@ -1318,7 +1310,7 @@ name (Bug#28412)."
       (set-buffer-modified-p t)
       (should-error (save-buffer) :type 'error))
     ;; Then a buffer visiting a file: should save normally.
-    (files-tests--with-temp-file temp-file-name
+    (ert-with-temp-file temp-file-name
       (with-current-buffer (find-file-noselect temp-file-name)
         (setq write-contents-functions nil)
         (insert "p")
@@ -1509,7 +1501,7 @@ The door of all subtleties!
 
 (ert-deftest files-tests-revert-buffer ()
   "Test that revert-buffer is successful."
-  (files-tests--with-temp-file temp-file-name
+  (ert-with-temp-file temp-file-name
     (with-temp-buffer
       (insert files-tests-lao)
       (write-file temp-file-name)
@@ -1522,7 +1514,7 @@ The door of all subtleties!
 
 (ert-deftest files-tests-revert-buffer-with-fine-grain ()
   "Test that revert-buffer-with-fine-grain is successful."
-  (files-tests--with-temp-file temp-file-name
+  (ert-with-temp-file temp-file-name
     (with-temp-buffer
       (insert files-tests-lao)
       (write-file temp-file-name)
index 1e3f258ac2a2d0fb7752101a022d1081650d64ce..a469414a743a18ae343c68b2a7c12e09e9bba423 100644 (file)
 
 (require 'cl-lib)
 (require 'ert)
+(require 'ert-x) ; ert-with-temp-directory
 (require 'grep)
 (require 'xref)
 
-(defmacro project-tests--with-temporary-directory (var &rest body)
-  "Create a new temporary directory.
-Bind VAR to the name of the directory, and evaluate BODY.  Delete
-the directory after BODY exits."
-  (declare (debug (symbolp body)) (indent 1))
-  (cl-check-type var symbol)
-  (let ((directory (make-symbol "directory")))
-    `(let ((,directory (make-temp-file "project-tests-" :directory)))
-       (unwind-protect
-           (let ((,var ,directory))
-             ,@body)
-         (delete-directory ,directory :recursive)))))
-
 (ert-deftest project/quoted-directory ()
   "Check that `project-files' and `project-find-regexp' deal with
 quoted directory names (Bug#47799)."
   (skip-unless (executable-find find-program))
   (skip-unless (executable-find "xargs"))
   (skip-unless (executable-find "grep"))
-  (project-tests--with-temporary-directory directory
+  (ert-with-temp-directory directory
     (let ((default-directory directory)
           (project-current-inhibit-prompt t)
           (project-find-functions nil)
@@ -95,7 +83,7 @@ quoted directory names (Bug#47799)."
 returned by `project-ignores' if the root directory is a
 directory name (Bug#48471)."
   (skip-unless (executable-find find-program))
-  (project-tests--with-temporary-directory dir
+  (ert-with-temp-directory dir
     (make-empty-file (expand-file-name "some-file" dir))
     (make-empty-file (expand-file-name "ignored-file" dir))
     (let* ((project (make-project-tests--trivial
@@ -111,7 +99,7 @@ directory name (Bug#48471)."
   "Check that `project-files' does not ignore all files.
 When `project-ignores' includes a name matching project dir."
   (skip-unless (executable-find find-program))
-  (project-tests--with-temporary-directory dir
+  (ert-with-temp-directory dir
     (make-empty-file (expand-file-name "some-file" dir))
     (let* ((project (make-project-tests--trivial
                      :root (file-name-as-directory dir)
index 9765bb109f69c411a68586bd6802816e9f492f11..442bca5facbbb410cb6fc4353298dc670a82c2ce 100644 (file)
@@ -211,20 +211,6 @@ changes."
   (should (equal (help-function-arglist #'mod-test-sum)
                  '(arg1 arg2))))
 
-(defmacro module--with-temp-directory (name &rest body)
-  "Bind NAME to the name of a temporary directory and evaluate BODY.
-NAME must be a symbol.  Delete the temporary directory after BODY
-exits normally or non-locally.  NAME will be bound to the
-directory name (not the directory file name) of the temporary
-directory."
-  (declare (indent 1))
-  (cl-check-type name symbol)
-  `(let ((,name (file-name-as-directory
-                 (make-temp-file "emacs-module-test" :directory))))
-     (unwind-protect
-         (progn ,@body)
-       (delete-directory ,name :recursive))))
-
 (defmacro module--test-assertion (pattern &rest body)
   "Test that PATTERN matches the assertion triggered by BODY.
 Run Emacs as a subprocess, load the test module `mod-test-file',
@@ -233,7 +219,7 @@ assertion message that matches PATTERN.  PATTERN is evaluated and
 must evaluate to a regular expression string."
   (declare (indent 1))
   ;; To contain any core dumps.
-  `(module--with-temp-directory tempdir
+  `(ert-with-temp-directory tempdir
      (with-temp-buffer
        (let* ((default-directory tempdir)
               (status (call-process mod-test-emacs nil t nil
index ac08e055b5549a76f67c41ab48211fea818ab202..a1a412423cb0ac118482b42dcc5facba3d09b2f1 100644 (file)
@@ -25,6 +25,7 @@
 
 (require 'cl-lib)
 (require 'ert)
+(require 'ert-x) ; ert-with-temp-file
 (require 'rx)
 (require 'subr-x)
 
                         "--seccomp=/does-not-exist.bpf")
           0))))
 
-(cl-defmacro emacs-tests--with-temp-file
-    (var (prefix &optional suffix text) &rest body)
-  "Evaluate BODY while a new temporary file exists.
-Bind VAR to the name of the file.  Pass PREFIX, SUFFIX, and TEXT
-to `make-temp-file', which see."
-  (declare (indent 2) (debug (symbolp (form form form) body)))
-  (cl-check-type var symbol)
-  ;; Use an uninterned symbol so that the code still works if BODY
-  ;; changes VAR.
-  (let ((filename (make-symbol "filename")))
-    `(let ((,filename (make-temp-file ,prefix nil ,suffix ,text)))
-       (unwind-protect
-           (let ((,var ,filename))
-             ,@body)
-         (delete-file ,filename)))))
-
 (ert-deftest emacs-tests/seccomp/empty-file ()
   (skip-unless (string-match-p (rx bow "SECCOMP" eow)
                                system-configuration-features))
@@ -69,7 +54,8 @@ to `make-temp-file', which see."
          (expand-file-name invocation-name invocation-directory))
         (process-environment nil))
     (skip-unless (file-executable-p emacs))
-    (emacs-tests--with-temp-file filter ("seccomp-invalid-" ".bpf")
+    (ert-with-temp-file filter
+      :prefix "seccomp-invalid-" :suffix ".bpf"
       ;; The --seccomp option is processed early, without filename
       ;; handlers.  Therefore remote or quoted filenames wouldn't
       ;; work.
@@ -94,9 +80,9 @@ to `make-temp-file', which see."
         ;; Either 8 or 16, but 16 should be large enough in all cases.
         (filter-size 16))
     (skip-unless (file-executable-p emacs))
-    (emacs-tests--with-temp-file
-        filter ("seccomp-too-large-" ".bpf"
-                (make-string (* (1+ ushort-max) filter-size) ?a))
+    (ert-with-temp-file filter
+      :prefix "seccomp-too-large-" :suffix ".bpf"
+      :text (make-string (* (1+ ushort-max) filter-size) ?a)
       ;; The --seccomp option is processed early, without filename
       ;; handlers.  Therefore remote or quoted filenames wouldn't
       ;; work.
@@ -117,8 +103,8 @@ to `make-temp-file', which see."
          (expand-file-name invocation-name invocation-directory))
         (process-environment nil))
     (skip-unless (file-executable-p emacs))
-    (emacs-tests--with-temp-file filter ("seccomp-invalid-" ".bpf"
-                                         "123456")
+    (ert-with-temp-file filter
+      :prefix "seccomp-invalid-" :suffix ".bpf" :text "123456"
       ;; The --seccomp option is processed early, without filename
       ;; handlers.  Therefore remote or quoted filenames wouldn't
       ;; work.
index dac8f95bc4dd936882261e7e49de0056630724cb..be685fe999f200c14eb18f6dbe6304e63c564134 100644 (file)
   (should (equal '(#s(foo) #s(foo))
                  (read "(#1=#s(foo) #1#)"))))
 
-(defmacro lread-tests--with-temp-file (file-name-var &rest body)
-  (declare (indent 1))
-  (cl-check-type file-name-var symbol)
-  `(let ((,file-name-var (make-temp-file "emacs")))
-     (unwind-protect
-         (progn ,@body)
-       (delete-file ,file-name-var))))
-
 (defun lread-tests--last-message ()
   (with-current-buffer "*Messages*"
     (save-excursion
 (ert-deftest lread-tests--unescaped-char-literals ()
   "Check that loading warns about unescaped character
 literals (Bug#20852)."
-  (lread-tests--with-temp-file file-name
+  (ert-with-temp-file file-name
     (write-region "?) ?( ?; ?\" ?[ ?]" nil file-name)
     (should (equal (load file-name nil :nomessage :nosuffix) t))
     (should (equal (lread-tests--last-message)
index 44f3ea2fbb418b8006e7d790103c93aad9badfe8..785194b3ff410c3c36490edeacd1216562247715 100644 (file)
@@ -25,6 +25,7 @@
 
 (require 'cl-lib)
 (require 'ert)
+(require 'ert-x) ; ert-with-temp-directory
 (require 'puny)
 (require 'subr-x)
 (require 'dns)
@@ -531,18 +532,6 @@ FD_SETSIZE."
            (delete-process (pop ,processes))
            ,@body)))))
 
-(defmacro process-tests--with-temp-directory (var &rest body)
-  "Bind VAR to the name of a new directory and evaluate BODY.
-Afterwards, delete the directory."
-  (declare (indent 1) (debug (symbolp body)))
-  (cl-check-type var symbol)
-  (let ((dir (make-symbol "dir")))
-    `(let ((,dir (make-temp-file "emacs-test-" :dir)))
-       (unwind-protect
-           (let ((,var ,dir))
-             ,@body)
-         (delete-directory ,dir :recursive)))))
-
 ;; Tests for FD_SETSIZE overflow (Bug#24325).  The following tests
 ;; generate lots of process objects of the various kinds.  Running the
 ;; tests with assertions enabled should not result in any crashes due
@@ -630,7 +619,7 @@ FD_SETSIZE file descriptors (Bug#24325)."
   ;; Avoid hang due to connect/accept handshake on Cygwin (bug#49496).
   (skip-unless (not (eq system-type 'cygwin)))
   (with-timeout (60 (ert-fail "Test timed out"))
-    (process-tests--with-temp-directory directory
+    (ert-with-temp-directory directory
       (process-tests--with-processes processes
         (let* ((num-clients 10)
                (socket-name (expand-file-name "socket" directory))