To: vim_dev@googlegroups.com Subject: Patch 8.0.0861 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.0.0861 Problem: Still many old style tests. Solution: Convert several tests to new style. (Yegappan Lakshmanan) Files: src/testdir/Make_all.mak, src/testdir/Make_vms.mms, src/testdir/main.aap, src/testdir/test104.in, src/testdir/test104.ok, src/testdir/test22.in, src/testdir/test22.ok, src/testdir/test77.in, src/testdir/test77.ok, src/testdir/test84.in, src/testdir/test84.ok, src/testdir/test9.in, src/testdir/test9.ok, src/testdir/test98.in, src/testdir/test98.ok, src/testdir/test_autocmd.vim, src/testdir/test_curswant.vim, src/testdir/test_file_size.vim, src/testdir/test_let.vim, src/testdir/test_lineending.vim, src/testdir/test_scrollbind.vim, src/Makefile *** ../vim-8.0.0860/src/testdir/Make_all.mak 2017-07-29 20:07:00.764940487 +0200 --- src/testdir/Make_all.mak 2017-08-04 22:12:49.877054227 +0200 *************** *** 18,29 **** test5.out \ test7.out \ test8.out \ - test9.out \ test14.out \ test15.out \ test19.out \ test20.out \ - test22.out \ test28.out \ test29.out \ test31.out \ --- 18,27 ---- *************** *** 52,69 **** 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 \ --- 50,63 ---- *************** *** 137,147 **** --- 131,143 ---- 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,163 **** --- 154,161 ---- 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,191 **** --- 184,190 ---- test_retab.res \ test_registers.res \ test_ruby.res \ + test_scrollbind.res \ test_search.res \ test_signs.res \ test_smartindent.res \ *** ../vim-8.0.0860/src/testdir/Make_vms.mms 2017-07-11 21:45:26.613831235 +0200 --- src/testdir/Make_vms.mms 2017-08-04 22:12:49.877054227 +0200 *************** *** 54,62 **** # 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 --- 54,59 ---- *************** *** 77,85 **** .SUFFIXES : .out .in SCRIPT = test1.out test3.out test4.out test5.out \ ! test7.out test8.out test9.out \ test14.out test15.out \ ! test19.out test20.out test22.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 \ --- 74,82 ---- .SUFFIXES : .out .in SCRIPT = test1.out test3.out test4.out test5.out \ ! test7.out test8.out \ test14.out test15.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,99 **** test66.out test68.out test69.out \ test72.out \ test77a.out test78.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_autocmd_option.out \ test_autoformat_join.out \ --- 87,96 ---- test66.out test68.out test69.out \ test72.out \ test77a.out test78.out test79.out test80.out \ ! test88.out \ test91.out test94.out \ ! test95.out test99.out \ ! test103.out \ test107.out test108.out\ test_autocmd_option.out \ test_autoformat_join.out \ *************** *** 164,173 **** SCRIPT_GDIFF = test47.out .ENDIF - .IFDEF HAVE_CKSUM - SCRIPT_CKSUM = test77.out - .ENDIF - .IFDEF HAVE_ICONV SCRIPT_ICONV = test83.out .ENDIF --- 161,166 ---- *************** *** 201,207 **** -@ 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 -@ write sys$output " " -@ write sys$output "-----------------------------------------------" -@ write sys$output " All done" --- 194,200 ---- -@ 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_ICONV) $(SCRIPT_LUA) $(SCRIPT_PYTHON) nolog -@ write sys$output " " -@ write sys$output "-----------------------------------------------" -@ write sys$output " All done" *************** *** 232,238 **** -@ 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)"" " --- 225,230 ---- *** ../vim-8.0.0860/src/testdir/main.aap 2017-07-11 21:45:26.613831235 +0200 --- src/testdir/main.aap 2017-08-04 22:12:49.877054227 +0200 *************** *** 5,13 **** VimProg ?= ../vim Scripts = test1.out test2.out test3.out test4.out test5.out test6.out ! test7.out test8.out test9.out test11.out test12.out test13.out test14.out test15.out test17.out ! test18.out test19.out test20.out test21.out test22.out test25.out test27.out test28.out test29.out test30.out test31.out test32.out test33.out test34.out test36.out test37.out --- 5,13 ---- VimProg ?= ../vim Scripts = test1.out test2.out test3.out test4.out test5.out test6.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 test25.out test27.out test28.out test29.out test30.out test31.out test32.out test33.out test34.out test36.out test37.out *** ../vim-8.0.0860/src/testdir/test104.in 2014-03-30 16:44:39.000000000 +0200 --- src/testdir/test104.in 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,30 **** - 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: --- 0 ---- *** ../vim-8.0.0860/src/testdir/test104.ok 2014-03-30 16:44:39.000000000 +0200 --- src/testdir/test104.ok 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,13 **** - Results of test104: - OK: function('tr') - OK: - a #1 - b #2 - OK: - b #2 - OK: - b #2 - a #1 - OK: - a #1 - b #2 --- 0 ---- *** ../vim-8.0.0860/src/testdir/test22.in 2010-05-15 13:04:10.000000000 +0200 --- src/testdir/test22.in 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,13 **** - 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 --- 0 ---- *** ../vim-8.0.0860/src/testdir/test22.ok 2010-05-15 13:04:10.000000000 +0200 --- src/testdir/test22.ok 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,4 **** - this lines ends in a - this one doesn't - this one does - and the last one doesn't --- 0 ---- *** ../vim-8.0.0860/src/testdir/test77.in 2017-03-08 22:55:14.914181221 +0100 --- src/testdir/test77.in 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,31 **** - 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 - --- 0 ---- *** ../vim-8.0.0860/src/testdir/test77.ok 2011-03-22 17:10:14.000000000 +0100 --- src/testdir/test77.ok 1970-01-01 01:00:00.000000000 +0100 *************** *** 1 **** - 3678979763 14888896 Xtest --- 0 ---- *** ../vim-8.0.0860/src/testdir/test84.in 2012-03-28 19:46:53.000000000 +0200 --- src/testdir/test84.in 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,35 **** - 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 --- 0 ---- *** ../vim-8.0.0860/src/testdir/test84.ok 2012-03-28 19:48:36.000000000 +0200 --- src/testdir/test84.ok 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,3 **** - tabstop 7 4 - timeoutlen 7 7 - ttimeoutlen 7 7 --- 0 ---- *** ../vim-8.0.0860/src/testdir/test9.in 2010-05-15 13:04:10.000000000 +0200 --- src/testdir/test9.in 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,12 **** - 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 --- 0 ---- *** ../vim-8.0.0860/src/testdir/test9.ok 2010-05-15 13:04:10.000000000 +0200 --- src/testdir/test9.ok 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,2 **** - start of test file xx - end of test file xx --- 0 ---- *** ../vim-8.0.0860/src/testdir/test98.in 2013-07-17 21:35:40.000000000 +0200 --- src/testdir/test98.in 1970-01-01 01:00:00.000000000 +0100 *************** *** 1,43 **** - 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 - --- 0 ---- *** ../vim-8.0.0860/src/testdir/test98.ok 2013-07-09 13:36:08.000000000 +0200 --- src/testdir/test98.ok 1970-01-01 01:00:00.000000000 +0100 *************** *** 1 **** - Difference between the top lines (left - right): 0 --- 0 ---- *** ../vim-8.0.0860/src/testdir/test_autocmd.vim 2017-07-19 18:18:27.828135659 +0200 --- src/testdir/test_autocmd.vim 2017-08-04 22:13:08.840907849 +0200 *************** *** 613,615 **** --- 613,634 ---- 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 *** ../vim-8.0.0860/src/testdir/test_curswant.vim 2017-08-04 22:35:34.295129524 +0200 --- src/testdir/test_curswant.vim 2017-08-04 22:29:14.385923822 +0200 *************** *** 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 *** ../vim-8.0.0860/src/testdir/test_file_size.vim 2017-08-04 22:35:34.299129494 +0200 --- src/testdir/test_file_size.vim 2017-08-04 22:23:32.592395727 +0200 *************** *** 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 *** ../vim-8.0.0860/src/testdir/test_let.vim 2017-08-04 22:35:34.303129465 +0200 --- src/testdir/test_let.vim 2017-08-04 22:16:54.275216108 +0200 *************** *** 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 *** ../vim-8.0.0860/src/testdir/test_lineending.vim 2017-08-04 22:35:34.307129435 +0200 --- src/testdir/test_lineending.vim 2017-08-04 22:13:08.840907849 +0200 *************** *** 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 *** ../vim-8.0.0860/src/testdir/test_scrollbind.vim 2017-08-04 22:35:34.311129405 +0200 --- src/testdir/test_scrollbind.vim 2017-08-04 22:13:08.840907849 +0200 *************** *** 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 *** ../vim-8.0.0860/src/Makefile 2017-07-29 20:07:00.760940515 +0200 --- src/Makefile 2017-08-04 22:25:10.503692114 +0200 *************** *** 2137,2142 **** --- 2137,2143 ---- test_crypt \ test_cscope \ test_cursor_func \ + test_curswant \ test_delete \ test_diffmode \ test_digraph \ *************** *** 2155,2160 **** --- 2156,2162 ---- test_farsi \ test_feedkeys \ test_file_perm \ + test_file_size \ test_fileformat \ test_filetype \ test_filter_cmd \ *************** *** 2189,2194 **** --- 2191,2198 ---- test_lambda \ test_langmap \ test_largefile \ + test_let \ + test_lineending \ test_lispwords \ test_listlbr \ test_listlbr_utf8 \ *************** *** 2233,2238 **** --- 2237,2243 ---- test_reltime \ test_retab \ test_ruby \ + test_scrollbind \ test_search \ test_searchpos \ test_set \ *** ../vim-8.0.0860/src/version.c 2017-08-04 21:37:48.736574947 +0200 --- src/version.c 2017-08-04 22:32:22.728544158 +0200 *************** *** 771,772 **** --- 771,774 ---- { /* Add new patch number below this line */ + /**/ + 861, /**/ -- If your life is a hard drive, Christ can be your backup. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///