diff options
| author | Justin Burkett <justin@burkett.cc> | 2018-01-09 11:56:46 -0500 |
|---|---|---|
| committer | Justin Burkett <justin@burkett.cc> | 2018-01-09 12:06:13 -0500 |
| commit | 5e1f851f6531029ddb77a2ffb893ad9628b68454 (patch) | |
| tree | c45e0d5f1ec69b9abea217a119087fee4fd5d6bf | |
| parent | d5e3a83a5783fb0317efbe349bb6a03e65011506 (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.el | 3 | ||||
| -rw-r--r-- | 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])) |
