diff src/testdir/test_expand_func.vim @ 21493:7449921216bc v8.2.1297

patch 8.2.1297: when a test fails it's often not easy to see where Commit: https://github.com/vim/vim/commit/a5d0423fa16f18b4576a2a07e50034e489587a7d Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jul 26 15:37:02 2020 +0200 patch 8.2.1297: when a test fails it's often not easy to see where Problem: When a test fails it's often not easy to see what the call stack is. Solution: Add more entries from the call stack in the exception message.
author Bram Moolenaar <Bram@vim.org>
date Sun, 26 Jul 2020 15:45:04 +0200
parents 546bdeef35f1
children 5daca8504c63
line wrap: on
line diff
--- a/src/testdir/test_expand_func.vim
+++ b/src/testdir/test_expand_func.vim
@@ -16,17 +16,47 @@ func s:expand_sflnum()
   return str2nr(expand('<sflnum>'))  
 endfunc
 
-func Test_expand_sfile()
-  call assert_match('test_expand_func\.vim$', s:sfile)
-  call assert_match('^function .*\.\.Test_expand_sfile$', expand('<sfile>'))
+" This test depends on the location in the test file, put it first.
+func Test_expand_sflnum()
+  call assert_equal(5, s:sflnum)
+  call assert_equal(22, str2nr(expand('<sflnum>')))
+
+  " Line-continuation
+  call assert_equal(
+        \ 25,
+        \ str2nr(expand('<sflnum>')))
 
   " Call in script-local function
-  call assert_match('^function .*\.\.Test_expand_sfile\[5\]\.\.<SNR>\d\+_expand_sfile$', s:expand_sfile())
+  call assert_equal(16, s:expand_sflnum())
+
+  " Call in command
+  command Flnum echo expand('<sflnum>')
+  call assert_equal(34, str2nr(trim(execute('Flnum'))))
+  delcommand Flnum
+endfunc
+
+func Test_expand_sfile_and_stack()
+  call assert_match('test_expand_func\.vim$', s:sfile)
+  let expected = 'script .*testdir/runtest.vim\[\d\+\]\.\.function RunTheTest\[\d\+\]\.\.Test_expand_sfile_and_stack$'
+  call assert_match(expected , expand('<sfile>'))
+  call assert_match(expected , expand('<stack>'))
+
+  " Call in script-local function
+  call assert_match('script .*testdir/runtest.vim\[\d\+\]\.\.function RunTheTest\[\d\+\]\.\.Test_expand_sfile_and_stack\[7\]\.\.<SNR>\d\+_expand_sfile$', s:expand_sfile())
 
   " Call in command
   command Sfile echo expand('<sfile>')
-  call assert_match('^function .*\.\.Test_expand_sfile$', trim(execute('Sfile')))
+  call assert_match('script .*testdir/runtest.vim\[\d\+\]\.\.function RunTheTest\[\d\+\]\.\.Test_expand_sfile_and_stack$', trim(execute('Sfile')))
   delcommand Sfile
+
+  " Use <stack> from sourced script.
+  let lines =<< trim END
+    let g:stack_value = expand('<stack>')
+  END
+  call writefile(lines, 'Xstack')
+  source Xstack
+  call assert_match('\<Xstack$', g:stack_value)
+  call delete('Xstack')
 endfunc
 
 func Test_expand_slnum()
@@ -47,24 +77,6 @@ func Test_expand_slnum()
   delcommand Slnum
 endfunc
 
-func Test_expand_sflnum()
-  call assert_equal(5, s:sflnum)
-  call assert_equal(52, str2nr(expand('<sflnum>')))
-
-  " Line-continuation
-  call assert_equal(
-        \ 55,
-        \ str2nr(expand('<sflnum>')))
-
-  " Call in script-local function
-  call assert_equal(16, s:expand_sflnum())
-
-  " Call in command
-  command Flnum echo expand('<sflnum>')
-  call assert_equal(64, str2nr(trim(execute('Flnum'))))
-  delcommand Flnum
-endfunc
-
 func Test_expand()
   new
   call assert_equal("",  expand('%:S'))