changeset 28079:c4ba8f3117ca v8.2.4564

patch 8.2.4564: running test leaves file behind Commit: https://github.com/vim/vim/commit/129e33e44bdbd91d6d7cd49d96268cbed4a05f07 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Mar 14 10:50:23 2022 +0000 patch 8.2.4564: running test leaves file behind Problem: Running test leaves file behind. (Dominique Pell?) Solution: Run the profiling in a separate Vim instance. (closes https://github.com/vim/vim/issues/9952)
author Bram Moolenaar <Bram@vim.org>
date Mon, 14 Mar 2022 12:00:06 +0100
parents 521e1e2ad0a0
children 8f6aea2b8069
files src/testdir/test_vim9_script.vim src/version.c
diffstat 2 files changed, 58 insertions(+), 36 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -3882,27 +3882,6 @@ def Run_Test_debug_running_out_of_lines(
   delete('XdebugFunc')
 enddef
 
-def s:ProfiledWithLambda()
-  var n = 3
-  echo [[1, 2], [3, 4]]->filter((_, l) => l[0] == n)
-enddef
-
-def s:ProfiledNested()
-  var x = 0
-  def Nested(): any
-      return x
-  enddef
-  Nested()
-enddef
-
-def ProfiledNestedProfiled()
-  var x = 0
-  def Nested(): any
-      return x
-  enddef
-  Nested()
-enddef
-
 def Test_ambigous_command_error()
   var lines =<< trim END
       vim9script
@@ -3935,23 +3914,64 @@ enddef
 
 " Execute this near the end, profiling doesn't stop until Vim exits.
 " This only tests that it works, not the profiling output.
-def Test_xx_profile_with_lambda()
+def Test_profile_with_lambda()
   CheckFeature profile
 
-  profile start Xprofile.log
-  profile func ProfiledWithLambda
-  ProfiledWithLambda()
-
-  profile func ProfiledNested
-  ProfiledNested()
-
-  # Also profile the nested function.  Use a different function, although the
-  # contents is the same, to make sure it was not already compiled.
-  profile func *
-  g:ProfiledNestedProfiled()
-
-  profdel func *
-  profile pause
+  var lines =<< trim END
+      vim9script
+
+      def ProfiledWithLambda()
+        var n = 3
+        echo [[1, 2], [3, 4]]->filter((_, l) => l[0] == n)
+      enddef
+
+      def ProfiledNested()
+        var x = 0
+        def Nested(): any
+            return x
+        enddef
+        Nested()
+      enddef
+
+      def g:ProfiledNestedProfiled()
+        var x = 0
+        def Nested(): any
+            return x
+        enddef
+        Nested()
+      enddef
+
+      def Profile()
+        profile start Xprofile.log
+        profile func ProfiledWithLambda
+        ProfiledWithLambda()
+
+        profile func ProfiledNested
+        ProfiledNested()
+
+        # Also profile the nested function.  Use a different function, although the
+        # contents is the same, to make sure it was not already compiled.
+        profile func *
+        g:ProfiledNestedProfiled()
+
+        profdel func *
+        profile pause
+      enddef
+      Profile()
+      writefile(['done'], 'Xdidprofile')
+  END
+  writefile(lines, 'Xprofile.vim')
+  call system(g:GetVimCommand()
+        .. ' --clean'
+        .. ' -c "so Xprofile.vim"'
+        .. ' -c "qall!"')
+  call assert_equal(0, v:shell_error)
+
+  assert_equal(['done'], readfile('Xdidprofile'))
+  assert_true(filereadable('Xprofile.log'))
+  delete('Xdidprofile')
+  delete('Xprofile.log')
+  delete('Xprofile.vim')
 enddef
 
 " Keep this last, it messes up highlighting.
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4564,
+/**/
     4563,
 /**/
     4562,