changeset 7763:26bb1a6abe25 v7.4.1179

commit https://github.com/vim/vim/commit/f4f79b84a5595c511f6fdbe4e3e1d188d97879a0 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Jan 25 20:38:30 2016 +0100 patch 7.4.1179 Problem: test_writefile and test_viml do not delete the tempfile. Solution: Delete the tempfile. (Charles Cooper) Add DeleteTheScript().
author Christian Brabandt <cb@256bit.org>
date Mon, 25 Jan 2016 20:45:05 +0100
parents faf07cb27904
children c500ad63925b
files src/testdir/test_viml.vim src/testdir/test_writefile.in src/version.c
diffstat 3 files changed, 20 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_viml.vim
+++ b/src/testdir/test_viml.vim
@@ -55,16 +55,26 @@ endfunction
 " ExecAsScript - Source a temporary script made from a function.	    {{{2
 "
 " Make a temporary script file from the function a:funcname, ":source" it, and
-" delete it afterwards.
+" delete it afterwards.  However, if an exception is thrown the file may remain,
+" the caller should call DeleteTheScript() afterwards.
+let s:script_name = ''
 function! ExecAsScript(funcname)
     " Make a script from the function passed as argument.
-    let script = MakeScript(a:funcname)
+    let s:script_name = MakeScript(a:funcname)
 
     " Source and delete the script.
-    exec "source" script
-    call delete(script)
+    exec "source" s:script_name
+    call delete(s:script_name)
+    let s:script_name = ''
 endfunction
 
+function! DeleteTheScript()
+    if s:script_name
+	call delete(s:script_name)
+	let s:script_name = ''
+    endif
+endfunc
+
 com! -nargs=1 -bar ExecAsScript call ExecAsScript(<f-args>)
 
 
@@ -143,6 +153,7 @@ func Test_endwhile_script()
   XpathINIT
   ExecAsScript T1_F
   Xpath 'F'
+  call DeleteTheScript()
 
   try
     ExecAsScript T1_G
@@ -152,6 +163,7 @@ func Test_endwhile_script()
     Xpath 'x'
   endtry
   Xpath 'G'
+  call DeleteTheScript()
 
   call assert_equal('abcFhijxG', g:Xpath)
 endfunc
@@ -260,6 +272,7 @@ function Test_finish()
     XpathINIT
     ExecAsScript T4_F
     Xpath '5'
+    call DeleteTheScript()
 
     call assert_equal('ab3e3b2c25', g:Xpath)
 endfunction
--- a/src/testdir/test_writefile.in
+++ b/src/testdir/test_writefile.in
@@ -13,6 +13,7 @@ STARTTEST
 :$put =readfile(f)
 :1 delete _
 :w! test.out
+:call delete(f)
 :qa!
 ENDTEST
 
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1179,
+/**/
     1178,
 /**/
     1177,