aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Burkett <justin@burkett.cc>2018-01-09 11:56:46 -0500
committerJustin Burkett <justin@burkett.cc>2018-01-09 12:06:13 -0500
commit5e1f851f6531029ddb77a2ffb893ad9628b68454 (patch)
treec45e0d5f1ec69b9abea217a119087fee4fd5d6bf
parentd5e3a83a5783fb0317efbe349bb6a03e65011506 (diff)
Don't use make-temp-name
The docstring says there is a race condition if you use make-temp-name then later try to write the file which is exactly what was happening in evil-test-write. I suspect this is the cause of the (random) segfaults in travis. Also disentangle the separate tests in evil-test-write.
-rw-r--r--evil-test-helpers.el3
-rw-r--r--evil-tests.el17
2 files changed, 12 insertions, 8 deletions
diff --git a/evil-test-helpers.el b/evil-test-helpers.el
index b3c3c3f..c70ea21 100644
--- a/evil-test-helpers.el
+++ b/evil-test-helpers.el
@@ -385,8 +385,7 @@ is executed at the end."
(defun evil-temp-filename ()
"Return an appropriate temporary filename."
- (make-temp-name (expand-file-name "evil-test"
- temporary-file-directory)))
+ (make-temp-file "evil-test"))
(defmacro evil-with-temp-file (file-var content &rest body)
"Create a temp file with CONTENT and bind its name to FILE-VAR within BODY.
diff --git a/evil-tests.el b/evil-tests.el
index ba22416..2ab00d4 100644
--- a/evil-tests.el
+++ b/evil-tests.el
@@ -7444,22 +7444,27 @@ maybe we need one line more with some text\n")
"line1\nline2\nline3\nline4\nline5\n"
(":w")
(file filename "line1\nline2\nline3\nline4\nline5\n"))))
- (let ((filename (evil-temp-filename)))
- (ert-info ("Write current buffer to new file")
+ (ert-info ("Write current buffer to new file")
+ (let ((filename (evil-temp-filename)))
(evil-test-buffer
"[l]ine1\nline2\nline3\nline4\nline5\n"
+ (delete-file filename)
((vconcat ":w " filename [return]))
(file filename "line1\nline2\nline3\nline4\nline5\n")
- (delete-file filename)))
- (ert-info ("Write part of a buffer")
+ (delete-file filename))))
+ (ert-info ("Write part of a buffer")
+ (let ((filename (evil-temp-filename)))
(evil-test-buffer
"[l]ine1\nline2\nline3\nline4\nline5\n"
+ (delete-file filename)
((vconcat ":2,3w " filename [return]))
(file filename "line2\nline3\n")
- (delete-file filename)))
- (ert-info ("Appending a file")
+ (delete-file filename))))
+ (ert-info ("Appending a file")
+ (let ((filename (evil-temp-filename)))
(evil-test-buffer
"[l]ine1\nline2\nline3\nline4\nline5\n"
+ (delete-file filename)
((vconcat ":4w " filename [return]))
(file filename "line4\n")
((vconcat ":1,2w >>" filename [return]))