From 5e1f851f6531029ddb77a2ffb893ad9628b68454 Mon Sep 17 00:00:00 2001 From: Justin Burkett Date: Tue, 9 Jan 2018 11:56:46 -0500 Subject: 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. --- evil-test-helpers.el | 3 +-- evil-tests.el | 17 +++++++++++------ 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])) -- cgit v1.0