diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index 9bb21bc..79740b5 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -791,10 +791,10 @@
 endfunc
 
 func Test_expand_star_star()
-  call mkdir('a/b', 'pR')
-  call writefile(['asdfasdf'], 'a/b/fileXname')
-  call feedkeys(":find **/fileXname\<Tab>\<CR>", 'xt')
-  call assert_equal('find a/b/fileXname', @:)
+  call mkdir('a/b/c', 'pR')
+  call writefile(['asdfasdf'], 'a/b/c/fileXname')
+  call feedkeys(":find a/**/fileXname\<Tab>\<CR>", 'xt')
+  call assert_equal('find a/b/c/fileXname', @:)
   bwipe!
 endfunc
 
diff --git a/src/testdir/test_codestyle.vim b/src/testdir/test_codestyle.vim
index 3553063..509e135 100644
--- a/src/testdir/test_codestyle.vim
+++ b/src/testdir/test_codestyle.vim
@@ -2,6 +2,7 @@
 
 def Test_source_files()
   for fname in glob('../*.[ch]', 0, 1)
+    bwipe!
     exe 'edit ' .. fname
 
     cursor(1, 1)
@@ -26,11 +27,11 @@
     lnum = search(')\s*{', '', 0, 0, skip)
     assert_equal(0, lnum, fname .. ': curly after closing paren')
 
-    cursor(1, 1)
     # Examples in comments use double quotes.
     skip = "getline('.') =~ '\"'"
-    # Avoid examples that contain: "} else
-    lnum = search('[^"]}\s*else', '', 0, 0, skip)
+
+    cursor(1, 1)
+    lnum = search('}\s*else', '', 0, 0, skip)
     assert_equal(0, lnum, fname .. ': curly before "else"')
 
     cursor(1, 1)
diff --git a/src/testdir/test_debugger.vim b/src/testdir/test_debugger.vim
index 2b405d9..4261bb3 100644
--- a/src/testdir/test_debugger.vim
+++ b/src/testdir/test_debugger.vim
@@ -20,39 +20,39 @@
 " "options" argument can contain:
 " 'msec' - time to wait for a match
 " 'match' - "pattern" to use "lines" as pattern instead of text
-func CheckDbgOutput(buf, lines, options = {})
-  " Verify the expected output
-  let lnum = 20 - len(a:lines)
-  let msec = get(a:options, 'msec', 1000)
-  for l in a:lines
-    if get(a:options, 'match', 'equal') ==# 'pattern'
-      call WaitForAssert({-> assert_match(l, term_getline(a:buf, lnum))}, msec)
+def s:CheckDbgOutput(buf: number, lines: list<string>, options = {})
+  # Verify the expected output
+  var lnum = 20 - len(lines)
+  var msec = get(options, 'msec', 1000)
+  for l in lines
+    if get(options, 'match', 'equal') ==# 'pattern'
+      g:WaitForAssert(() => assert_match(l, term_getline(buf, lnum)), msec)
     else
-      call WaitForAssert({-> assert_equal(l, term_getline(a:buf, lnum))}, msec)
+      g:WaitForAssert(() => assert_equal(l, term_getline(buf, lnum)), msec)
     endif
-    let lnum += 1
+    lnum += 1
   endfor
-endfunc
+enddef
 
 " Run a Vim debugger command
 " If the expected output argument is supplied, then check for it.
-func RunDbgCmd(buf, cmd, ...)
-  call term_sendkeys(a:buf, a:cmd . "\r")
-  call TermWait(a:buf)
+def s:RunDbgCmd(buf: number, cmd: string, ...extra: list<any>)
+  term_sendkeys(buf, cmd .. "\r")
+  g:TermWait(buf)
 
-  if a:0 != 0
-    let options = #{match: 'equal'}
-    if a:0 > 1
-      call extend(options, a:2)
+  if len(extra) > 0
+    var options = {match: 'equal'}
+    if len(extra) > 1
+      extend(options, extra[1])
     endif
-    call CheckDbgOutput(a:buf, a:1, options)
+    s:CheckDbgOutput(buf, extra[0], options)
   endif
-endfunc
+enddef
 
 " Debugger tests
-func Test_Debugger()
-  " Create a Vim script with some functions
-  let lines =<< trim END
+def Test_Debugger()
+  # Create a Vim script with some functions
+  var lines =<< trim END
 	func Foo()
 	  let var1 = 1
 	  let var2 = Bar(var1) + 9
@@ -81,257 +81,257 @@
           endfor
         enddef
   END
-  call writefile(lines, 'XtestDebug.vim', 'D')
+  writefile(lines, 'XtestDebug.vim', 'D')
 
-  " Start Vim in a terminal
-  let buf = RunVimInTerminal('-S XtestDebug.vim', {})
+  # Start Vim in a terminal
+  var buf = g:RunVimInTerminal('-S XtestDebug.vim', {})
 
-  " Start the Vim debugger
-  call RunDbgCmd(buf, ':debug echo Foo()', ['cmd: echo Foo()'])
+  # Start the Vim debugger
+  s:RunDbgCmd(buf, ':debug echo Foo()', ['cmd: echo Foo()'])
 
-  " Create a few stack frames by stepping through functions
-  call RunDbgCmd(buf, 'step', ['line 1: let var1 = 1'])
-  call RunDbgCmd(buf, 'step', ['line 2: let var2 = Bar(var1) + 9'])
-  call RunDbgCmd(buf, 'step', ['line 1: let var1 = 2 + a:var'])
-  call RunDbgCmd(buf, 'step', ['line 2: let var2 = Bazz(var1) + 4'])
-  call RunDbgCmd(buf, 'step', ['line 1: try'])
-  call RunDbgCmd(buf, 'step', ['line 2: let var1 = 3 + a:var'])
-  call RunDbgCmd(buf, 'step', ['line 3: let var3 = "another var"'])
+  # Create a few stack frames by stepping through functions
+  s:RunDbgCmd(buf, 'step', ['line 1: let var1 = 1'])
+  s:RunDbgCmd(buf, 'step', ['line 2: let var2 = Bar(var1) + 9'])
+  s:RunDbgCmd(buf, 'step', ['line 1: let var1 = 2 + a:var'])
+  s:RunDbgCmd(buf, 'step', ['line 2: let var2 = Bazz(var1) + 4'])
+  s:RunDbgCmd(buf, 'step', ['line 1: try'])
+  s:RunDbgCmd(buf, 'step', ['line 2: let var1 = 3 + a:var'])
+  s:RunDbgCmd(buf, 'step', ['line 3: let var3 = "another var"'])
 
-  " check backtrace
-  call RunDbgCmd(buf, 'backtrace', [
-	      \ '  2 function Foo[2]',
-	      \ '  1 Bar[2]',
-	      \ '->0 Bazz',
-	      \ 'line 3: let var3 = "another var"'])
+  # check backtrace
+  s:RunDbgCmd(buf, 'backtrace', [
+	      '  2 function Foo[2]',
+	      '  1 Bar[2]',
+	      '->0 Bazz',
+	      'line 3: let var3 = "another var"'])
 
-  " Check variables in different stack frames
-  call RunDbgCmd(buf, 'echo var1', ['6'])
+  # Check variables in different stack frames
+  s:RunDbgCmd(buf, 'echo var1', ['6'])
 
-  call RunDbgCmd(buf, 'up')
-  call RunDbgCmd(buf, 'back', [
-	      \ '  2 function Foo[2]',
-	      \ '->1 Bar[2]',
-	      \ '  0 Bazz',
-	      \ 'line 3: let var3 = "another var"'])
-  call RunDbgCmd(buf, 'echo var1', ['3'])
+  s:RunDbgCmd(buf, 'up')
+  s:RunDbgCmd(buf, 'back', [
+	      '  2 function Foo[2]',
+	      '->1 Bar[2]',
+	      '  0 Bazz',
+	      'line 3: let var3 = "another var"'])
+  s:RunDbgCmd(buf, 'echo var1', ['3'])
 
-  call RunDbgCmd(buf, 'u')
-  call RunDbgCmd(buf, 'bt', [
-	      \ '->2 function Foo[2]',
-	      \ '  1 Bar[2]',
-	      \ '  0 Bazz',
-	      \ 'line 3: let var3 = "another var"'])
-  call RunDbgCmd(buf, 'echo var1', ['1'])
+  s:RunDbgCmd(buf, 'u')
+  s:RunDbgCmd(buf, 'bt', [
+	      '->2 function Foo[2]',
+	      '  1 Bar[2]',
+	      '  0 Bazz',
+	      'line 3: let var3 = "another var"'])
+  s:RunDbgCmd(buf, 'echo var1', ['1'])
 
-  " Undefined variables
-  call RunDbgCmd(buf, 'step')
-  call RunDbgCmd(buf, 'frame 2')
-  call RunDbgCmd(buf, 'echo var3', [
-	\ 'Error detected while processing function Foo[2]..Bar[2]..Bazz:',
-	\ 'line    4:',
-	\ 'E121: Undefined variable: var3'])
+  # Undefined variables
+  s:RunDbgCmd(buf, 'step')
+  s:RunDbgCmd(buf, 'frame 2')
+  s:RunDbgCmd(buf, 'echo var3', [
+	'Error detected while processing function Foo[2]..Bar[2]..Bazz:',
+	'line    4:',
+	'E121: Undefined variable: var3'])
 
-  " var3 is defined in this level with some other value
-  call RunDbgCmd(buf, 'fr 0')
-  call RunDbgCmd(buf, 'echo var3', ['another var'])
+  # var3 is defined in this level with some other value
+  s:RunDbgCmd(buf, 'fr 0')
+  s:RunDbgCmd(buf, 'echo var3', ['another var'])
 
-  call RunDbgCmd(buf, 'step')
-  call RunDbgCmd(buf, '')
-  call RunDbgCmd(buf, '')
-  call RunDbgCmd(buf, '')
-  call RunDbgCmd(buf, '')
-  call RunDbgCmd(buf, 'step', [
-	      \ 'function Foo[2]..Bar',
-	      \ 'line 3: End of function'])
-  call RunDbgCmd(buf, 'up')
+  s:RunDbgCmd(buf, 'step')
+  s:RunDbgCmd(buf, '')
+  s:RunDbgCmd(buf, '')
+  s:RunDbgCmd(buf, '')
+  s:RunDbgCmd(buf, '')
+  s:RunDbgCmd(buf, 'step', [
+	      'function Foo[2]..Bar',
+	      'line 3: End of function'])
+  s:RunDbgCmd(buf, 'up')
 
-  " Undefined var2
-  call RunDbgCmd(buf, 'echo var2', [
-	      \ 'Error detected while processing function Foo[2]..Bar:',
-	      \ 'line    3:',
-	      \ 'E121: Undefined variable: var2'])
+  # Undefined var2
+  s:RunDbgCmd(buf, 'echo var2', [
+	      'Error detected while processing function Foo[2]..Bar:',
+	      'line    3:',
+	      'E121: Undefined variable: var2'])
 
-  " Var2 is defined with 10
-  call RunDbgCmd(buf, 'down')
-  call RunDbgCmd(buf, 'echo var2', ['10'])
+  # Var2 is defined with 10
+  s:RunDbgCmd(buf, 'down')
+  s:RunDbgCmd(buf, 'echo var2', ['10'])
 
-  " Backtrace movements
-  call RunDbgCmd(buf, 'b', [
-	      \ '  1 function Foo[2]',
-	      \ '->0 Bar',
-	      \ 'line 3: End of function'])
+  # Backtrace movements
+  s:RunDbgCmd(buf, 'b', [
+	      '  1 function Foo[2]',
+	      '->0 Bar',
+	      'line 3: End of function'])
 
-  " next command cannot go down, we are on bottom
-  call RunDbgCmd(buf, 'down', ['frame is zero'])
-  call RunDbgCmd(buf, 'up')
+  # next command cannot go down, we are on bottom
+  s:RunDbgCmd(buf, 'down', ['frame is zero'])
+  s:RunDbgCmd(buf, 'up')
 
-  " next command cannot go up, we are on top
-  call RunDbgCmd(buf, 'up', ['frame at highest level: 1'])
-  call RunDbgCmd(buf, 'where', [
-	      \ '->1 function Foo[2]',
-	      \ '  0 Bar',
-	      \ 'line 3: End of function'])
+  # next command cannot go up, we are on top
+  s:RunDbgCmd(buf, 'up', ['frame at highest level: 1'])
+  s:RunDbgCmd(buf, 'where', [
+	      '->1 function Foo[2]',
+	      '  0 Bar',
+	      'line 3: End of function'])
 
-  " fil is not frame or finish, it is file
-  call RunDbgCmd(buf, 'fil', ['"[No Name]" --No lines in buffer--'])
+  # fil is not frame or finish, it is file
+  s:RunDbgCmd(buf, 'fil', ['"[No Name]" --No lines in buffer--'])
 
-  " relative backtrace movement
-  call RunDbgCmd(buf, 'fr -1')
-  call RunDbgCmd(buf, 'frame', [
-	      \ '  1 function Foo[2]',
-	      \ '->0 Bar',
-	      \ 'line 3: End of function'])
+  # relative backtrace movement
+  s:RunDbgCmd(buf, 'fr -1')
+  s:RunDbgCmd(buf, 'frame', [
+	      '  1 function Foo[2]',
+	      '->0 Bar',
+	      'line 3: End of function'])
 
-  call RunDbgCmd(buf, 'fr +1')
-  call RunDbgCmd(buf, 'fram', [
-	      \ '->1 function Foo[2]',
-	      \ '  0 Bar',
-	      \ 'line 3: End of function'])
+  s:RunDbgCmd(buf, 'fr +1')
+  s:RunDbgCmd(buf, 'fram', [
+	      '->1 function Foo[2]',
+	      '  0 Bar',
+	      'line 3: End of function'])
 
-  " go beyond limits does not crash
-  call RunDbgCmd(buf, 'fr 100', ['frame at highest level: 1'])
-  call RunDbgCmd(buf, 'fra', [
-	      \ '->1 function Foo[2]',
-	      \ '  0 Bar',
-	      \ 'line 3: End of function'])
+  # go beyond limits does not crash
+  s:RunDbgCmd(buf, 'fr 100', ['frame at highest level: 1'])
+  s:RunDbgCmd(buf, 'fra', [
+	      '->1 function Foo[2]',
+	      '  0 Bar',
+	      'line 3: End of function'])
 
-  call RunDbgCmd(buf, 'frame -40', ['frame is zero'])
-  call RunDbgCmd(buf, 'fram', [
-	      \ '  1 function Foo[2]',
-	      \ '->0 Bar',
-	      \ 'line 3: End of function'])
+  s:RunDbgCmd(buf, 'frame -40', ['frame is zero'])
+  s:RunDbgCmd(buf, 'fram', [
+	      '  1 function Foo[2]',
+	      '->0 Bar',
+	      'line 3: End of function'])
 
-  " final result 19
-  call RunDbgCmd(buf, 'cont', ['19'])
+  # final result 19
+  s:RunDbgCmd(buf, 'cont', ['19'])
 
-  " breakpoints tests
+  # breakpoints tests
 
-  " Start a debug session, so that reading the last line from the terminal
-  " works properly.
-  call RunDbgCmd(buf, ':debug echo Foo()', ['cmd: echo Foo()'])
+  # Start a debug session, so that reading the last line from the terminal
+  # works properly.
+  s:RunDbgCmd(buf, ':debug echo Foo()', ['cmd: echo Foo()'])
 
-  " No breakpoints
-  call RunDbgCmd(buf, 'breakl', ['No breakpoints defined'])
+  # No breakpoints
+  s:RunDbgCmd(buf, 'breakl', ['No breakpoints defined'])
 
-  " Place some breakpoints
-  call RunDbgCmd(buf, 'breaka func Bar')
-  call RunDbgCmd(buf, 'breaklis', ['  1  func Bar  line 1'])
-  call RunDbgCmd(buf, 'breakadd func 3 Bazz')
-  call RunDbgCmd(buf, 'breaklist', ['  1  func Bar  line 1',
-	      \ '  2  func Bazz  line 3'])
+  # Place some breakpoints
+  s:RunDbgCmd(buf, 'breaka func Bar')
+  s:RunDbgCmd(buf, 'breaklis', ['  1  func Bar  line 1'])
+  s:RunDbgCmd(buf, 'breakadd func 3 Bazz')
+  s:RunDbgCmd(buf, 'breaklist', ['  1  func Bar  line 1',
+	      '  2  func Bazz  line 3'])
 
-  " Check whether the breakpoints are hit
-  call RunDbgCmd(buf, 'cont', [
-	      \ 'Breakpoint in "Bar" line 1',
-	      \ 'function Foo[2]..Bar',
-	      \ 'line 1: let var1 = 2 + a:var'])
-  call RunDbgCmd(buf, 'cont', [
-	      \ 'Breakpoint in "Bazz" line 3',
-	      \ 'function Foo[2]..Bar[2]..Bazz',
-	      \ 'line 3: let var3 = "another var"'])
+  # Check whether the breakpoints are hit
+  s:RunDbgCmd(buf, 'cont', [
+	      'Breakpoint in "Bar" line 1',
+	      'function Foo[2]..Bar',
+	      'line 1: let var1 = 2 + a:var'])
+  s:RunDbgCmd(buf, 'cont', [
+	      'Breakpoint in "Bazz" line 3',
+	      'function Foo[2]..Bar[2]..Bazz',
+	      'line 3: let var3 = "another var"'])
 
-  " Delete the breakpoints
-  call RunDbgCmd(buf, 'breakd 1')
-  call RunDbgCmd(buf, 'breakli', ['  2  func Bazz  line 3'])
-  call RunDbgCmd(buf, 'breakdel func 3 Bazz')
-  call RunDbgCmd(buf, 'breakl', ['No breakpoints defined'])
+  # Delete the breakpoints
+  s:RunDbgCmd(buf, 'breakd 1')
+  s:RunDbgCmd(buf, 'breakli', ['  2  func Bazz  line 3'])
+  s:RunDbgCmd(buf, 'breakdel func 3 Bazz')
+  s:RunDbgCmd(buf, 'breakl', ['No breakpoints defined'])
 
-  call RunDbgCmd(buf, 'cont')
+  s:RunDbgCmd(buf, 'cont')
 
-  " Make sure the breakpoints are removed
-  call RunDbgCmd(buf, ':echo Foo()', ['19'])
+  # Make sure the breakpoints are removed
+  s:RunDbgCmd(buf, ':echo Foo()', ['19'])
 
-  " Delete a non-existing breakpoint
-  call RunDbgCmd(buf, ':breakdel 2', ['E161: Breakpoint not found: 2'])
+  # Delete a non-existing breakpoint
+  s:RunDbgCmd(buf, ':breakdel 2', ['E161: Breakpoint not found: 2'])
 
-  " Expression breakpoint
-  call RunDbgCmd(buf, ':breakadd func 2 Bazz')
-  call RunDbgCmd(buf, ':echo Bazz(1)', [
-	      \ 'Entering Debug mode.  Type "cont" to continue.',
-	      \ 'function Bazz',
-	      \ 'line 2: let var1 = 3 + a:var'])
-  call RunDbgCmd(buf, 'step')
-  call RunDbgCmd(buf, 'step')
-  call RunDbgCmd(buf, 'breaka expr var3')
-  call RunDbgCmd(buf, 'breakl', ['  3  func Bazz  line 2',
+  # Expression breakpoint
+  s:RunDbgCmd(buf, ':breakadd func 2 Bazz')
+  s:RunDbgCmd(buf, ':echo Bazz(1)', [
+	      'Entering Debug mode.  Type "cont" to continue.',
+	      'function Bazz',
+	      'line 2: let var1 = 3 + a:var'])
+  s:RunDbgCmd(buf, 'step')
+  s:RunDbgCmd(buf, 'step')
+  s:RunDbgCmd(buf, 'breaka expr var3')
+  s:RunDbgCmd(buf, 'breakl', ['  3  func Bazz  line 2',
 	      \ '  4  expr var3'])
-  call RunDbgCmd(buf, 'cont', ['Breakpoint in "Bazz" line 5',
-	      \ 'Oldval = "''another var''"',
-	      \ 'Newval = "''value2''"',
-	      \ 'function Bazz',
-	      \ 'line 5: catch'])
+  s:RunDbgCmd(buf, 'cont', ['Breakpoint in "Bazz" line 5',
+	      'Oldval = "''another var''"',
+	      'Newval = "''value2''"',
+	      'function Bazz',
+	      'line 5: catch'])
 
-  call RunDbgCmd(buf, 'breakdel *')
-  call RunDbgCmd(buf, 'breakl', ['No breakpoints defined'])
+  s:RunDbgCmd(buf, 'breakdel *')
+  s:RunDbgCmd(buf, 'breakl', ['No breakpoints defined'])
 
-  " Check for error cases
-  call RunDbgCmd(buf, 'breakadd abcd', [
-	      \ 'Error detected while processing function Bazz:',
-	      \ 'line    5:',
-	      \ 'E475: Invalid argument: abcd'])
-  call RunDbgCmd(buf, 'breakadd func', ['E475: Invalid argument: func'])
-  call RunDbgCmd(buf, 'breakadd func 2', ['E475: Invalid argument: func 2'])
-  call RunDbgCmd(buf, 'breaka func a()', ['E475: Invalid argument: func a()'])
-  call RunDbgCmd(buf, 'breakd abcd', ['E475: Invalid argument: abcd'])
-  call RunDbgCmd(buf, 'breakd func', ['E475: Invalid argument: func'])
-  call RunDbgCmd(buf, 'breakd func a()', ['E475: Invalid argument: func a()'])
-  call RunDbgCmd(buf, 'breakd func a', ['E161: Breakpoint not found: func a'])
-  call RunDbgCmd(buf, 'breakd expr', ['E475: Invalid argument: expr'])
-  call RunDbgCmd(buf, 'breakd expr x', ['E161: Breakpoint not found: expr x'])
+  # Check for error cases
+  s:RunDbgCmd(buf, 'breakadd abcd', [
+	      'Error detected while processing function Bazz:',
+	      'line    5:',
+	      'E475: Invalid argument: abcd'])
+  s:RunDbgCmd(buf, 'breakadd func', ['E475: Invalid argument: func'])
+  s:RunDbgCmd(buf, 'breakadd func 2', ['E475: Invalid argument: func 2'])
+  s:RunDbgCmd(buf, 'breaka func a()', ['E475: Invalid argument: func a()'])
+  s:RunDbgCmd(buf, 'breakd abcd', ['E475: Invalid argument: abcd'])
+  s:RunDbgCmd(buf, 'breakd func', ['E475: Invalid argument: func'])
+  s:RunDbgCmd(buf, 'breakd func a()', ['E475: Invalid argument: func a()'])
+  s:RunDbgCmd(buf, 'breakd func a', ['E161: Breakpoint not found: func a'])
+  s:RunDbgCmd(buf, 'breakd expr', ['E475: Invalid argument: expr'])
+  s:RunDbgCmd(buf, 'breakd expr x', ['E161: Breakpoint not found: expr x'])
 
-  " finish the current function
-  call RunDbgCmd(buf, 'finish', [
-	      \ 'function Bazz',
-	      \ 'line 8: End of function'])
-  call RunDbgCmd(buf, 'cont')
+  # finish the current function
+  s:RunDbgCmd(buf, 'finish', [
+	      'function Bazz',
+	      'line 8: End of function'])
+  s:RunDbgCmd(buf, 'cont')
 
-  " Test for :next
-  call RunDbgCmd(buf, ':debug echo Bar(1)')
-  call RunDbgCmd(buf, 'step')
-  call RunDbgCmd(buf, 'next')
-  call RunDbgCmd(buf, '', [
-	      \ 'function Bar',
-	      \ 'line 3: return var2'])
-  call RunDbgCmd(buf, 'c')
+  # Test for :next
+  s:RunDbgCmd(buf, ':debug echo Bar(1)')
+  s:RunDbgCmd(buf, 'step')
+  s:RunDbgCmd(buf, 'next')
+  s:RunDbgCmd(buf, '', [
+	      'function Bar',
+	      'line 3: return var2'])
+  s:RunDbgCmd(buf, 'c')
 
-  " Test for :interrupt
-  call RunDbgCmd(buf, ':debug echo Bazz(1)')
-  call RunDbgCmd(buf, 'step')
-  call RunDbgCmd(buf, 'step')
-  call RunDbgCmd(buf, 'interrupt', [
-	      \ 'Exception thrown: Vim:Interrupt',
-	      \ 'function Bazz',
-	      \ 'line 5: catch'])
-  call RunDbgCmd(buf, 'c')
+  # Test for :interrupt
+  s:RunDbgCmd(buf, ':debug echo Bazz(1)')
+  s:RunDbgCmd(buf, 'step')
+  s:RunDbgCmd(buf, 'step')
+  s:RunDbgCmd(buf, 'interrupt', [
+	      'Exception thrown: Vim:Interrupt',
+	      'function Bazz',
+	      'line 5: catch'])
+  s:RunDbgCmd(buf, 'c')
 
-  " Test showing local variable in :def function
-  call RunDbgCmd(buf, ':breakadd func 2 Vim9Func')
-  call RunDbgCmd(buf, ':call Vim9Func()', ['line 2:             for _ in [1, 2]'])
-  call RunDbgCmd(buf, 'next', ['line 2: for _ in [1, 2]'])
-  call RunDbgCmd(buf, 'echo cmd', ['confirm'])
-  call RunDbgCmd(buf, 'breakdel *')
-  call RunDbgCmd(buf, 'cont')
+  # Test showing local variable in :def function
+  s:RunDbgCmd(buf, ':breakadd func 2 Vim9Func')
+  s:RunDbgCmd(buf, ':call Vim9Func()', ['line 2:             for _ in [1, 2]'])
+  s:RunDbgCmd(buf, 'next', ['line 2: for _ in [1, 2]'])
+  s:RunDbgCmd(buf, 'echo cmd', ['confirm'])
+  s:RunDbgCmd(buf, 'breakdel *')
+  s:RunDbgCmd(buf, 'cont')
 
-  " Test for :quit
-  call RunDbgCmd(buf, ':debug echo Foo()')
-  call RunDbgCmd(buf, 'breakdel *')
-  call RunDbgCmd(buf, 'breakadd func 3 Foo')
-  call RunDbgCmd(buf, 'breakadd func 3 Bazz')
-  call RunDbgCmd(buf, 'cont', [
-	      \ 'Breakpoint in "Bazz" line 3',
-	      \ 'function Foo[2]..Bar[2]..Bazz',
-	      \ 'line 3: let var3 = "another var"'])
-  call RunDbgCmd(buf, 'quit', [
-	      \ 'Breakpoint in "Foo" line 3',
-	      \ 'function Foo',
-	      \ 'line 3: return var2'])
-  call RunDbgCmd(buf, 'breakdel *')
-  call RunDbgCmd(buf, 'quit')
-  call RunDbgCmd(buf, 'enew! | only!')
+  # Test for :quit
+  s:RunDbgCmd(buf, ':debug echo Foo()')
+  s:RunDbgCmd(buf, 'breakdel *')
+  s:RunDbgCmd(buf, 'breakadd func 3 Foo')
+  s:RunDbgCmd(buf, 'breakadd func 3 Bazz')
+  s:RunDbgCmd(buf, 'cont', [
+	      'Breakpoint in "Bazz" line 3',
+	      'function Foo[2]..Bar[2]..Bazz',
+	      'line 3: let var3 = "another var"'])
+  s:RunDbgCmd(buf, 'quit', [
+	      'Breakpoint in "Foo" line 3',
+	      'function Foo',
+	      'line 3: return var2'])
+  s:RunDbgCmd(buf, 'breakdel *')
+  s:RunDbgCmd(buf, 'quit')
+  s:RunDbgCmd(buf, 'enew! | only!')
 
-  call StopVimInTerminal(buf)
-endfunc
+  g:StopVimInTerminal(buf)
+enddef
 
 func Test_Debugger_breakadd()
   " Tests for :breakadd file and :breakadd here
@@ -347,11 +347,11 @@
 
   " Start Vim in a terminal
   let buf = RunVimInTerminal('XdebugBreakadd.vim', {})
-  call RunDbgCmd(buf, ':breakadd file 2 XdebugBreakadd.vim')
-  call RunDbgCmd(buf, ':4 | breakadd here')
-  call RunDbgCmd(buf, ':source XdebugBreakadd.vim', ['line 2: let var2 = 20'])
-  call RunDbgCmd(buf, 'cont', ['line 4: let var4 = 40'])
-  call RunDbgCmd(buf, 'cont')
+  call s:RunDbgCmd(buf, ':breakadd file 2 XdebugBreakadd.vim')
+  call s:RunDbgCmd(buf, ':4 | breakadd here')
+  call s:RunDbgCmd(buf, ':source XdebugBreakadd.vim', ['line 2: let var2 = 20'])
+  call s:RunDbgCmd(buf, 'cont', ['line 4: let var4 = 40'])
+  call s:RunDbgCmd(buf, 'cont')
 
   call StopVimInTerminal(buf)
 
@@ -372,24 +372,24 @@
 
   " Start Vim in a terminal
   let buf = RunVimInTerminal('XdebugBreakExpr.vim', {})
-  call RunDbgCmd(buf, ':let g:Xtest_var = 10')
-  call RunDbgCmd(buf, ':breakadd expr g:Xtest_var')
-  call RunDbgCmd(buf, ':source %')
+  call s:RunDbgCmd(buf, ':let g:Xtest_var = 10')
+  call s:RunDbgCmd(buf, ':breakadd expr g:Xtest_var')
+  call s:RunDbgCmd(buf, ':source %')
   let expected =<< trim eval END
     Oldval = "10"
     Newval = "11"
     {fnamemodify('XdebugBreakExpr.vim', ':p')}
     line 1: let g:Xtest_var += 1
   END
-  call RunDbgCmd(buf, ':source %', expected)
-  call RunDbgCmd(buf, 'cont')
+  call s:RunDbgCmd(buf, ':source %', expected)
+  call s:RunDbgCmd(buf, 'cont')
   let expected =<< trim eval END
     Oldval = "11"
     Newval = "12"
     {fnamemodify('XdebugBreakExpr.vim', ':p')}
     line 1: let g:Xtest_var += 1
   END
-  call RunDbgCmd(buf, ':source %', expected)
+  call s:RunDbgCmd(buf, ':source %', expected)
 
   call StopVimInTerminal(buf)
 endfunc
@@ -411,9 +411,9 @@
   call g:TermWait(buf, g:RunningWithValgrind() ? 1000 : 50)
 
   # Despite the failure the functions are defined
-  g:RunDbgCmd(buf, ':function g:EarlyFunc',
+  s:RunDbgCmd(buf, ':function g:EarlyFunc',
      ['function EarlyFunc()', 'endfunction'], {match: 'pattern'})
-  g:RunDbgCmd(buf, ':function g:LaterFunc',
+  s:RunDbgCmd(buf, ':function g:LaterFunc',
      ['function LaterFunc()', 'endfunction'], {match: 'pattern'})
 
   call g:StopVimInTerminal(buf)
@@ -435,7 +435,7 @@
   var buf = g:RunVimInTerminal('-S XdebugBreakRet.vim', {wait_for_ruler: 0})
   call g:TermWait(buf, g:RunningWithValgrind() ? 1000 : 50)
 
-  g:RunDbgCmd(buf, ':call GetNum()',
+  s:RunDbgCmd(buf, ':call GetNum()',
      ['line 1: return 1  + 2  + 3'], {match: 'pattern'})
 
   call g:StopVimInTerminal(buf)
@@ -474,19 +474,19 @@
 
   let buf = RunVimInTerminal('-S Xtest1.vim', {})
 
-  call RunDbgCmd(buf,
+  call s:RunDbgCmd(buf,
                 \ ':debug call GlobalFunction()',
                 \ ['cmd: call GlobalFunction()'])
-  call RunDbgCmd(buf, 'step', ['line 1: call CallAFunction()'])
+  call s:RunDbgCmd(buf, 'step', ['line 1: call CallAFunction()'])
 
-  call RunDbgCmd(buf, 'backtrace', ['>backtrace',
+  call s:RunDbgCmd(buf, 'backtrace', ['>backtrace',
                                     \ '->0 function GlobalFunction',
                                     \ 'line 1: call CallAFunction()'])
 
-  call RunDbgCmd(buf, 'step', ['line 1: call SourceAnotherFile()'])
-  call RunDbgCmd(buf, 'step', ['line 1: source Xtest2.vim'])
+  call s:RunDbgCmd(buf, 'step', ['line 1: call SourceAnotherFile()'])
+  call s:RunDbgCmd(buf, 'step', ['line 1: source Xtest2.vim'])
 
-  call RunDbgCmd(buf, 'backtrace', ['>backtrace',
+  call s:RunDbgCmd(buf, 'backtrace', ['>backtrace',
                                     \ '  2 function GlobalFunction[1]',
                                     \ '  1 CallAFunction[1]',
                                     \ '->0 SourceAnotherFile',
@@ -494,8 +494,8 @@
 
   " Step into the 'source' command. Note that we print the full trace all the
   " way though the source command.
-  call RunDbgCmd(buf, 'step', ['line 1: func DoAThing()'])
-  call RunDbgCmd(buf, 'backtrace', [
+  call s:RunDbgCmd(buf, 'step', ['line 1: func DoAThing()'])
+  call s:RunDbgCmd(buf, 'backtrace', [
         \ '>backtrace',
         \ '  3 function GlobalFunction[1]',
         \ '  2 CallAFunction[1]',
@@ -503,8 +503,8 @@
         \ '->0 script ' .. getcwd() .. '/Xtest2.vim',
         \ 'line 1: func DoAThing()'])
 
-  call RunDbgCmd( buf, 'up' )
-  call RunDbgCmd( buf, 'backtrace', [
+  call s:RunDbgCmd( buf, 'up' )
+  call s:RunDbgCmd( buf, 'backtrace', [
         \ '>backtrace',
         \ '  3 function GlobalFunction[1]',
         \ '  2 CallAFunction[1]',
@@ -512,8 +512,8 @@
         \ '  0 script ' .. getcwd() .. '/Xtest2.vim',
         \ 'line 1: func DoAThing()' ] )
 
-  call RunDbgCmd( buf, 'up' )
-  call RunDbgCmd( buf, 'backtrace', [
+  call s:RunDbgCmd( buf, 'up' )
+  call s:RunDbgCmd( buf, 'backtrace', [
         \ '>backtrace',
         \ '  3 function GlobalFunction[1]',
         \ '->2 CallAFunction[1]',
@@ -521,8 +521,8 @@
         \ '  0 script ' .. getcwd() .. '/Xtest2.vim',
         \ 'line 1: func DoAThing()' ] )
 
-  call RunDbgCmd( buf, 'up' )
-  call RunDbgCmd( buf, 'backtrace', [
+  call s:RunDbgCmd( buf, 'up' )
+  call s:RunDbgCmd( buf, 'backtrace', [
         \ '>backtrace',
         \ '->3 function GlobalFunction[1]',
         \ '  2 CallAFunction[1]',
@@ -530,8 +530,8 @@
         \ '  0 script ' .. getcwd() .. '/Xtest2.vim',
         \ 'line 1: func DoAThing()' ] )
 
-  call RunDbgCmd( buf, 'up', [ 'frame at highest level: 3' ] )
-  call RunDbgCmd( buf, 'backtrace', [
+  call s:RunDbgCmd( buf, 'up', [ 'frame at highest level: 3' ] )
+  call s:RunDbgCmd( buf, 'backtrace', [
         \ '>backtrace',
         \ '->3 function GlobalFunction[1]',
         \ '  2 CallAFunction[1]',
@@ -539,8 +539,8 @@
         \ '  0 script ' .. getcwd() .. '/Xtest2.vim',
         \ 'line 1: func DoAThing()' ] )
 
-  call RunDbgCmd( buf, 'down' )
-  call RunDbgCmd( buf, 'backtrace', [
+  call s:RunDbgCmd( buf, 'down' )
+  call s:RunDbgCmd( buf, 'backtrace', [
         \ '>backtrace',
         \ '  3 function GlobalFunction[1]',
         \ '->2 CallAFunction[1]',
@@ -548,8 +548,8 @@
         \ '  0 script ' .. getcwd() .. '/Xtest2.vim',
         \ 'line 1: func DoAThing()' ] )
 
-  call RunDbgCmd( buf, 'down' )
-  call RunDbgCmd( buf, 'backtrace', [
+  call s:RunDbgCmd( buf, 'down' )
+  call s:RunDbgCmd( buf, 'backtrace', [
         \ '>backtrace',
         \ '  3 function GlobalFunction[1]',
         \ '  2 CallAFunction[1]',
@@ -557,8 +557,8 @@
         \ '  0 script ' .. getcwd() .. '/Xtest2.vim',
         \ 'line 1: func DoAThing()' ] )
 
-  call RunDbgCmd( buf, 'down' )
-  call RunDbgCmd( buf, 'backtrace', [
+  call s:RunDbgCmd( buf, 'down' )
+  call s:RunDbgCmd( buf, 'backtrace', [
         \ '>backtrace',
         \ '  3 function GlobalFunction[1]',
         \ '  2 CallAFunction[1]',
@@ -566,12 +566,12 @@
         \ '->0 script ' .. getcwd() .. '/Xtest2.vim',
         \ 'line 1: func DoAThing()' ] )
 
-  call RunDbgCmd( buf, 'down', [ 'frame is zero' ] )
+  call s:RunDbgCmd( buf, 'down', [ 'frame is zero' ] )
 
   " step until we have another meaningful trace
-  call RunDbgCmd(buf, 'step', ['line 5: func File2Function()'])
-  call RunDbgCmd(buf, 'step', ['line 9: call File2Function()'])
-  call RunDbgCmd(buf, 'backtrace', [
+  call s:RunDbgCmd(buf, 'step', ['line 5: func File2Function()'])
+  call s:RunDbgCmd(buf, 'step', ['line 9: call File2Function()'])
+  call s:RunDbgCmd(buf, 'backtrace', [
         \ '>backtrace',
         \ '  3 function GlobalFunction[1]',
         \ '  2 CallAFunction[1]',
@@ -579,9 +579,9 @@
         \ '->0 script ' .. getcwd() .. '/Xtest2.vim',
         \ 'line 9: call File2Function()'])
 
-  call RunDbgCmd(buf, 'step', ['line 1: call DoAThing()'])
-  call RunDbgCmd(buf, 'step', ['line 1: echo "DoAThing"'])
-  call RunDbgCmd(buf, 'backtrace', [
+  call s:RunDbgCmd(buf, 'step', ['line 1: call DoAThing()'])
+  call s:RunDbgCmd(buf, 'step', ['line 1: echo "DoAThing"'])
+  call s:RunDbgCmd(buf, 'backtrace', [
         \ '>backtrace',
         \ '  5 function GlobalFunction[1]',
         \ '  4 CallAFunction[1]',
@@ -592,19 +592,19 @@
         \ 'line 1: echo "DoAThing"'])
 
   " Now, step (back to Xfile1.vim), and call the function _in_ Xfile2.vim
-  call RunDbgCmd(buf, 'step', ['line 1: End of function'])
-  call RunDbgCmd(buf, 'step', ['line 1: End of function'])
-  call RunDbgCmd(buf, 'step', ['line 10: End of sourced file'])
-  call RunDbgCmd(buf, 'step', ['line 1: End of function'])
-  call RunDbgCmd(buf, 'step', ['line 2: call File2Function()'])
-  call RunDbgCmd(buf, 'backtrace', [
+  call s:RunDbgCmd(buf, 'step', ['line 1: End of function'])
+  call s:RunDbgCmd(buf, 'step', ['line 1: End of function'])
+  call s:RunDbgCmd(buf, 'step', ['line 10: End of sourced file'])
+  call s:RunDbgCmd(buf, 'step', ['line 1: End of function'])
+  call s:RunDbgCmd(buf, 'step', ['line 2: call File2Function()'])
+  call s:RunDbgCmd(buf, 'backtrace', [
         \ '>backtrace',
         \ '  1 function GlobalFunction[1]',
         \ '->0 CallAFunction',
         \ 'line 2: call File2Function()'])
 
-  call RunDbgCmd(buf, 'step', ['line 1: call DoAThing()'])
-  call RunDbgCmd(buf, 'backtrace', [
+  call s:RunDbgCmd(buf, 'step', ['line 1: call DoAThing()'])
+  call s:RunDbgCmd(buf, 'backtrace', [
         \ '>backtrace',
         \ '  2 function GlobalFunction[1]',
         \ '  1 CallAFunction[2]',
@@ -649,29 +649,29 @@
 
   let buf = RunVimInTerminal('-S Xtest1.vim', {})
 
-  call RunDbgCmd(buf,
+  call s:RunDbgCmd(buf,
                 \ ':debug doautocmd User TestGlobalFunction',
                 \ ['cmd: doautocmd User TestGlobalFunction'])
-  call RunDbgCmd(buf, 'step', ['cmd: call GlobalFunction() | echo "Done"'])
+  call s:RunDbgCmd(buf, 'step', ['cmd: call GlobalFunction() | echo "Done"'])
 
   " At this point the only thing in the stack is the autocommand
-  call RunDbgCmd(buf, 'backtrace', [
+  call s:RunDbgCmd(buf, 'backtrace', [
         \ '>backtrace',
         \ '->0 User Autocommands for "TestGlobalFunction"',
         \ 'cmd: call GlobalFunction() | echo "Done"'])
 
   " And now we're back into the call stack
-  call RunDbgCmd(buf, 'step', ['line 1: call CallAFunction()'])
-  call RunDbgCmd(buf, 'backtrace', [
+  call s:RunDbgCmd(buf, 'step', ['line 1: call CallAFunction()'])
+  call s:RunDbgCmd(buf, 'backtrace', [
         \ '>backtrace',
         \ '  1 User Autocommands for "TestGlobalFunction"',
         \ '->0 function GlobalFunction',
         \ 'line 1: call CallAFunction()'])
 
-  call RunDbgCmd(buf, 'step', ['line 1: call SourceAnotherFile()'])
-  call RunDbgCmd(buf, 'step', ['line 1: source Xtest2.vim'])
+  call s:RunDbgCmd(buf, 'step', ['line 1: call SourceAnotherFile()'])
+  call s:RunDbgCmd(buf, 'step', ['line 1: source Xtest2.vim'])
 
-  call RunDbgCmd(buf, 'backtrace', [
+  call s:RunDbgCmd(buf, 'backtrace', [
         \ '>backtrace',
         \ '  3 User Autocommands for "TestGlobalFunction"',
         \ '  2 function GlobalFunction[1]',
@@ -681,8 +681,8 @@
 
   " Step into the 'source' command. Note that we print the full trace all the
   " way though the source command.
-  call RunDbgCmd(buf, 'step', ['line 1: func DoAThing()'])
-  call RunDbgCmd(buf, 'backtrace', [
+  call s:RunDbgCmd(buf, 'step', ['line 1: func DoAThing()'])
+  call s:RunDbgCmd(buf, 'backtrace', [
         \ '>backtrace',
         \ '  4 User Autocommands for "TestGlobalFunction"',
         \ '  3 function GlobalFunction[1]',
@@ -691,8 +691,8 @@
         \ '->0 script ' .. getcwd() .. '/Xtest2.vim',
         \ 'line 1: func DoAThing()'])
 
-  call RunDbgCmd( buf, 'up' )
-  call RunDbgCmd( buf, 'backtrace', [
+  call s:RunDbgCmd( buf, 'up' )
+  call s:RunDbgCmd( buf, 'backtrace', [
         \ '>backtrace',
         \ '  4 User Autocommands for "TestGlobalFunction"',
         \ '  3 function GlobalFunction[1]',
@@ -701,8 +701,8 @@
         \ '  0 script ' .. getcwd() .. '/Xtest2.vim',
         \ 'line 1: func DoAThing()' ] )
 
-  call RunDbgCmd( buf, 'up' )
-  call RunDbgCmd( buf, 'backtrace', [
+  call s:RunDbgCmd( buf, 'up' )
+  call s:RunDbgCmd( buf, 'backtrace', [
         \ '>backtrace',
         \ '  4 User Autocommands for "TestGlobalFunction"',
         \ '  3 function GlobalFunction[1]',
@@ -711,8 +711,8 @@
         \ '  0 script ' .. getcwd() .. '/Xtest2.vim',
         \ 'line 1: func DoAThing()' ] )
 
-  call RunDbgCmd( buf, 'up' )
-  call RunDbgCmd( buf, 'backtrace', [
+  call s:RunDbgCmd( buf, 'up' )
+  call s:RunDbgCmd( buf, 'backtrace', [
         \ '>backtrace',
         \ '  4 User Autocommands for "TestGlobalFunction"',
         \ '->3 function GlobalFunction[1]',
@@ -721,8 +721,8 @@
         \ '  0 script ' .. getcwd() .. '/Xtest2.vim',
         \ 'line 1: func DoAThing()' ] )
 
-  call RunDbgCmd( buf, 'up' )
-  call RunDbgCmd( buf, 'backtrace', [
+  call s:RunDbgCmd( buf, 'up' )
+  call s:RunDbgCmd( buf, 'backtrace', [
         \ '>backtrace',
         \ '->4 User Autocommands for "TestGlobalFunction"',
         \ '  3 function GlobalFunction[1]',
@@ -731,8 +731,8 @@
         \ '  0 script ' .. getcwd() .. '/Xtest2.vim',
         \ 'line 1: func DoAThing()' ] )
 
-  call RunDbgCmd( buf, 'up', [ 'frame at highest level: 4' ] )
-  call RunDbgCmd( buf, 'backtrace', [
+  call s:RunDbgCmd( buf, 'up', [ 'frame at highest level: 4' ] )
+  call s:RunDbgCmd( buf, 'backtrace', [
         \ '>backtrace',
         \ '->4 User Autocommands for "TestGlobalFunction"',
         \ '  3 function GlobalFunction[1]',
@@ -741,8 +741,8 @@
         \ '  0 script ' .. getcwd() .. '/Xtest2.vim',
         \ 'line 1: func DoAThing()' ] )
 
-  call RunDbgCmd( buf, 'down' )
-  call RunDbgCmd( buf, 'backtrace', [
+  call s:RunDbgCmd( buf, 'down' )
+  call s:RunDbgCmd( buf, 'backtrace', [
         \ '>backtrace',
         \ '  4 User Autocommands for "TestGlobalFunction"',
         \ '->3 function GlobalFunction[1]',
@@ -752,8 +752,8 @@
         \ 'line 1: func DoAThing()' ] )
 
 
-  call RunDbgCmd( buf, 'down' )
-  call RunDbgCmd( buf, 'backtrace', [
+  call s:RunDbgCmd( buf, 'down' )
+  call s:RunDbgCmd( buf, 'backtrace', [
         \ '>backtrace',
         \ '  4 User Autocommands for "TestGlobalFunction"',
         \ '  3 function GlobalFunction[1]',
@@ -762,8 +762,8 @@
         \ '  0 script ' .. getcwd() .. '/Xtest2.vim',
         \ 'line 1: func DoAThing()' ] )
 
-  call RunDbgCmd( buf, 'down' )
-  call RunDbgCmd( buf, 'backtrace', [
+  call s:RunDbgCmd( buf, 'down' )
+  call s:RunDbgCmd( buf, 'backtrace', [
         \ '>backtrace',
         \ '  4 User Autocommands for "TestGlobalFunction"',
         \ '  3 function GlobalFunction[1]',
@@ -772,8 +772,8 @@
         \ '  0 script ' .. getcwd() .. '/Xtest2.vim',
         \ 'line 1: func DoAThing()' ] )
 
-  call RunDbgCmd( buf, 'down' )
-  call RunDbgCmd( buf, 'backtrace', [
+  call s:RunDbgCmd( buf, 'down' )
+  call s:RunDbgCmd( buf, 'backtrace', [
         \ '>backtrace',
         \ '  4 User Autocommands for "TestGlobalFunction"',
         \ '  3 function GlobalFunction[1]',
@@ -782,12 +782,12 @@
         \ '->0 script ' .. getcwd() .. '/Xtest2.vim',
         \ 'line 1: func DoAThing()' ] )
 
-  call RunDbgCmd( buf, 'down', [ 'frame is zero' ] )
+  call s:RunDbgCmd( buf, 'down', [ 'frame is zero' ] )
 
   " step until we have another meaningful trace
-  call RunDbgCmd(buf, 'step', ['line 5: func File2Function()'])
-  call RunDbgCmd(buf, 'step', ['line 9: call File2Function()'])
-  call RunDbgCmd(buf, 'backtrace', [
+  call s:RunDbgCmd(buf, 'step', ['line 5: func File2Function()'])
+  call s:RunDbgCmd(buf, 'step', ['line 9: call File2Function()'])
+  call s:RunDbgCmd(buf, 'backtrace', [
         \ '>backtrace',
         \ '  4 User Autocommands for "TestGlobalFunction"',
         \ '  3 function GlobalFunction[1]',
@@ -796,9 +796,9 @@
         \ '->0 script ' .. getcwd() .. '/Xtest2.vim',
         \ 'line 9: call File2Function()'])
 
-  call RunDbgCmd(buf, 'step', ['line 1: call DoAThing()'])
-  call RunDbgCmd(buf, 'step', ['line 1: echo "DoAThing"'])
-  call RunDbgCmd(buf, 'backtrace', [
+  call s:RunDbgCmd(buf, 'step', ['line 1: call DoAThing()'])
+  call s:RunDbgCmd(buf, 'step', ['line 1: echo "DoAThing"'])
+  call s:RunDbgCmd(buf, 'backtrace', [
         \ '>backtrace',
         \ '  6 User Autocommands for "TestGlobalFunction"',
         \ '  5 function GlobalFunction[1]',
@@ -810,20 +810,20 @@
         \ 'line 1: echo "DoAThing"'])
 
   " Now, step (back to Xfile1.vim), and call the function _in_ Xfile2.vim
-  call RunDbgCmd(buf, 'step', ['line 1: End of function'])
-  call RunDbgCmd(buf, 'step', ['line 1: End of function'])
-  call RunDbgCmd(buf, 'step', ['line 10: End of sourced file'])
-  call RunDbgCmd(buf, 'step', ['line 1: End of function'])
-  call RunDbgCmd(buf, 'step', ['line 2: call File2Function()'])
-  call RunDbgCmd(buf, 'backtrace', [
+  call s:RunDbgCmd(buf, 'step', ['line 1: End of function'])
+  call s:RunDbgCmd(buf, 'step', ['line 1: End of function'])
+  call s:RunDbgCmd(buf, 'step', ['line 10: End of sourced file'])
+  call s:RunDbgCmd(buf, 'step', ['line 1: End of function'])
+  call s:RunDbgCmd(buf, 'step', ['line 2: call File2Function()'])
+  call s:RunDbgCmd(buf, 'backtrace', [
         \ '>backtrace',
         \ '  2 User Autocommands for "TestGlobalFunction"',
         \ '  1 function GlobalFunction[1]',
         \ '->0 CallAFunction',
         \ 'line 2: call File2Function()'])
 
-  call RunDbgCmd(buf, 'step', ['line 1: call DoAThing()'])
-  call RunDbgCmd(buf, 'backtrace', [
+  call s:RunDbgCmd(buf, 'step', ['line 1: call DoAThing()'])
+  call s:RunDbgCmd(buf, 'backtrace', [
         \ '>backtrace',
         \ '  3 User Autocommands for "TestGlobalFunction"',
         \ '  2 function GlobalFunction[1]',
@@ -834,8 +834,8 @@
 
   " Now unwind so that we get back to the original autocommand (and the second
   " cmd echo "Done")
-  call RunDbgCmd(buf, 'finish', ['line 1: End of function'])
-  call RunDbgCmd(buf, 'backtrace', [
+  call s:RunDbgCmd(buf, 'finish', ['line 1: End of function'])
+  call s:RunDbgCmd(buf, 'backtrace', [
         \ '>backtrace',
         \ '  3 User Autocommands for "TestGlobalFunction"',
         \ '  2 function GlobalFunction[1]',
@@ -843,23 +843,23 @@
         \ '->0 File2Function',
         \ 'line 1: End of function'])
 
-  call RunDbgCmd(buf, 'finish', ['line 2: End of function'])
-  call RunDbgCmd(buf, 'backtrace', [
+  call s:RunDbgCmd(buf, 'finish', ['line 2: End of function'])
+  call s:RunDbgCmd(buf, 'backtrace', [
         \ '>backtrace',
         \ '  2 User Autocommands for "TestGlobalFunction"',
         \ '  1 function GlobalFunction[1]',
         \ '->0 CallAFunction',
         \ 'line 2: End of function'])
 
-  call RunDbgCmd(buf, 'finish', ['line 1: End of function'])
-  call RunDbgCmd(buf, 'backtrace', [
+  call s:RunDbgCmd(buf, 'finish', ['line 1: End of function'])
+  call s:RunDbgCmd(buf, 'backtrace', [
         \ '>backtrace',
         \ '  1 User Autocommands for "TestGlobalFunction"',
         \ '->0 function GlobalFunction',
         \ 'line 1: End of function'])
 
-  call RunDbgCmd(buf, 'step', ['cmd: echo "Done"'])
-  call RunDbgCmd(buf, 'backtrace', [
+  call s:RunDbgCmd(buf, 'step', ['cmd: echo "Done"'])
+  call s:RunDbgCmd(buf, 'backtrace', [
         \ '>backtrace',
         \ '->0 User Autocommands for "TestGlobalFunction"',
         \ 'cmd: echo "Done"'])
@@ -906,18 +906,18 @@
 
   " Need to wait for the vim-in-terminal to be ready.
   " With valgrind this can take quite long.
-  call CheckDbgOutput(buf, ['command line',
+  call s:CheckDbgOutput(buf, ['command line',
                             \ 'cmd: call GlobalFunction()'], #{msec: 5000})
 
   " At this point the only thing in the stack is the cmdline
-  call RunDbgCmd(buf, 'backtrace', [
+  call s:RunDbgCmd(buf, 'backtrace', [
         \ '>backtrace',
         \ '->0 command line',
         \ 'cmd: call GlobalFunction()'])
 
   " And now we're back into the call stack
-  call RunDbgCmd(buf, 'step', ['line 1: call CallAFunction()'])
-  call RunDbgCmd(buf, 'backtrace', [
+  call s:RunDbgCmd(buf, 'step', ['line 1: call CallAFunction()'])
+  call s:RunDbgCmd(buf, 'backtrace', [
         \ '>backtrace',
         \ '  1 command line',
         \ '->0 function GlobalFunction',
@@ -970,32 +970,32 @@
 
   let buf = RunVimInTerminal('-S Xtest1.vim', {})
 
-  call RunDbgCmd(buf,
+  call s:RunDbgCmd(buf,
                 \ ':debug call GlobalFunction()',
                 \ ['cmd: call GlobalFunction()'])
 
-  call RunDbgCmd(buf, 'step', ['line 1: var some = "some var"'])
-  call RunDbgCmd(buf, 'step', ['line 2: CallAFunction()'])
-  call RunDbgCmd(buf, 'echo some', ['some var'])
+  call s:RunDbgCmd(buf, 'step', ['line 1: var some = "some var"'])
+  call s:RunDbgCmd(buf, 'step', ['line 2: CallAFunction()'])
+  call s:RunDbgCmd(buf, 'echo some', ['some var'])
 
-  call RunDbgCmd(buf, 'backtrace', [
+  call s:RunDbgCmd(buf, 'backtrace', [
         \ '\V>backtrace',
         \ '\V->0 function GlobalFunction',
         \ '\Vline 2: CallAFunction()',
         \ ],
         \ #{match: 'pattern'})
 
-  call RunDbgCmd(buf, 'step', ['line 1: SourceAnotherFile()'])
-  call RunDbgCmd(buf, 'step', ['line 1: source Xtest2.vim'])
+  call s:RunDbgCmd(buf, 'step', ['line 1: SourceAnotherFile()'])
+  call s:RunDbgCmd(buf, 'step', ['line 1: source Xtest2.vim'])
   " Repeated line, because we first are in the compiled function before the
   " EXEC and then in do_cmdline() before the :source command.
-  call RunDbgCmd(buf, 'step', ['line 1: source Xtest2.vim'])
-  call RunDbgCmd(buf, 'step', ['line 1: vim9script'])
-  call RunDbgCmd(buf, 'step', ['line 3: def DoAThing(): number'])
-  call RunDbgCmd(buf, 'step', ['line 9: export def File2Function()'])
-  call RunDbgCmd(buf, 'step', ['line 13: defcompile'])
-  call RunDbgCmd(buf, 'step', ['line 14: File2Function()'])
-  call RunDbgCmd(buf, 'backtrace', [
+  call s:RunDbgCmd(buf, 'step', ['line 1: source Xtest2.vim'])
+  call s:RunDbgCmd(buf, 'step', ['line 1: vim9script'])
+  call s:RunDbgCmd(buf, 'step', ['line 3: def DoAThing(): number'])
+  call s:RunDbgCmd(buf, 'step', ['line 9: export def File2Function()'])
+  call s:RunDbgCmd(buf, 'step', ['line 13: defcompile'])
+  call s:RunDbgCmd(buf, 'step', ['line 14: File2Function()'])
+  call s:RunDbgCmd(buf, 'backtrace', [
         \ '\V>backtrace',
         \ '\V  3 function GlobalFunction[2]',
         \ '\V  2 <SNR>\.\*_CallAFunction[1]',
@@ -1005,8 +1005,8 @@
         \ #{match: 'pattern'})
 
   " Don't step into compiled functions...
-  call RunDbgCmd(buf, 'next', ['line 15: End of sourced file'])
-  call RunDbgCmd(buf, 'backtrace', [
+  call s:RunDbgCmd(buf, 'next', ['line 15: End of sourced file'])
+  call s:RunDbgCmd(buf, 'backtrace', [
         \ '\V>backtrace',
         \ '\V  3 function GlobalFunction[2]',
         \ '\V  2 <SNR>\.\*_CallAFunction[1]',
@@ -1032,8 +1032,8 @@
   call writefile(file3, 'Xtest3.vim', 'D')
   let buf = RunVimInTerminal('-S Xtest3.vim', {})
 
-  call RunDbgCmd(buf, ':breakadd expr g:someVar')
-  call RunDbgCmd(buf, ':call g:ChangeVar()', ['Oldval = "''foo''"', 'Newval = "''bar''"', 'function ChangeVar', 'line 2: echo "changed"'])
+  call s:RunDbgCmd(buf, ':breakadd expr g:someVar')
+  call s:RunDbgCmd(buf, ':call g:ChangeVar()', ['Oldval = "''foo''"', 'Newval = "''bar''"', 'function ChangeVar', 'line 2: echo "changed"'])
 
   call StopVimInTerminal(buf)
 endfunc
@@ -1068,17 +1068,17 @@
 
   let buf = RunVimInTerminal('-S XtestDebug.vim', {})
 
-  call RunDbgCmd(buf,':call SomeFunc()', ['line 2: echo "and"'])
-  call RunDbgCmd(buf,'next', ['line 3: echo "there"'])
-  call RunDbgCmd(buf,'next', ['line 4: breakadd func 2 LocalFunc'])
+  call s:RunDbgCmd(buf,':call SomeFunc()', ['line 2: echo "and"'])
+  call s:RunDbgCmd(buf,'next', ['line 3: echo "there"'])
+  call s:RunDbgCmd(buf,'next', ['line 4: breakadd func 2 LocalFunc'])
 
   " continue, next breakpoint is in LocalFunc()
-  call RunDbgCmd(buf,'cont', ['line 2: echo "second"'])
+  call s:RunDbgCmd(buf,'cont', ['line 2: echo "second"'])
 
   " continue, next breakpoint is in LegacyFunc()
-  call RunDbgCmd(buf,'cont', ['line 1: echo "legone"'])
+  call s:RunDbgCmd(buf,'cont', ['line 1: echo "legone"'])
 
-  call RunDbgCmd(buf, 'cont')
+  call s:RunDbgCmd(buf, 'cont')
 
   call StopVimInTerminal(buf)
 endfunc
@@ -1140,68 +1140,68 @@
 
   let buf = RunVimInTerminal('-S Xtest.vim', {})
 
-  call RunDbgCmd(buf,
+  call s:RunDbgCmd(buf,
                 \ ':debug call Func()',
                 \ ['cmd: call Func()'])
-  call RunDbgCmd(buf, 'next', ['result: 3'])
+  call s:RunDbgCmd(buf, 'next', ['result: 3'])
   call term_sendkeys(buf, "\r")
-  call RunDbgCmd(buf, 'cont')
+  call s:RunDbgCmd(buf, 'cont')
 
-  call RunDbgCmd(buf,
+  call s:RunDbgCmd(buf,
                 \ ':debug call FuncWithArgs("asdf", 42, 1, 2, 3)',
                 \ ['cmd: call FuncWithArgs("asdf", 42, 1, 2, 3)'])
-  call RunDbgCmd(buf, 'step', ['line 1: echo text .. nr'])
-  call RunDbgCmd(buf, 'echo text', ['asdf'])
-  call RunDbgCmd(buf, 'echo nr', ['42'])
-  call RunDbgCmd(buf, 'echo items', ['[1, 2, 3]'])
-  call RunDbgCmd(buf, 'step', ['asdf42', 'function FuncWithArgs', 'line 2:   for it in items'])
-  call RunDbgCmd(buf, 'step', ['function FuncWithArgs', 'line 2: for it in items'])
-  call RunDbgCmd(buf, 'echo it', ['0'])
-  call RunDbgCmd(buf, 'step', ['line 3: echo it'])
-  call RunDbgCmd(buf, 'echo it', ['1'])
-  call RunDbgCmd(buf, 'step', ['1', 'function FuncWithArgs', 'line 4: endfor'])
-  call RunDbgCmd(buf, 'step', ['line 2: for it in items'])
-  call RunDbgCmd(buf, 'echo it', ['1'])
-  call RunDbgCmd(buf, 'step', ['line 3: echo it'])
-  call RunDbgCmd(buf, 'step', ['2', 'function FuncWithArgs', 'line 4: endfor'])
-  call RunDbgCmd(buf, 'step', ['line 2: for it in items'])
-  call RunDbgCmd(buf, 'echo it', ['2'])
-  call RunDbgCmd(buf, 'step', ['line 3: echo it'])
-  call RunDbgCmd(buf, 'step', ['3', 'function FuncWithArgs', 'line 4: endfor'])
-  call RunDbgCmd(buf, 'step', ['line 2: for it in items'])
-  call RunDbgCmd(buf, 'step', ['line 5: echo "done"'])
-  call RunDbgCmd(buf, 'cont')
+  call s:RunDbgCmd(buf, 'step', ['line 1: echo text .. nr'])
+  call s:RunDbgCmd(buf, 'echo text', ['asdf'])
+  call s:RunDbgCmd(buf, 'echo nr', ['42'])
+  call s:RunDbgCmd(buf, 'echo items', ['[1, 2, 3]'])
+  call s:RunDbgCmd(buf, 'step', ['asdf42', 'function FuncWithArgs', 'line 2:   for it in items'])
+  call s:RunDbgCmd(buf, 'step', ['function FuncWithArgs', 'line 2: for it in items'])
+  call s:RunDbgCmd(buf, 'echo it', ['0'])
+  call s:RunDbgCmd(buf, 'step', ['line 3: echo it'])
+  call s:RunDbgCmd(buf, 'echo it', ['1'])
+  call s:RunDbgCmd(buf, 'step', ['1', 'function FuncWithArgs', 'line 4: endfor'])
+  call s:RunDbgCmd(buf, 'step', ['line 2: for it in items'])
+  call s:RunDbgCmd(buf, 'echo it', ['1'])
+  call s:RunDbgCmd(buf, 'step', ['line 3: echo it'])
+  call s:RunDbgCmd(buf, 'step', ['2', 'function FuncWithArgs', 'line 4: endfor'])
+  call s:RunDbgCmd(buf, 'step', ['line 2: for it in items'])
+  call s:RunDbgCmd(buf, 'echo it', ['2'])
+  call s:RunDbgCmd(buf, 'step', ['line 3: echo it'])
+  call s:RunDbgCmd(buf, 'step', ['3', 'function FuncWithArgs', 'line 4: endfor'])
+  call s:RunDbgCmd(buf, 'step', ['line 2: for it in items'])
+  call s:RunDbgCmd(buf, 'step', ['line 5: echo "done"'])
+  call s:RunDbgCmd(buf, 'cont')
 
-  call RunDbgCmd(buf,
+  call s:RunDbgCmd(buf,
                 \ ':debug call FuncWithDict()',
                 \ ['cmd: call FuncWithDict()'])
-  call RunDbgCmd(buf, 'step', ['line 1: var d = {  a: 1,  b: 2,  }'])
-  call RunDbgCmd(buf, 'step', ['line 6: def Inner()'])
-  call RunDbgCmd(buf, 'cont')
+  call s:RunDbgCmd(buf, 'step', ['line 1: var d = {  a: 1,  b: 2,  }'])
+  call s:RunDbgCmd(buf, 'step', ['line 6: def Inner()'])
+  call s:RunDbgCmd(buf, 'cont')
 
-  call RunDbgCmd(buf, ':breakadd func 1 FuncComment')
-  call RunDbgCmd(buf, ':call FuncComment()', ['function FuncComment', 'line 2: echo "first"  .. "one"'])
-  call RunDbgCmd(buf, ':breakadd func 3 FuncComment')
-  call RunDbgCmd(buf, 'cont', ['function FuncComment', 'line 5: echo "second"'])
-  call RunDbgCmd(buf, 'cont')
+  call s:RunDbgCmd(buf, ':breakadd func 1 FuncComment')
+  call s:RunDbgCmd(buf, ':call FuncComment()', ['function FuncComment', 'line 2: echo "first"  .. "one"'])
+  call s:RunDbgCmd(buf, ':breakadd func 3 FuncComment')
+  call s:RunDbgCmd(buf, 'cont', ['function FuncComment', 'line 5: echo "second"'])
+  call s:RunDbgCmd(buf, 'cont')
 
-  call RunDbgCmd(buf, ':breakadd func 2 FuncForLoop')
-  call RunDbgCmd(buf, ':call FuncForLoop()', ['function FuncForLoop', 'line 2:   for i in [11, 22, 33]'])
-  call RunDbgCmd(buf, 'step', ['line 2: for i in [11, 22, 33]'])
-  call RunDbgCmd(buf, 'next', ['function FuncForLoop', 'line 3: eval i + 2'])
-  call RunDbgCmd(buf, 'echo i', ['11'])
-  call RunDbgCmd(buf, 'next', ['function FuncForLoop', 'line 4: endfor'])
-  call RunDbgCmd(buf, 'next', ['function FuncForLoop', 'line 2: for i in [11, 22, 33]'])
-  call RunDbgCmd(buf, 'next', ['line 3: eval i + 2'])
-  call RunDbgCmd(buf, 'echo i', ['22'])
+  call s:RunDbgCmd(buf, ':breakadd func 2 FuncForLoop')
+  call s:RunDbgCmd(buf, ':call FuncForLoop()', ['function FuncForLoop', 'line 2:   for i in [11, 22, 33]'])
+  call s:RunDbgCmd(buf, 'step', ['line 2: for i in [11, 22, 33]'])
+  call s:RunDbgCmd(buf, 'next', ['function FuncForLoop', 'line 3: eval i + 2'])
+  call s:RunDbgCmd(buf, 'echo i', ['11'])
+  call s:RunDbgCmd(buf, 'next', ['function FuncForLoop', 'line 4: endfor'])
+  call s:RunDbgCmd(buf, 'next', ['function FuncForLoop', 'line 2: for i in [11, 22, 33]'])
+  call s:RunDbgCmd(buf, 'next', ['line 3: eval i + 2'])
+  call s:RunDbgCmd(buf, 'echo i', ['22'])
 
-  call RunDbgCmd(buf, 'breakdel *')
-  call RunDbgCmd(buf, 'cont')
+  call s:RunDbgCmd(buf, 'breakdel *')
+  call s:RunDbgCmd(buf, 'cont')
 
-  call RunDbgCmd(buf, ':breakadd func FuncWithSplitLine')
-  call RunDbgCmd(buf, ':call FuncWithSplitLine()', ['function FuncWithSplitLine', 'line 1: eval 1 + 2 | eval 2 + 3'])
+  call s:RunDbgCmd(buf, ':breakadd func FuncWithSplitLine')
+  call s:RunDbgCmd(buf, ':call FuncWithSplitLine()', ['function FuncWithSplitLine', 'line 1: eval 1 + 2 | eval 2 + 3'])
 
-  call RunDbgCmd(buf, 'cont')
+  call s:RunDbgCmd(buf, 'cont')
   call StopVimInTerminal(buf)
 endfunc
 
@@ -1220,20 +1220,20 @@
 
   let buf = RunVimInTerminal('-S XtestLambda.vim', {})
 
-  call RunDbgCmd(buf,
+  call s:RunDbgCmd(buf,
                 \ ':call g:Func()',
                 \ ['function Func', 'line 2: [''b'']->map((_, v) => s)'])
-  call RunDbgCmd(buf,
+  call s:RunDbgCmd(buf,
                 \ 'next',
                 \ ['function Func', 'line 3: echo "done"'])
 
-  call RunDbgCmd(buf, 'cont')
+  call s:RunDbgCmd(buf, 'cont')
   call StopVimInTerminal(buf)
 endfunc
 
-func Test_debug_backtrace_level()
+def Test_debug_backtrace_level()
   CheckCWD
-  let lines =<< trim END
+  var lines =<< trim END
     let s:file1_var = 'file1'
     let g:global_var = 'global'
 
@@ -1246,9 +1246,9 @@
 
     call s:File1Func( 'arg1' )
   END
-  call writefile(lines, 'Xtest1.vim', 'D')
+  writefile(lines, 'Xtest1.vim', 'D')
 
-  let lines =<< trim END
+  lines =<< trim END
     let s:file2_var = 'file2'
 
     func s:File2Func( arg )
@@ -1259,168 +1259,168 @@
 
     call s:File2Func( 'arg2' )
   END
-  call writefile(lines, 'Xtest2.vim', 'D')
+  writefile(lines, 'Xtest2.vim', 'D')
 
-  let file1 = getcwd() .. '/Xtest1.vim'
-  let file2 = getcwd() .. '/Xtest2.vim'
+  var file1 = getcwd() .. '/Xtest1.vim'
+  var file2 = getcwd() .. '/Xtest2.vim'
 
-  " set a breakpoint and source file1.vim
-  let buf = RunVimInTerminal(
-        \ '-c "breakadd file 1 Xtest1.vim" -S Xtest1.vim',
-        \ #{wait_for_ruler: 0})
+  # set a breakpoint and source file1.vim
+  var buf = g:RunVimInTerminal(
+        '-c "breakadd file 1 Xtest1.vim" -S Xtest1.vim',
+        {wait_for_ruler: 0})
 
-  call CheckDbgOutput(buf, [
-        \ 'Breakpoint in "' .. file1 .. '" line 1',
-        \ 'Entering Debug mode.  Type "cont" to continue.',
-        \ 'command line..script ' .. file1,
-        \ 'line 1: let s:file1_var = ''file1'''
-        \ ], #{msec: 5000})
+  s:CheckDbgOutput(buf, [
+        'Breakpoint in "' .. file1 .. '" line 1',
+        'Entering Debug mode.  Type "cont" to continue.',
+        'command line..script ' .. file1,
+        'line 1: let s:file1_var = ''file1'''
+        ], {msec: 5000})
 
-  " step through the initial declarations
-  call RunDbgCmd(buf, 'step', [ 'line 2: let g:global_var = ''global''' ] )
-  call RunDbgCmd(buf, 'step', [ 'line 4: func s:File1Func( arg )' ] )
-  call RunDbgCmd(buf, 'echo s:file1_var', [ 'file1' ] )
-  call RunDbgCmd(buf, 'echo g:global_var', [ 'global' ] )
-  call RunDbgCmd(buf, 'echo global_var', [ 'global' ] )
+  # step through the initial declarations
+  s:RunDbgCmd(buf, 'step', [ 'line 2: let g:global_var = ''global''' ] )
+  s:RunDbgCmd(buf, 'step', [ 'line 4: func s:File1Func( arg )' ] )
+  s:RunDbgCmd(buf, 'echo s:file1_var', [ 'file1' ] )
+  s:RunDbgCmd(buf, 'echo g:global_var', [ 'global' ] )
+  s:RunDbgCmd(buf, 'echo global_var', [ 'global' ] )
 
-  " step in to the first function
-  call RunDbgCmd(buf, 'step', [ 'line 11: call s:File1Func( ''arg1'' )' ] )
-  call RunDbgCmd(buf, 'step', [ 'line 1: let s:file1_var .= a:arg' ] )
-  call RunDbgCmd(buf, 'echo a:arg', [ 'arg1' ] )
-  call RunDbgCmd(buf, 'echo s:file1_var', [ 'file1' ] )
-  call RunDbgCmd(buf, 'echo g:global_var', [ 'global' ] )
-  call RunDbgCmd(buf,
-                \'echo global_var',
-                \[ 'E121: Undefined variable: global_var' ] )
-  call RunDbgCmd(buf,
-                \'echo local_var',
-                \[ 'E121: Undefined variable: local_var' ] )
-  call RunDbgCmd(buf,
-                \'echo l:local_var',
-                \[ 'E121: Undefined variable: l:local_var' ] )
+  # step in to the first function
+  s:RunDbgCmd(buf, 'step', [ 'line 11: call s:File1Func( ''arg1'' )' ] )
+  s:RunDbgCmd(buf, 'step', [ 'line 1: let s:file1_var .= a:arg' ] )
+  s:RunDbgCmd(buf, 'echo a:arg', [ 'arg1' ] )
+  s:RunDbgCmd(buf, 'echo s:file1_var', [ 'file1' ] )
+  s:RunDbgCmd(buf, 'echo g:global_var', [ 'global' ] )
+  s:RunDbgCmd(buf,
+                'echo global_var',
+                [ 'E121: Undefined variable: global_var' ] )
+  s:RunDbgCmd(buf,
+                'echo local_var',
+                [ 'E121: Undefined variable: local_var' ] )
+  s:RunDbgCmd(buf,
+                'echo l:local_var',
+                [ 'E121: Undefined variable: l:local_var' ] )
 
-  " backtrace up
-  call RunDbgCmd(buf, 'backtrace', [
-        \ '\V>backtrace',
-        \ '\V  2 command line',
-        \ '\V  1 script ' .. file1 .. '[11]',
-        \ '\V->0 function <SNR>\.\*_File1Func',
-        \ '\Vline 1: let s:file1_var .= a:arg',
-        \ ],
-        \ #{ match: 'pattern' } )
-  call RunDbgCmd(buf, 'up', [ '>up' ] )
+  # backtrace up
+  s:RunDbgCmd(buf, 'backtrace', [
+        '\V>backtrace',
+        '\V  2 command line',
+        '\V  1 script ' .. file1 .. '[11]',
+        '\V->0 function <SNR>\.\*_File1Func',
+        '\Vline 1: let s:file1_var .= a:arg',
+        ],
+        { match: 'pattern' } )
+  s:RunDbgCmd(buf, 'up', [ '>up' ] )
 
-  call RunDbgCmd(buf, 'backtrace', [
-        \ '\V>backtrace',
-        \ '\V  2 command line',
-        \ '\V->1 script ' .. file1 .. '[11]',
-        \ '\V  0 function <SNR>\.\*_File1Func',
-        \ '\Vline 1: let s:file1_var .= a:arg',
-        \ ],
-        \ #{ match: 'pattern' } )
+  s:RunDbgCmd(buf, 'backtrace', [
+        '\V>backtrace',
+        '\V  2 command line',
+        '\V->1 script ' .. file1 .. '[11]',
+        '\V  0 function <SNR>\.\*_File1Func',
+        '\Vline 1: let s:file1_var .= a:arg',
+        ],
+        { match: 'pattern' } )
 
-  " Expression evaluation in the script frame (not the function frame)
-  " FIXME: Unexpected in this scope (a: should not be visible)
-  call RunDbgCmd(buf, 'echo a:arg', [ 'arg1' ] )
-  call RunDbgCmd(buf, 'echo s:file1_var', [ 'file1' ] )
-  call RunDbgCmd(buf, 'echo g:global_var', [ 'global' ] )
-  " FIXME: Unexpected in this scope (global should be found)
-  call RunDbgCmd(buf,
-                \'echo global_var',
-                \[ 'E121: Undefined variable: global_var' ] )
-  call RunDbgCmd(buf,
-                \'echo local_var',
-                \[ 'E121: Undefined variable: local_var' ] )
-  call RunDbgCmd(buf,
-                \'echo l:local_var',
-                \[ 'E121: Undefined variable: l:local_var' ] )
+  # Expression evaluation in the script frame (not the function frame)
+  # FIXME: Unexpected in this scope (a: should not be visible)
+  s:RunDbgCmd(buf, 'echo a:arg', [ 'arg1' ] )
+  s:RunDbgCmd(buf, 'echo s:file1_var', [ 'file1' ] )
+  s:RunDbgCmd(buf, 'echo g:global_var', [ 'global' ] )
+  # FIXME: Unexpected in this scope (global should be found)
+  s:RunDbgCmd(buf,
+                'echo global_var',
+                [ 'E121: Undefined variable: global_var' ] )
+  s:RunDbgCmd(buf,
+                'echo local_var',
+                [ 'E121: Undefined variable: local_var' ] )
+  s:RunDbgCmd(buf,
+                'echo l:local_var',
+                [ 'E121: Undefined variable: l:local_var' ] )
 
 
-  " step while backtraced jumps to the latest frame
-  call RunDbgCmd(buf, 'step', [
-        \ 'line 2: let local_var = s:file1_var .. '' test1''' ] )
-  call RunDbgCmd(buf, 'backtrace', [
-        \ '\V>backtrace',
-        \ '\V  2 command line',
-        \ '\V  1 script ' .. file1 .. '[11]',
-        \ '\V->0 function <SNR>\.\*_File1Func',
-        \ '\Vline 2: let local_var = s:file1_var .. '' test1''',
-        \ ],
-        \ #{ match: 'pattern' } )
+  # step while backtraced jumps to the latest frame
+  s:RunDbgCmd(buf, 'step', [
+        'line 2: let local_var = s:file1_var .. '' test1''' ] )
+  s:RunDbgCmd(buf, 'backtrace', [
+        '\V>backtrace',
+        '\V  2 command line',
+        '\V  1 script ' .. file1 .. '[11]',
+        '\V->0 function <SNR>\.\*_File1Func',
+        '\Vline 2: let local_var = s:file1_var .. '' test1''',
+        ],
+        { match: 'pattern' } )
 
-  call RunDbgCmd(buf, 'step', [ 'line 3: let g:global_var .= local_var' ] )
-  call RunDbgCmd(buf, 'echo local_var', [ 'file1arg1 test1' ] )
-  call RunDbgCmd(buf, 'echo l:local_var', [ 'file1arg1 test1' ] )
+  s:RunDbgCmd(buf, 'step', [ 'line 3: let g:global_var .= local_var' ] )
+  s:RunDbgCmd(buf, 'echo local_var', [ 'file1arg1 test1' ] )
+  s:RunDbgCmd(buf, 'echo l:local_var', [ 'file1arg1 test1' ] )
 
-  call RunDbgCmd(buf, 'step', [ 'line 4: source Xtest2.vim' ] )
-  call RunDbgCmd(buf, 'step', [ 'line 1: let s:file2_var = ''file2''' ] )
-  call RunDbgCmd(buf, 'backtrace', [
-        \ '\V>backtrace',
-        \ '\V  3 command line',
-        \ '\V  2 script ' .. file1 .. '[11]',
-        \ '\V  1 function <SNR>\.\*_File1Func[4]',
-        \ '\V->0 script ' .. file2,
-        \ '\Vline 1: let s:file2_var = ''file2''',
-        \ ],
-        \ #{ match: 'pattern' } )
+  s:RunDbgCmd(buf, 'step', [ 'line 4: source Xtest2.vim' ] )
+  s:RunDbgCmd(buf, 'step', [ 'line 1: let s:file2_var = ''file2''' ] )
+  s:RunDbgCmd(buf, 'backtrace', [
+        '\V>backtrace',
+        '\V  3 command line',
+        '\V  2 script ' .. file1 .. '[11]',
+        '\V  1 function <SNR>\.\*_File1Func[4]',
+        '\V->0 script ' .. file2,
+        '\Vline 1: let s:file2_var = ''file2''',
+        ],
+        { match: 'pattern' } )
 
-  " Expression evaluation in the script frame file2 (not the function frame)
-  call RunDbgCmd(buf, 'echo a:arg', [ 'E121: Undefined variable: a:arg' ] )
-  call RunDbgCmd(buf,
-        \ 'echo s:file1_var',
-        \ [ 'E121: Undefined variable: s:file1_var' ] )
-  call RunDbgCmd(buf, 'echo g:global_var', [ 'globalfile1arg1 test1' ] )
-  call RunDbgCmd(buf, 'echo global_var', [ 'globalfile1arg1 test1' ] )
-  call RunDbgCmd(buf,
-                \'echo local_var',
-                \[ 'E121: Undefined variable: local_var' ] )
-  call RunDbgCmd(buf,
-                \'echo l:local_var',
-                \[ 'E121: Undefined variable: l:local_var' ] )
-  call RunDbgCmd(buf,
-        \ 'echo s:file2_var',
-        \ [ 'E121: Undefined variable: s:file2_var' ] )
+  # Expression evaluation in the script frame file2 (not the function frame)
+  s:RunDbgCmd(buf, 'echo a:arg', [ 'E121: Undefined variable: a:arg' ] )
+  s:RunDbgCmd(buf,
+        'echo s:file1_var',
+        [ 'E121: Undefined variable: s:file1_var' ] )
+  s:RunDbgCmd(buf, 'echo g:global_var', [ 'globalfile1arg1 test1' ] )
+  s:RunDbgCmd(buf, 'echo global_var', [ 'globalfile1arg1 test1' ] )
+  s:RunDbgCmd(buf,
+                'echo local_var',
+                [ 'E121: Undefined variable: local_var' ] )
+  s:RunDbgCmd(buf,
+                'echo l:local_var',
+                [ 'E121: Undefined variable: l:local_var' ] )
+  s:RunDbgCmd(buf,
+                'echo s:file2_var',
+                [ 'E121: Undefined variable: s:file2_var' ] )
 
-  call RunDbgCmd(buf, 'step', [ 'line 3: func s:File2Func( arg )' ] )
-  call RunDbgCmd(buf, 'echo s:file2_var', [ 'file2' ] )
+  s:RunDbgCmd(buf, 'step', [ 'line 3: func s:File2Func( arg )' ] )
+  s:RunDbgCmd(buf, 'echo s:file2_var', [ 'file2' ] )
 
-  " Up the stack to the other script context
-  call RunDbgCmd(buf, 'up')
-  call RunDbgCmd(buf, 'backtrace', [
-        \ '\V>backtrace',
-        \ '\V  3 command line',
-        \ '\V  2 script ' .. file1 .. '[11]',
-        \ '\V->1 function <SNR>\.\*_File1Func[4]',
-        \ '\V  0 script ' .. file2,
-        \ '\Vline 3: func s:File2Func( arg )',
-        \ ],
-        \ #{ match: 'pattern' } )
-  " FIXME: Unexpected. Should see the a: and l: dicts from File1Func
-  call RunDbgCmd(buf, 'echo a:arg', [ 'E121: Undefined variable: a:arg' ] )
-  call RunDbgCmd(buf,
-        \ 'echo l:local_var',
-        \ [ 'E121: Undefined variable: l:local_var' ] )
+  # Up the stack to the other script context
+  s:RunDbgCmd(buf, 'up')
+  s:RunDbgCmd(buf, 'backtrace', [
+        '\V>backtrace',
+        '\V  3 command line',
+        '\V  2 script ' .. file1 .. '[11]',
+        '\V->1 function <SNR>\.\*_File1Func[4]',
+        '\V  0 script ' .. file2,
+        '\Vline 3: func s:File2Func( arg )',
+        ],
+        { match: 'pattern' } )
+  # FIXME: Unexpected. Should see the a: and l: dicts from File1Func
+  s:RunDbgCmd(buf, 'echo a:arg', [ 'E121: Undefined variable: a:arg' ] )
+  s:RunDbgCmd(buf,
+        'echo l:local_var',
+        [ 'E121: Undefined variable: l:local_var' ] )
 
-  call RunDbgCmd(buf, 'up')
-  call RunDbgCmd(buf, 'backtrace', [
-        \ '\V>backtrace',
-        \ '\V  3 command line',
-        \ '\V->2 script ' .. file1 .. '[11]',
-        \ '\V  1 function <SNR>\.\*_File1Func[4]',
-        \ '\V  0 script ' .. file2,
-        \ '\Vline 3: func s:File2Func( arg )',
-        \ ],
-        \ #{ match: 'pattern' } )
+  s:RunDbgCmd(buf, 'up')
+  s:RunDbgCmd(buf, 'backtrace', [
+        '\V>backtrace',
+        '\V  3 command line',
+        '\V->2 script ' .. file1 .. '[11]',
+        '\V  1 function <SNR>\.\*_File1Func[4]',
+        '\V  0 script ' .. file2,
+        '\Vline 3: func s:File2Func( arg )',
+        ],
+        { match: 'pattern' } )
 
-  " FIXME: Unexpected (wrong script vars are used)
-  call RunDbgCmd(buf,
-        \ 'echo s:file1_var',
-        \ [ 'E121: Undefined variable: s:file1_var' ] )
-  call RunDbgCmd(buf, 'echo s:file2_var', [ 'file2' ] )
+  # FIXME: Unexpected (wrong script vars are used)
+  s:RunDbgCmd(buf,
+        'echo s:file1_var',
+        [ 'E121: Undefined variable: s:file1_var' ] )
+  s:RunDbgCmd(buf, 'echo s:file2_var', [ 'file2' ] )
 
-  call RunDbgCmd(buf, 'cont')
-  call StopVimInTerminal(buf)
-endfunc
+  s:RunDbgCmd(buf, 'cont')
+  g:StopVimInTerminal(buf)
+enddef
 
 " Test for setting a breakpoint on a :endif where the :if condition is false
 " and then quit the script. This should generate an interrupt.
diff --git a/src/testdir/test_filetype.vim b/src/testdir/test_filetype.vim
index e02872f..d2160ec 100644
--- a/src/testdir/test_filetype.vim
+++ b/src/testdir/test_filetype.vim
@@ -704,27 +704,29 @@
     \ 'bzl': ['file.BUILD', 'BUILD'],
     \ }
 
-func CheckItems(checks)
+def CheckItems(checks: dict<list<string>>)
   set noswapfile
-  for [ft, names] in items(a:checks)
+
+  for [ft, names] in items(checks)
     for i in range(0, len(names) - 1)
       new
       try
-        exe 'edit ' . fnameescape(names[i])
+        exe 'edit ' .. fnameescape(names[i])
       catch
-	call assert_report('cannot edit "' . names[i] . '": ' . v:exception)
+	assert_report('cannot edit "' .. names[i] .. '": ' .. v:exception)
       endtry
       if &filetype == '' && &readonly
-	" File exists but not able to edit it (permission denied)
+	# File exists but not able to edit it (permission denied)
       else
-        let expected = ft == 'none' ? '' : ft
-	call assert_equal(expected, &filetype, 'with file name: ' . names[i])
+        var expected = ft == 'none' ? '' : ft
+	assert_equal(expected, &filetype, 'with file name: ' .. names[i])
       endif
       bwipe!
     endfor
   endfor
+
   set swapfile&
-endfunc
+enddef
 
 func Test_filetype_detection()
   filetype on
