# HG changeset patch # User Christian Brabandt # Date 1501879504 -7200 # Node ID 0240e7e3d73648c007ea4c83b59d064a75f1a008 # Parent e9776f970210ef738b4c4b3d3715056c0217e024 patch 8.0.0861: still many old style tests commit https://github.com/vim/vim/commit/4a137b45864310060410f34cb9c7d0f0231bb256 Author: Bram Moolenaar Date: Fri Aug 4 22:37:11 2017 +0200 patch 8.0.0861: still many old style tests Problem: Still many old style tests. Solution: Convert several tests to new style. (Yegappan Lakshmanan) diff --git a/src/Makefile b/src/Makefile --- a/src/Makefile +++ b/src/Makefile @@ -2137,6 +2137,7 @@ test_arglist \ test_crypt \ test_cscope \ test_cursor_func \ + test_curswant \ test_delete \ test_diffmode \ test_digraph \ @@ -2155,6 +2156,7 @@ test_arglist \ test_farsi \ test_feedkeys \ test_file_perm \ + test_file_size \ test_fileformat \ test_filetype \ test_filter_cmd \ @@ -2189,6 +2191,8 @@ test_arglist \ test_lambda \ test_langmap \ test_largefile \ + test_let \ + test_lineending \ test_lispwords \ test_listlbr \ test_listlbr_utf8 \ @@ -2233,6 +2237,7 @@ test_arglist \ test_reltime \ test_retab \ test_ruby \ + test_scrollbind \ test_search \ test_searchpos \ test_set \ diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak --- a/src/testdir/Make_all.mak +++ b/src/testdir/Make_all.mak @@ -18,12 +18,10 @@ SCRIPTS_ALL = \ test5.out \ test7.out \ test8.out \ - test9.out \ test14.out \ test15.out \ test19.out \ test20.out \ - test22.out \ test28.out \ test29.out \ test31.out \ @@ -52,18 +50,14 @@ SCRIPTS_ALL = \ test69.out \ test70.out \ test73.out \ - test77.out \ test79.out \ test80.out \ - test84.out \ test88.out \ test91.out \ test94.out \ test95.out \ - test98.out \ test99.out \ test103.out \ - test104.out \ test107.out \ test108.out \ test_autoformat_join.out \ @@ -137,11 +131,13 @@ NEW_TESTS = test_arabic.res \ test_command_count.res \ test_crypt.res \ test_cscope.res \ + test_curswant.res \ test_diffmode.res \ test_digraph.res \ test_display.res \ test_edit.res \ test_farsi.res \ + test_file_size.res \ test_fnameescape.res \ test_fold.res \ test_gf.res \ @@ -158,6 +154,8 @@ NEW_TESTS = test_arabic.res \ test_job_fails.res \ test_json.res \ test_langmap.res \ + test_let.res \ + test_lineending.res \ test_listlbr.res \ test_listlbr_utf8.res \ test_lua.res \ @@ -186,6 +184,7 @@ NEW_TESTS = test_arabic.res \ test_retab.res \ test_registers.res \ test_ruby.res \ + test_scrollbind.res \ test_search.res \ test_signs.res \ test_smartindent.res \ diff --git a/src/testdir/Make_vms.mms b/src/testdir/Make_vms.mms --- a/src/testdir/Make_vms.mms +++ b/src/testdir/Make_vms.mms @@ -54,9 +54,6 @@ # Comment out if you have GNU compatible diff on your system # HAVE_GDIFF = YES -# Comment out if you have GNU compatible cksum on your system -# HAVE_CKSUM = YES - # Comment out if you have ICONV support # HAVE_ICONV = YES @@ -77,9 +74,9 @@ VIMPROG = <->vim.exe .SUFFIXES : .out .in SCRIPT = test1.out test3.out test4.out test5.out \ - test7.out test8.out test9.out \ + test7.out test8.out \ test14.out test15.out \ - test19.out test20.out test22.out \ + test19.out test20.out \ test28.out test29.out test30.out test31.out test32.out \ test33.out test34.out test36.out test37.out \ test38.out test39.out test40.out test41.out test42.out \ @@ -90,10 +87,10 @@ SCRIPT = test1.out test3.out test4.out test66.out test68.out test69.out \ test72.out \ test77a.out test78.out test79.out test80.out \ - test84.out test88.out \ + test88.out \ test91.out test94.out \ - test95.out test98.out test99.out \ - test103.out test104.out \ + test95.out test99.out \ + test103.out \ test107.out test108.out\ test_autocmd_option.out \ test_autoformat_join.out \ @@ -164,10 +161,6 @@ SCRIPT_GZIP = test11.out SCRIPT_GDIFF = test47.out .ENDIF -.IFDEF HAVE_CKSUM -SCRIPT_CKSUM = test77.out -.ENDIF - .IFDEF HAVE_ICONV SCRIPT_ICONV = test83.out .ENDIF @@ -201,7 +194,7 @@ SCRIPT_PYTHON = test86.out test87.out -@ if "''F$SEARCH("Xtest.*")'" .NES. "" then delete/noconfirm/nolog Xtest.*.* all : clean nolog $(START_WITH) $(SCRIPT) $(SCRIPT_GUI) $(SCRIPT_UNIX) $(SCRIPT_WIN) $(SCRIPT_SPELL) $(SCRIPT_ODS5) $(SCRIPT_GZIP) \ - $(SCRIPT_GDIFF) $(SCRIPT_MZSCH) $(SCRIPT_CKSUM) $(SCRIPT_ICONV) $(SCRIPT_LUA) $(SCRIPT_PYTHON) nolog + $(SCRIPT_GDIFF) $(SCRIPT_MZSCH) $(SCRIPT_ICONV) $(SCRIPT_LUA) $(SCRIPT_PYTHON) nolog -@ write sys$output " " -@ write sys$output "-----------------------------------------------" -@ write sys$output " All done" @@ -232,7 +225,6 @@ nolog : -@ write sys$output " HAVE_ODS5 = ""$(HAVE_ODS5)"" " -@ write sys$output " HAVE_GZIP = ""$(HAVE_GZIP)"" " -@ write sys$output " HAVE_GDIFF = ""$(HAVE_GDIFF)"" " - -@ write sys$output " HAVE_CKSUM = ""$(HAVE_CKSUM)"" " -@ write sys$output " HAVE_ICONV = ""$(HAVE_ICONV)"" " -@ write sys$output " HAVE_LUA = ""$(HAVE_LUA)"" " -@ write sys$output " HAVE_PYTHON= ""$(HAVE_PYTHON)"" " diff --git a/src/testdir/main.aap b/src/testdir/main.aap --- a/src/testdir/main.aap +++ b/src/testdir/main.aap @@ -5,9 +5,9 @@ VimProg ?= ../vim Scripts = test1.out test2.out test3.out test4.out test5.out test6.out - test7.out test8.out test9.out test11.out + test7.out test8.out test11.out test12.out test13.out test14.out test15.out test17.out - test18.out test19.out test20.out test21.out test22.out + test18.out test19.out test20.out test21.out test25.out test27.out test28.out test29.out test30.out test31.out test32.out test33.out test34.out test36.out test37.out diff --git a/src/testdir/test104.in b/src/testdir/test104.in deleted file mode 100644 --- a/src/testdir/test104.in +++ /dev/null @@ -1,30 +0,0 @@ -Tests for :let. vim: set ft=vim ts=8 : - -STARTTEST -:so small.vim -:set runtimepath+=./sautest -:" Test to not autoload when assigning. It causes internal error. -:try -: let Test104#numvar = function('tr') -: $put ='OK: ' . string(Test104#numvar) -:catch -: $put ='FAIL: ' . v:exception -:endtry -:let a = 1 -:let b = 2 -:for letargs in ['a b', '{0 == 1 ? "a" : "b"}', '{0 == 1 ? "a" : "b"} a', 'a {0 == 1 ? "a" : "b"}'] -: try -: redir => messages -: execute 'let' letargs -: redir END -: $put ='OK:' -: $put =split(substitute(messages, '\n', '\0 ', 'g'), '\n') -: catch -: $put ='FAIL: ' . v:exception -: redir END -: endtry -:endfor -:/^Results/,$wq! test.out -ENDTEST - -Results of test104: diff --git a/src/testdir/test104.ok b/src/testdir/test104.ok deleted file mode 100644 --- a/src/testdir/test104.ok +++ /dev/null @@ -1,13 +0,0 @@ -Results of test104: -OK: function('tr') -OK: - a #1 - b #2 -OK: - b #2 -OK: - b #2 - a #1 -OK: - a #1 - b #2 diff --git a/src/testdir/test22.in b/src/testdir/test22.in deleted file mode 100644 --- a/src/testdir/test22.in +++ /dev/null @@ -1,13 +0,0 @@ -Tests for file with some lines ending in CTRL-M, some not - -STARTTEST -:set ta tx -:e! -:$-3,$w! test.out -:qa! -ENDTEST - -this lines ends in a -this one doesn't -this one does -and the last one doesn't diff --git a/src/testdir/test22.ok b/src/testdir/test22.ok deleted file mode 100644 --- a/src/testdir/test22.ok +++ /dev/null @@ -1,4 +0,0 @@ -this lines ends in a -this one doesn't -this one does -and the last one doesn't diff --git a/src/testdir/test77.in b/src/testdir/test77.in deleted file mode 100644 --- a/src/testdir/test77.in +++ /dev/null @@ -1,31 +0,0 @@ -Inserts 2 million lines with consecutive integers starting from 1 -(essentially, the output of GNU's seq 1 2000000), writes them to Xtest -and writes its cksum to test.out. - -We need 2 million lines to trigger a call to mf_hash_grow(). If it would mess -up the lines the checksum would differ. - -cksum is part of POSIX and so should be available on most Unixes. -If it isn't available then the test will be skipped. - -STARTTEST -:so small.vim -:set belloff=all -:if !executable("cksum") -: e! test.ok -: w! test.out -: qa! -:endif -:set fileformat=unix undolevels=-1 -ggdG -:let i = 1 -:while i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhile -ggdd -:w! Xtest -:r !cksum Xtest -:s/\s/ /g -:set fileformat& -:.w! test.out -:qa! -ENDTEST - diff --git a/src/testdir/test77.ok b/src/testdir/test77.ok deleted file mode 100644 --- a/src/testdir/test77.ok +++ /dev/null @@ -1,1 +0,0 @@ -3678979763 14888896 Xtest diff --git a/src/testdir/test84.in b/src/testdir/test84.in deleted file mode 100644 --- a/src/testdir/test84.in +++ /dev/null @@ -1,35 +0,0 @@ -Tests for curswant not changing when setting an option - -STARTTEST -:so small.vim -:/^start target options$/+1,/^end target options$/-1 yank -:let target_option_names = split(@0) -:function TestCurswant(option_name) -: normal! ggf8j -: let curswant_before = winsaveview().curswant -: execute 'let' '&'.a:option_name '=' '&'.a:option_name -: let curswant_after = winsaveview().curswant -: return [a:option_name, curswant_before, curswant_after] -:endfunction -: -:new -:put =['1234567890', '12345'] -:1 delete _ -:let result = [] -:for option_name in target_option_names -: call add(result, TestCurswant(option_name)) -:endfor -: -:new -:put =map(copy(result), 'join(v:val, '' '')') -:1 delete _ -:write test.out -: -:qall! -ENDTEST - -start target options - tabstop - timeoutlen - ttimeoutlen -end target options diff --git a/src/testdir/test84.ok b/src/testdir/test84.ok deleted file mode 100644 --- a/src/testdir/test84.ok +++ /dev/null @@ -1,3 +0,0 @@ -tabstop 7 4 -timeoutlen 7 7 -ttimeoutlen 7 7 diff --git a/src/testdir/test9.in b/src/testdir/test9.in deleted file mode 100644 --- a/src/testdir/test9.in +++ /dev/null @@ -1,12 +0,0 @@ -Test for Bufleave autocommand that deletes the buffer we are about to edit. - -STARTTEST -:so small.vim -:au BufLeave test9.in bwipe yy -:e yy -:/^start of/,$w! test.out " Write contents of this file -:qa! -ENDTEST - -start of test file xx -end of test file xx diff --git a/src/testdir/test9.ok b/src/testdir/test9.ok deleted file mode 100644 --- a/src/testdir/test9.ok +++ /dev/null @@ -1,2 +0,0 @@ -start of test file xx -end of test file xx diff --git a/src/testdir/test98.in b/src/testdir/test98.in deleted file mode 100644 --- a/src/testdir/test98.in +++ /dev/null @@ -1,43 +0,0 @@ -Test for 'scrollbind' causing an unexpected scroll of one of the windows. -STARTTEST -:so small.vim -:" We don't want the status line to cause problems: -:set laststatus=0 -:let g:totalLines = &lines * 20 -:let middle = g:totalLines / 2 -:wincmd n -:wincmd o -:for i in range(1, g:totalLines) -: call setline(i, 'LINE ' . i) -:endfor -:exe string(middle) -:normal zt -:normal M -:aboveleft vert new -:for i in range(1, g:totalLines) -: call setline(i, 'line ' . i) -:endfor -:exe string(middle) -:normal zt -:normal M -:" Execute the following two command at once to reproduce the problem. -:setl scb | wincmd p -:setl scb -:wincmd w -:let topLineLeft = line('w0') -:wincmd p -:let topLineRight = line('w0') -:setl noscrollbind -:wincmd p -:setl noscrollbind -:q! -:%del _ -:call setline(1, 'Difference between the top lines (left - right): ' . string(topLineLeft - topLineRight)) -:w! test.out -:brewind -ENDTEST - -STARTTEST -:qa! -ENDTEST - diff --git a/src/testdir/test98.ok b/src/testdir/test98.ok deleted file mode 100644 --- a/src/testdir/test98.ok +++ /dev/null @@ -1,1 +0,0 @@ -Difference between the top lines (left - right): 0 diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim --- a/src/testdir/test_autocmd.vim +++ b/src/testdir/test_autocmd.vim @@ -613,3 +613,22 @@ func Test_OptionSet_diffmode_close() call test_override('starting', 0) "delfunc! AutoCommandOptionSet endfunc + +" Test for Bufleave autocommand that deletes the buffer we are about to edit. +func Test_BufleaveWithDelete() + new | edit Xfile1 + + augroup test_bufleavewithdelete + autocmd! + autocmd BufLeave Xfile1 bwipe Xfile2 + augroup END + + call assert_fails('edit Xfile2', 'E143:') + call assert_equal('Xfile1', bufname('%')) + + autocmd! test_bufleavewithdelete BufLeave Xfile1 + augroup! test_bufleavewithdelete + + new + bwipe! Xfile1 +endfunc diff --git a/src/testdir/test_curswant.vim b/src/testdir/test_curswant.vim new file mode 100644 --- /dev/null +++ b/src/testdir/test_curswant.vim @@ -0,0 +1,23 @@ +" Tests for curswant not changing when setting an option + +func Test_curswant() + new + call append(0, ['1234567890', '12345']) + + normal! ggf8j + call assert_equal(7, winsaveview().curswant) + let &tabstop=&tabstop + call assert_equal(4, winsaveview().curswant) + + normal! ggf8j + call assert_equal(7, winsaveview().curswant) + let &timeoutlen=&timeoutlen + call assert_equal(7, winsaveview().curswant) + + normal! ggf8j + call assert_equal(7, winsaveview().curswant) + let &ttimeoutlen=&ttimeoutlen + call assert_equal(7, winsaveview().curswant) + + enew! +endfunc diff --git a/src/testdir/test_file_size.vim b/src/testdir/test_file_size.vim new file mode 100644 --- /dev/null +++ b/src/testdir/test_file_size.vim @@ -0,0 +1,29 @@ +" Inserts 2 million lines with consecutive integers starting from 1 +" (essentially, the output of GNU's seq 1 2000000), writes them to Xtest +" and writes its cksum to test.out. +" +" We need 2 million lines to trigger a call to mf_hash_grow(). If it would mess +" up the lines the checksum would differ. +" +" cksum is part of POSIX and so should be available on most Unixes. +" If it isn't available then the test will be skipped. +func Test_File_Size() + if !executable('cksum') + return + endif + set belloff=all fileformat=unix undolevels=-1 + + new + for i in range(1, 2000000, 100) + call append(i, range(i, i + 99)) + endfor + + 1delete + w! Xtest + let l = systemlist('cksum Xtest') + call assert_equal('3678979763 14888896 Xtest', l[0]) + + enew! + call delete('Xtest') + set belloff& fileformat& undolevels& +endfunc diff --git a/src/testdir/test_let.vim b/src/testdir/test_let.vim new file mode 100644 --- /dev/null +++ b/src/testdir/test_let.vim @@ -0,0 +1,27 @@ +" Tests for the :let command. + +func Test_let() + " Test to not autoload when assigning. It causes internal error. + set runtimepath+=./sautest + let Test104#numvar = function('tr') + call assert_equal("function('tr')", string(Test104#numvar)) + + let a = 1 + let b = 2 + + let out = execute('let a b') + let s = "\na #1\nb #2" + call assert_equal(s, out) + + let out = execute('let {0 == 1 ? "a" : "b"}') + let s = "\nb #2" + call assert_equal(s, out) + + let out = execute('let {0 == 1 ? "a" : "b"} a') + let s = "\nb #2\na #1" + call assert_equal(s, out) + + let out = execute('let a {0 == 1 ? "a" : "b"}') + let s = "\na #1\nb #2" + call assert_equal(s, out) +endfunc diff --git a/src/testdir/test_lineending.vim b/src/testdir/test_lineending.vim new file mode 100644 --- /dev/null +++ b/src/testdir/test_lineending.vim @@ -0,0 +1,19 @@ +" Tests for saving/loading a file with some lines ending in +" CTRL-M, some not +func Test_lineending() + let l = ["this line ends in a\", + \ "this one doesn't", + \ "this one does\", + \ "and the last one doesn't"] + set ta tx + enew! + call append(0, l) + $delete + write Xfile1 + bwipe Xfile1 + edit Xfile1 + let t = getline(1, '$') + call assert_equal(l, t) + new | only + call delete('Xfile1') +endfunc diff --git a/src/testdir/test_scrollbind.vim b/src/testdir/test_scrollbind.vim new file mode 100644 --- /dev/null +++ b/src/testdir/test_scrollbind.vim @@ -0,0 +1,32 @@ +" Test for 'scrollbind' causing an unexpected scroll of one of the windows. +func Test_scrollbind() + " We don't want the status line to cause problems: + set laststatus=0 + let totalLines = &lines * 20 + let middle = totalLines / 2 + new | only + for i in range(1, totalLines) + call setline(i, 'LINE ' . i) + endfor + exe string(middle) + normal zt + normal M + aboveleft vert new + for i in range(1, totalLines) + call setline(i, 'line ' . i) + endfor + exe string(middle) + normal zt + normal M + " Execute the following two commands at once to reproduce the problem. + setl scb | wincmd p + setl scb + wincmd w + let topLineLeft = line('w0') + wincmd p + let topLineRight = line('w0') + setl noscrollbind + wincmd p + setl noscrollbind + call assert_equal(0, topLineLeft - topLineRight) +endfunc diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -770,6 +770,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 861, +/**/ 860, /**/ 859,