diff src/testdir/test_search.vim @ 19370:02111977dd05 v8.2.0243

patch 8.2.0243: insufficient code coverage for ex_docmd.c functions Commit: https://github.com/vim/vim/commit/9f6277bdde97b7767ded43a0b5a2023eb601b3b7 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Feb 11 22:04:02 2020 +0100 patch 8.2.0243: insufficient code coverage for ex_docmd.c functions Problem: Insufficient code coverage for ex_docmd.c functions. Solution: Add more tests. (Yegappan Lakshmanan, closes https://github.com/vim/vim/issues/5618)
author Bram Moolenaar <Bram@vim.org>
date Tue, 11 Feb 2020 22:15:04 +0100
parents 6fd567c927c0
children 8f8a5a15d00a
line wrap: on
line diff
--- a/src/testdir/test_search.vim
+++ b/src/testdir/test_search.vim
@@ -1457,42 +1457,62 @@ func Test_search_special()
 endfunc
 
 " Test for command failures when the last search pattern is not set.
+" Need to run this in a new vim instance where last search pattern is not set.
 func Test_search_with_no_last_pat()
-  call test_clear_search_pat()
-  call assert_fails("normal i\<C-R>/\e", 'E35:')
-  call assert_fails("exe '/'", 'E35:')
-  call assert_fails("exe '?'", 'E35:')
-  call assert_fails("/", 'E35:')
-  call assert_fails("?", 'E35:')
-  call assert_fails("normal n", 'E35:')
-  call assert_fails("normal N", 'E35:')
-  call assert_fails("normal gn", 'E35:')
-  call assert_fails("normal gN", 'E35:')
-  call assert_fails("normal cgn", 'E35:')
-  call assert_fails("normal cgN", 'E35:')
-  let p = []
-  let p = @/
-  call assert_equal('', p)
-  call assert_fails("normal :\<C-R>/", 'E35:')
-  call assert_fails("//p", 'E35:')
-  call assert_fails(";//p", 'E35:')
-  call assert_fails("??p", 'E35:')
-  call assert_fails(";??p", 'E35:')
-  call assert_fails('g//p', 'E476:')
-  call assert_fails('v//p', 'E476:')
+  let lines =<< trim [SCRIPT]
+    call assert_fails("normal i\<C-R>/\e", 'E35:')
+    call assert_fails("exe '/'", 'E35:')
+    call assert_fails("exe '?'", 'E35:')
+    call assert_fails("/", 'E35:')
+    call assert_fails("?", 'E35:')
+    call assert_fails("normal n", 'E35:')
+    call assert_fails("normal N", 'E35:')
+    call assert_fails("normal gn", 'E35:')
+    call assert_fails("normal gN", 'E35:')
+    call assert_fails("normal cgn", 'E35:')
+    call assert_fails("normal cgN", 'E35:')
+    let p = []
+    let p = @/
+    call assert_equal('', p)
+    call assert_fails("normal :\<C-R>/", 'E35:')
+    call assert_fails("//p", 'E35:')
+    call assert_fails(";//p", 'E35:')
+    call assert_fails("??p", 'E35:')
+    call assert_fails(";??p", 'E35:')
+    call assert_fails('g//p', 'E476:')
+    call assert_fails('v//p', 'E476:')
+    call writefile(v:errors, 'Xresult')
+    qall!
+  [SCRIPT]
+  call writefile(lines, 'Xscript')
+
+  if RunVim([], [], '--clean -S Xscript')
+    call assert_equal([], readfile('Xresult'))
+  endif
+  call delete('Xscript')
+  call delete('Xresult')
 endfunc
 
 " Test for using tilde (~) atom in search. This should use the last used
 " substitute pattern
 func Test_search_tilde_pat()
-  call test_clear_search_pat()
-  set regexpengine=1
-  call assert_fails('exe "normal /~\<CR>"', 'E33:')
-  call assert_fails('exe "normal ?~\<CR>"', 'E33:')
-  set regexpengine=2
-  call assert_fails('exe "normal /~\<CR>"', 'E383:')
-  call assert_fails('exe "normal ?~\<CR>"', 'E383:')
-  set regexpengine&
+  let lines =<< trim [SCRIPT]
+    set regexpengine=1
+    call assert_fails('exe "normal /~\<CR>"', 'E33:')
+    call assert_fails('exe "normal ?~\<CR>"', 'E33:')
+    set regexpengine=2
+    call assert_fails('exe "normal /~\<CR>"', 'E383:')
+    call assert_fails('exe "normal ?~\<CR>"', 'E383:')
+    set regexpengine&
+    call writefile(v:errors, 'Xresult')
+    qall!
+  [SCRIPT]
+  call writefile(lines, 'Xscript')
+  if RunVim([], [], '--clean -S Xscript')
+    call assert_equal([], readfile('Xresult'))
+  endif
+  call delete('Xscript')
+  call delete('Xresult')
 endfunc
 
 " vim: shiftwidth=2 sts=2 expandtab