diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-10-09 22:01:25 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-10-09 22:01:25 +0200 |
commit | 6bd1d7706766a7899904163e8fd55ea117fb1953 (patch) | |
tree | 71c8a19d4006da17e0673d902151ff1980bcfacb /src/testdir/test_viminfo.vim | |
parent | b189295b72030f00c45c30d3daecf85d457221f8 (diff) | |
download | vim-git-6bd1d7706766a7899904163e8fd55ea117fb1953.tar.gz |
patch 8.1.2126: viminfo not sufficiently testedv8.1.2126
Problem: Viminfo not sufficiently tested.
Solution: Add more test cases. Clean up comments. (Yegappan Lakshmanan,
closes #5032)
Diffstat (limited to 'src/testdir/test_viminfo.vim')
-rw-r--r-- | src/testdir/test_viminfo.vim | 64 |
1 files changed, 59 insertions, 5 deletions
diff --git a/src/testdir/test_viminfo.vim b/src/testdir/test_viminfo.vim index 6e3116271..7ea9f78da 100644 --- a/src/testdir/test_viminfo.vim +++ b/src/testdir/test_viminfo.vim @@ -1,5 +1,7 @@ " Test for reading and writing .viminfo +source check.vim + function Test_viminfo_read_and_write() " First clear 'history', so that "hislen" is zero. Then set it again, " simulating Vim starting up. @@ -715,26 +717,78 @@ func Test_viminfo_large_register() rviminfo! Xviminfo call assert_equal(join(repeat(["sun is rising"], 200), "\n"), @r) call delete('Xviminfo') + let @r = '' let &viminfo = save_viminfo endfunc " Test for setting 'viminfofile' to NONE func Test_viminfofile_none() + let save_vif = &viminfofile set viminfofile=NONE wviminfo Xviminfo call assert_false(filereadable('Xviminfo')) call writefile([''], 'Xviminfo') call assert_fails('rviminfo Xviminfo', 'E195:') call delete('Xviminfo') + let &viminfofile = save_vif endfunc -" Test for an unwritable 'viminfo' file -func Test_viminfo_readonly() - if !has('unix') - return - endif +" Test for an unwritable and unreadble 'viminfo' file +func Test_viminfo_perm() + CheckUnix call writefile([''], 'Xviminfo') call setfperm('Xviminfo', 'r-x------') call assert_fails('wviminfo Xviminfo', 'E137:') + call setfperm('Xviminfo', '--x------') + call assert_fails('rviminfo Xviminfo', 'E195:') + call delete('Xviminfo') +endfunc + +" Test for writing to an existing viminfo file merges the file marks +func XTest_viminfo_marks_merge() + let save_viminfo = &viminfo + set viminfo&vim + set viminfo^=% + enew + %argdelete + %bwipe + + call writefile(repeat(['editor'], 10), 'Xbufa') + call writefile(repeat(['Vim'], 10), 'Xbufb') + + " set marks in buffers + call test_settime(10) + edit Xbufa + 4mark a + wviminfo Xviminfo + edit Xbufb + 4mark b + wviminfo Xviminfo + %bwipe + + " set marks in buffers again + call test_settime(20) + edit Xbufb + 6mark b + wviminfo Xviminfo + edit Xbufa + 6mark a + wviminfo Xviminfo + %bwipe + + " Load the buffer and check the marks + edit Xbufa + rviminfo! Xviminfo + call assert_equal(6, line("'a")) + edit Xbufb + rviminfo! Xviminfo + call assert_equal(6, line("'b")) + + " cleanup + %bwipe call delete('Xviminfo') + call delete('Xbufa') + call delete('Xbufb') + call test_settime(0) + let &viminfo=save_viminfo endfunc |