0
0
mirror of https://github.com/vim/vim.git synced 2025-09-27 04:14:06 -04:00

patch 8.1.1203: some autocmd tests are old style

Problem:    Some autocmd tests are old style.
Solution:   Turn the tests into new style. (Yegappan Lakshmanan, closes #4295)
This commit is contained in:
Bram Moolenaar
2019-04-25 20:29:00 +02:00
parent c2d09c9f2c
commit 69ea587289
8 changed files with 206 additions and 153 deletions

View File

@@ -2172,7 +2172,7 @@ test_libvterm:
# These do not depend on the executable, compile it when needed.
test1 \
test_eval \
test3 test11 test14 test17 \
test3 test14 test17 \
test29 test30 test37 test39 \
test42 test44 test48 test49 \
test52 test59 \

View File

@@ -33,7 +33,6 @@ SCRIPTS_ALL = \
# Tests that run on most systems, but not on Amiga.
SCRIPTS_MORE1 = \
test11.out \
test52.out \
test86.out \
test87.out

View File

@@ -12,7 +12,6 @@ include Make_all.mak
# These tests don't work (yet):
# test2 "\\tmp" doesn't work
# test10 'errorformat' is different
# test11 "cat" doesn't work properly
# test52 only for Win32
# test86, 87 no Python interface

View File

@@ -122,10 +122,6 @@ SCRIPT_MZSCH = test70.out
SCRIPT_ODS5 = test102.out
.ENDIF
.IFDEF HAVE_GZIP
SCRIPT_GZIP = test11.out
.ENDIF
.IFDEF HAVE_GDIFF
SCRIPT_GDIFF = test47.out
.ENDIF
@@ -154,7 +150,7 @@ SCRIPT_PYTHON = test86.out test87.out
-@ if "''F$SEARCH("Xdotest.*")'" .NES. "" then delete/noconfirm/nolog Xdotest.*.*
-@ 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) \
all : clean nolog $(START_WITH) $(SCRIPT) $(SCRIPT_GUI) $(SCRIPT_UNIX) $(SCRIPT_WIN) $(SCRIPT_SPELL) $(SCRIPT_ODS5) \
$(SCRIPT_GDIFF) $(SCRIPT_MZSCH) $(SCRIPT_LUA) $(SCRIPT_PYTHON) nolog
-@ write sys$output " "
-@ write sys$output "-----------------------------------------------"

View File

@@ -1,84 +0,0 @@
Tests for autocommands:
- FileWritePre writing a compressed file
- FileReadPost reading a compressed file
- BufNewFile reading a file template
- BufReadPre decompressing the file to be read
- FilterReadPre substituting characters in the temp file
- FilterReadPost substituting characters after filtering
- FileReadPre set options for decompression
- FileReadPost decompress the file
Note: This test is skipped if "gzip" is not available.
$GZIP is made empty, "-v" would cause trouble.
Use a FileChangedShell autocommand to avoid a prompt for "Xtestfile.gz" being
modified outside of Vim (noticed on Solaris).
STARTTEST
:so small.vim
:" drop out when there is no gzip program
:if !executable("gzip")
: e! test.ok
: w! test.out
: qa!
:endif
:let $GZIP = ""
:au FileChangedShell * echo "caught FileChangedShell"
:set bin
:au FileWritePre *.gz '[,']!gzip
:au FileWritePost *.gz undo
:/^start of testfile/,/^end of testfile/w! Xtestfile.gz
:au FileReadPost *.gz '[,']!gzip -d
:$r Xtestfile.gz " Read and decompress the testfile
:?startstart?,$w! test.out " Write contents of this file
:au BufNewFile *.c read Xtest.c
:/^start of test.c/+1,/^end of test.c/-1w! Xtest.c
:e! foo.c " Will load Xtest.c
:au FileAppendPre *.out '[,']s/new/NEW/
:au FileAppendPost *.out !cat Xtest.c >>test.out
:w>>test.out " Append it to the output file
:au! FileAppendPre
:" setup autocommands to decompress before reading and re-compress afterwards
:au BufReadPre *.gz exe '!gzip -d ' . shellescape(expand("<afile>"))
:au BufReadPre *.gz call rename(expand("<afile>:r"), expand("<afile>"))
:au BufReadPost *.gz call rename(expand("<afile>"), expand("<afile>:r"))
:au BufReadPost *.gz exe '!gzip ' . shellescape(expand("<afile>:r"))
:e! Xtestfile.gz " Edit compressed file
:w>>test.out " Append it to the output file
:set shelltemp " need temp files here
:au FilterReadPre *.out call rename(expand("<afile>"), expand("<afile>") . ".t")
:au FilterReadPre *.out exe 'silent !sed s/e/E/ ' . shellescape(expand("<afile>")) . ".t >" . shellescape(expand("<afile>"))
:au FilterReadPre *.out exe 'silent !rm ' . shellescape(expand("<afile>")) . '.t'
:au FilterReadPost *.out '[,']s/x/X/g
:e! test.out " Edit the output file
:23,$!cat
:23,$s/\r$// " remove CR for when sed adds them
:au! FileReadPre *.gz exe 'silent !gzip -d ' . shellescape(expand("<afile>"))
:au FileReadPre *.gz call rename(expand("<afile>:r"), expand("<afile>"))
:au! FileReadPost *.gz '[,']s/l/L/
:$r Xtestfile.gz " Read compressed file
:w " write it, after filtering
:au! " remove all autocommands
:e " Edit test.out again
:set nobin ff& " use the default fileformat for writing
:w
:qa!
ENDTEST
startstart
start of testfile
line 2 Abcdefghijklmnopqrstuvwxyz
line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
line 4 Abcdefghijklmnopqrstuvwxyz
line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
line 6 Abcdefghijklmnopqrstuvwxyz
line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
line 8 Abcdefghijklmnopqrstuvwxyz
line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
line 10 Abcdefghijklmnopqrstuvwxyz
end of testfile
start of test.c
/*
* Here is a new .c file
*/
end of test.c

View File

@@ -1,61 +0,0 @@
startstart
start of testfile
line 2 Abcdefghijklmnopqrstuvwxyz
line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
line 4 Abcdefghijklmnopqrstuvwxyz
line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
line 6 Abcdefghijklmnopqrstuvwxyz
line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
line 8 Abcdefghijklmnopqrstuvwxyz
line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
line 10 Abcdefghijklmnopqrstuvwxyz
end of testfile
start of test.c
/*
* Here is a new .c file
*/
end of test.c
start of testfile
line 2 Abcdefghijklmnopqrstuvwxyz
line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
line 4 Abcdefghijklmnopqrstuvwxyz
linE 5 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
linE 6 AbcdefghijklmnopqrstuvwXyz
linE 7 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
linE 8 AbcdefghijklmnopqrstuvwXyz
linE 9 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
linE 10 AbcdefghijklmnopqrstuvwXyz
End of testfile
/*
* HEre is a NEW .c file
*/
/*
* HEre is a new .c file
*/
start of tEstfile
linE 2 AbcdefghijklmnopqrstuvwXyz
linE 3 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
linE 4 AbcdefghijklmnopqrstuvwXyz
linE 5 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
linE 6 AbcdefghijklmnopqrstuvwXyz
linE 7 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
linE 8 AbcdefghijklmnopqrstuvwXyz
linE 9 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
linE 10 AbcdefghijklmnopqrstuvwXyz
End of testfile
/*
* HEre is a new .c file
*/
start of testfiLe
Line 2 Abcdefghijklmnopqrstuvwxyz
Line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Line 4 Abcdefghijklmnopqrstuvwxyz
Line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Line 6 Abcdefghijklmnopqrstuvwxyz
Line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Line 8 Abcdefghijklmnopqrstuvwxyz
Line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Line 10 Abcdefghijklmnopqrstuvwxyz
end of testfiLe

View File

@@ -1486,3 +1486,205 @@ func Test_autocmd_once()
endfunc
" FileChangedShell tested in test_filechanged.vim
" Tests for the following autocommands:
" - FileWritePre writing a compressed file
" - FileReadPost reading a compressed file
" - BufNewFile reading a file template
" - BufReadPre decompressing the file to be read
" - FilterReadPre substituting characters in the temp file
" - FilterReadPost substituting characters after filtering
" - FileReadPre set options for decompression
" - FileReadPost decompress the file
func Test_ReadWrite_Autocmds()
" Run this test only on Unix-like systems and if gzip is available
if !has('unix') || !executable("gzip")
return
endif
" Make $GZIP empty, "-v" would cause trouble.
let $GZIP = ""
" Use a FileChangedShell autocommand to avoid a prompt for 'Xtestfile.gz'
" being modified outside of Vim (noticed on Solaris).
au FileChangedShell * echo 'caught FileChangedShell'
" Test for the FileReadPost, FileWritePre and FileWritePost autocmds
augroup Test1
au!
au FileWritePre *.gz '[,']!gzip
au FileWritePost *.gz undo
au FileReadPost *.gz '[,']!gzip -d
augroup END
new
set bin
call append(0, [
\ 'line 2 Abcdefghijklmnopqrstuvwxyz',
\ 'line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
\ 'line 4 Abcdefghijklmnopqrstuvwxyz',
\ 'line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
\ 'line 6 Abcdefghijklmnopqrstuvwxyz',
\ 'line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
\ 'line 8 Abcdefghijklmnopqrstuvwxyz',
\ 'line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
\ 'line 10 Abcdefghijklmnopqrstuvwxyz'
\ ])
1,9write! Xtestfile.gz
enew! | close
new
" Read and decompress the testfile
0read Xtestfile.gz
call assert_equal([
\ 'line 2 Abcdefghijklmnopqrstuvwxyz',
\ 'line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
\ 'line 4 Abcdefghijklmnopqrstuvwxyz',
\ 'line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
\ 'line 6 Abcdefghijklmnopqrstuvwxyz',
\ 'line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
\ 'line 8 Abcdefghijklmnopqrstuvwxyz',
\ 'line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
\ 'line 10 Abcdefghijklmnopqrstuvwxyz'
\ ], getline(1, 9))
enew! | close
augroup Test1
au!
augroup END
" Test for the FileAppendPre and FileAppendPost autocmds
augroup Test2
au!
au BufNewFile *.c read Xtest.c
au FileAppendPre *.out '[,']s/new/NEW/
au FileAppendPost *.out !cat Xtest.c >> test.out
augroup END
call writefile(['/*', ' * Here is a new .c file', ' */'], 'Xtest.c')
new foo.c " should load Xtest.c
call assert_equal(['/*', ' * Here is a new .c file', ' */'], getline(2, 4))
w! >> test.out " append it to the output file
let contents = readfile('test.out')
call assert_equal(' * Here is a NEW .c file', contents[2])
call assert_equal(' * Here is a new .c file', contents[5])
call delete('test.out')
enew! | close
augroup Test2
au!
augroup END
" Test for the BufReadPre and BufReadPost autocmds
augroup Test3
au!
" setup autocommands to decompress before reading and re-compress
" afterwards
au BufReadPre *.gz exe '!gzip -d ' . shellescape(expand("<afile>"))
au BufReadPre *.gz call rename(expand("<afile>:r"), expand("<afile>"))
au BufReadPost *.gz call rename(expand("<afile>"), expand("<afile>:r"))
au BufReadPost *.gz exe '!gzip ' . shellescape(expand("<afile>:r"))
augroup END
e! Xtestfile.gz " Edit compressed file
call assert_equal([
\ 'line 2 Abcdefghijklmnopqrstuvwxyz',
\ 'line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
\ 'line 4 Abcdefghijklmnopqrstuvwxyz',
\ 'line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
\ 'line 6 Abcdefghijklmnopqrstuvwxyz',
\ 'line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
\ 'line 8 Abcdefghijklmnopqrstuvwxyz',
\ 'line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
\ 'line 10 Abcdefghijklmnopqrstuvwxyz'
\ ], getline(1, 9))
w! >> test.out " Append it to the output file
augroup Test3
au!
augroup END
" Test for the FilterReadPre and FilterReadPost autocmds.
set shelltemp " need temp files here
augroup Test4
au!
au FilterReadPre *.out call rename(expand("<afile>"), expand("<afile>") . ".t")
au FilterReadPre *.out exe 'silent !sed s/e/E/ ' . shellescape(expand("<afile>")) . ".t >" . shellescape(expand("<afile>"))
au FilterReadPre *.out exe 'silent !rm ' . shellescape(expand("<afile>")) . '.t'
au FilterReadPost *.out '[,']s/x/X/g
augroup END
e! test.out " Edit the output file
1,$!cat
call assert_equal([
\ 'linE 2 AbcdefghijklmnopqrstuvwXyz',
\ 'linE 3 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
\ 'linE 4 AbcdefghijklmnopqrstuvwXyz',
\ 'linE 5 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
\ 'linE 6 AbcdefghijklmnopqrstuvwXyz',
\ 'linE 7 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
\ 'linE 8 AbcdefghijklmnopqrstuvwXyz',
\ 'linE 9 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
\ 'linE 10 AbcdefghijklmnopqrstuvwXyz'
\ ], getline(1, 9))
call assert_equal([
\ 'line 2 Abcdefghijklmnopqrstuvwxyz',
\ 'line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
\ 'line 4 Abcdefghijklmnopqrstuvwxyz',
\ 'line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
\ 'line 6 Abcdefghijklmnopqrstuvwxyz',
\ 'line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
\ 'line 8 Abcdefghijklmnopqrstuvwxyz',
\ 'line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
\ 'line 10 Abcdefghijklmnopqrstuvwxyz'
\ ], readfile('test.out'))
augroup Test4
au!
augroup END
set shelltemp&vim
" Test for the FileReadPre and FileReadPost autocmds.
augroup Test5
au!
au FileReadPre *.gz exe 'silent !gzip -d ' . shellescape(expand("<afile>"))
au FileReadPre *.gz call rename(expand("<afile>:r"), expand("<afile>"))
au FileReadPost *.gz '[,']s/l/L/
augroup END
new
0r Xtestfile.gz " Read compressed file
call assert_equal([
\ 'Line 2 Abcdefghijklmnopqrstuvwxyz',
\ 'Line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
\ 'Line 4 Abcdefghijklmnopqrstuvwxyz',
\ 'Line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
\ 'Line 6 Abcdefghijklmnopqrstuvwxyz',
\ 'Line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
\ 'Line 8 Abcdefghijklmnopqrstuvwxyz',
\ 'Line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
\ 'Line 10 Abcdefghijklmnopqrstuvwxyz'
\ ], getline(1, 9))
call assert_equal([
\ 'line 2 Abcdefghijklmnopqrstuvwxyz',
\ 'line 3 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
\ 'line 4 Abcdefghijklmnopqrstuvwxyz',
\ 'line 5 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
\ 'line 6 Abcdefghijklmnopqrstuvwxyz',
\ 'line 7 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
\ 'line 8 Abcdefghijklmnopqrstuvwxyz',
\ 'line 9 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
\ 'line 10 Abcdefghijklmnopqrstuvwxyz'
\ ], readfile('Xtestfile.gz'))
augroup Test5
au!
augroup END
au! FileChangedShell
call delete('Xtestfile.gz')
call delete('Xtest.c')
call delete('test.out')
endfunc

View File

@@ -771,6 +771,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1203,
/**/
1202,
/**/