Problem: Still many old style tests.
Solution: Convert several tests to new style. (Yegappan Lakshmanan)
test_crypt \
test_cscope \
test_cursor_func \
+ test_curswant \
test_delete \
test_diffmode \
test_digraph \
test_farsi \
test_feedkeys \
test_file_perm \
+ test_file_size \
test_fileformat \
test_filetype \
test_filter_cmd \
test_lambda \
test_langmap \
test_largefile \
+ test_let \
+ test_lineending \
test_lispwords \
test_listlbr \
test_listlbr_utf8 \
test_reltime \
test_retab \
test_ruby \
+ test_scrollbind \
test_search \
test_searchpos \
test_set \
test5.out \
test7.out \
test8.out \
- test9.out \
test14.out \
test15.out \
test19.out \
test20.out \
- test22.out \
test28.out \
test29.out \
test31.out \
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 \
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 \
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 \
test_retab.res \
test_registers.res \
test_ruby.res \
+ test_scrollbind.res \
test_search.res \
test_signs.res \
test_smartindent.res \
# 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
.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 \
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 \
SCRIPT_GDIFF = test47.out
.ENDIF
-.IFDEF HAVE_CKSUM
-SCRIPT_CKSUM = test77.out
-.ENDIF
-
.IFDEF HAVE_ICONV
SCRIPT_ICONV = test83.out
.ENDIF
-@ 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"
-@ 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)"" "
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
+++ /dev/null
-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:
+++ /dev/null
-Results of test104:
-OK: function('tr')
-OK:
- a #1
- b #2
-OK:
- b #2
-OK:
- b #2
- a #1
-OK:
- a #1
- b #2
+++ /dev/null
-Tests for file with some lines ending in CTRL-M, some not\r
-\r
-STARTTEST
-:set ta tx
-:e!
-:$-3,$w! test.out
-:qa!
-ENDTEST
-
-this lines ends in a\r
-this one doesn't
-this one does\r
-and the last one doesn't
+++ /dev/null
-this lines ends in a\r
-this one doesn't
-this one does\r
-and the last one doesn't
+++ /dev/null
-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
-
+++ /dev/null
-3678979763 14888896 Xtest
+++ /dev/null
-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
+++ /dev/null
-tabstop 7 4
-timeoutlen 7 7
-ttimeoutlen 7 7
+++ /dev/null
-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
+++ /dev/null
-start of test file xx
-end of test file xx
+++ /dev/null
-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
-
+++ /dev/null
-Difference between the top lines (left - right): 0
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
--- /dev/null
+" 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
--- /dev/null
+" 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
--- /dev/null
+" 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
--- /dev/null
+" 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\<CR>",
+ \ "this one doesn't",
+ \ "this one does\<CR>",
+ \ "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
--- /dev/null
+" 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
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 861,
/**/
860,
/**/