mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.1.2097: :mksession is not sufficiently tested
Problem: :mksession is not sufficiently tested. Solution: Add more test cases. (Yegappan Lakshmanan, closes #4992)
This commit is contained in:
parent
8c96af9c05
commit
66f0e6c6e2
@ -154,7 +154,7 @@ func Test_mksession_rtp()
|
|||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func Test_mksession_arglist()
|
func Test_mksession_arglist()
|
||||||
argdel *
|
%argdel
|
||||||
next file1 file2 file3 file4
|
next file1 file2 file3 file4
|
||||||
mksession! Xtest_mks.out
|
mksession! Xtest_mks.out
|
||||||
source Xtest_mks.out
|
source Xtest_mks.out
|
||||||
@ -536,6 +536,123 @@ func Test_mksession_quote_in_filename()
|
|||||||
call delete('Xtest_mks_quoted.out')
|
call delete('Xtest_mks_quoted.out')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Test for storing global variables in a session file
|
||||||
|
func Test_mksession_globals()
|
||||||
|
set sessionoptions+=globals
|
||||||
|
|
||||||
|
" create different global variables
|
||||||
|
let g:Global_string = "Sun is shining"
|
||||||
|
let g:Global_count = 100
|
||||||
|
let g:Global_pi = 3.14
|
||||||
|
|
||||||
|
mksession! Xtest_mks.out
|
||||||
|
|
||||||
|
unlet g:Global_string
|
||||||
|
unlet g:Global_count
|
||||||
|
unlet g:Global_pi
|
||||||
|
|
||||||
|
source Xtest_mks.out
|
||||||
|
call assert_equal("Sun is shining", g:Global_string)
|
||||||
|
call assert_equal(100, g:Global_count)
|
||||||
|
call assert_equal(3.14, g:Global_pi)
|
||||||
|
|
||||||
|
unlet g:Global_string
|
||||||
|
unlet g:Global_count
|
||||||
|
unlet g:Global_pi
|
||||||
|
call delete('Xtest_mks.out')
|
||||||
|
set sessionoptions&
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" Test for changing backslash to forward slash in filenames
|
||||||
|
func Test_mksession_slash()
|
||||||
|
enew
|
||||||
|
%bwipe!
|
||||||
|
e a\\b\\c
|
||||||
|
mksession! Xtest_mks1.out
|
||||||
|
set sessionoptions+=slash
|
||||||
|
mksession! Xtest_mks2.out
|
||||||
|
|
||||||
|
%bwipe!
|
||||||
|
source Xtest_mks1.out
|
||||||
|
call assert_equal('a\b\c', bufname(''))
|
||||||
|
%bwipe!
|
||||||
|
source Xtest_mks2.out
|
||||||
|
call assert_equal('a/b/c', bufname(''))
|
||||||
|
|
||||||
|
%bwipe!
|
||||||
|
call delete('Xtest_mks1.out')
|
||||||
|
call delete('Xtest_mks2.out')
|
||||||
|
set sessionoptions&
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" Test for storing global and local argument list in a session file
|
||||||
|
func Test_mkseesion_arglocal()
|
||||||
|
enew | only
|
||||||
|
n a b c
|
||||||
|
new
|
||||||
|
arglocal
|
||||||
|
mksession! Xtest_mks.out
|
||||||
|
|
||||||
|
%bwipe!
|
||||||
|
%argdelete
|
||||||
|
argglobal
|
||||||
|
source Xtest_mks.out
|
||||||
|
call assert_equal(2, winnr('$'))
|
||||||
|
call assert_equal(2, arglistid(1))
|
||||||
|
call assert_equal(0, arglistid(2))
|
||||||
|
|
||||||
|
%bwipe!
|
||||||
|
%argdelete
|
||||||
|
argglobal
|
||||||
|
call delete('Xtest_mks.out')
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" Test for changing directory to the session file directory
|
||||||
|
func Test_mksession_sesdir()
|
||||||
|
call mkdir('Xproj')
|
||||||
|
mksession! Xproj/Xtest_mks1.out
|
||||||
|
set sessionoptions-=curdir
|
||||||
|
set sessionoptions+=sesdir
|
||||||
|
mksession! Xproj/Xtest_mks2.out
|
||||||
|
|
||||||
|
source Xproj/Xtest_mks1.out
|
||||||
|
call assert_equal('testdir', fnamemodify(getcwd(), ':t'))
|
||||||
|
source Xproj/Xtest_mks2.out
|
||||||
|
call assert_equal('Xproj', fnamemodify(getcwd(), ':t'))
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
set sessionoptions&
|
||||||
|
call delete('Xproj', 'rf')
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" Test for storing the 'lines' and 'columns' settings
|
||||||
|
func Test_mksession_resize()
|
||||||
|
mksession! Xtest_mks1.out
|
||||||
|
set sessionoptions+=resize
|
||||||
|
mksession! Xtest_mks2.out
|
||||||
|
|
||||||
|
let lines = readfile('Xtest_mks1.out')
|
||||||
|
let found_resize = v:false
|
||||||
|
for line in lines
|
||||||
|
if line =~ '^set lines='
|
||||||
|
let found_resize = v:true
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
call assert_equal(v:false, found_resize)
|
||||||
|
let lines = readfile('Xtest_mks2.out')
|
||||||
|
let found_resize = v:false
|
||||||
|
for line in lines
|
||||||
|
if line =~ '^set lines='
|
||||||
|
let found_resize = v:true
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
call assert_equal(v:true, found_resize)
|
||||||
|
|
||||||
|
call delete('Xtest_mks1.out')
|
||||||
|
call delete('Xtest_mks2.out')
|
||||||
|
set sessionoptions&
|
||||||
|
endfunc
|
||||||
|
|
||||||
func s:ClearMappings()
|
func s:ClearMappings()
|
||||||
mapclear
|
mapclear
|
||||||
omapclear
|
omapclear
|
||||||
|
@ -753,6 +753,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
2097,
|
||||||
/**/
|
/**/
|
||||||
2096,
|
2096,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user