comparison src/testdir/test_viminfo.vim @ 30867:0913cd44fdfa v9.0.0768

patch 9.0.0768: too many delete() calls in tests Commit: https://github.com/vim/vim/commit/5b148ef2628251b2d79f78c65a614f8aca404329 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Oct 15 21:35:56 2022 +0100 patch 9.0.0768: too many delete() calls in tests Problem: Too many delete() calls in tests. Solution: Use deferred delete where possible.
author Bram Moolenaar <Bram@vim.org>
date Sat, 15 Oct 2022 22:45:02 +0200
parents 008808e60963
children dbec60b8c253
comparison
equal deleted inserted replaced
30866:bd117a061192 30867:0913cd44fdfa
18 \ '*encoding=utf-8', 18 \ '*encoding=utf-8',
19 \ '~MSle0~/asdf', 19 \ '~MSle0~/asdf',
20 \ '|copied as-is', 20 \ '|copied as-is',
21 \ '|and one more', 21 \ '|and one more',
22 \ ] 22 \ ]
23 call writefile(lines, 'Xviminfo') 23 call writefile(lines, 'Xviminfo', 'D')
24 rviminfo Xviminfo 24 rviminfo Xviminfo
25 call assert_equal('asdf', @/) 25 call assert_equal('asdf', @/)
26 26
27 wviminfo Xviminfo 27 wviminfo Xviminfo
28 let lines = readfile('Xviminfo') 28 let lines = readfile('Xviminfo')
38 endif 38 endif
39 let done += 1 39 let done += 1
40 endif 40 endif
41 endfor 41 endfor
42 call assert_equal(3, done) 42 call assert_equal(3, done)
43
44 call delete('Xviminfo')
45 endfunc 43 endfunc
46 44
47 func Test_global_vars() 45 func Test_global_vars()
48 let g:MY_GLOBAL_STRING = "Vim Editor" 46 let g:MY_GLOBAL_STRING = "Vim Editor"
49 let g:MY_GLOBAL_NUM = 345 47 let g:MY_GLOBAL_NUM = 345
128 \ "!GLOB_BLOB_1\tBLO\t123", 126 \ "!GLOB_BLOB_1\tBLO\t123",
129 \ "!GLOB_BLOB_2\tBLO\t012", 127 \ "!GLOB_BLOB_2\tBLO\t012",
130 \ "!GLOB_BLOB_3\tBLO\t0z1x", 128 \ "!GLOB_BLOB_3\tBLO\t0z1x",
131 \ "!GLOB_BLOB_4\tBLO\t0z12 ab", 129 \ "!GLOB_BLOB_4\tBLO\t0z12 ab",
132 \ "!GLOB_LIST_1\tLIS\t1 2", 130 \ "!GLOB_LIST_1\tLIS\t1 2",
133 \ "!GLOB_DICT_1\tDIC\t1 2"], 'Xviminfo') 131 \ "!GLOB_DICT_1\tDIC\t1 2"], 'Xviminfo', 'D')
134 call assert_fails('rv! Xviminfo', 'E488:') 132 call assert_fails('rv! Xviminfo', 'E488:')
135 call assert_equal('123', g:GLOB_BLOB_1) 133 call assert_equal('123', g:GLOB_BLOB_1)
136 call assert_equal(1, type(g:GLOB_BLOB_1)) 134 call assert_equal(1, type(g:GLOB_BLOB_1))
137 call assert_equal('012', g:GLOB_BLOB_2) 135 call assert_equal('012', g:GLOB_BLOB_2)
138 call assert_equal(1, type(g:GLOB_BLOB_2)) 136 call assert_equal(1, type(g:GLOB_BLOB_2))
143 call assert_equal('1 2', g:GLOB_LIST_1) 141 call assert_equal('1 2', g:GLOB_LIST_1)
144 call assert_equal(1, type(g:GLOB_LIST_1)) 142 call assert_equal(1, type(g:GLOB_LIST_1))
145 call assert_equal('1 2', g:GLOB_DICT_1) 143 call assert_equal('1 2', g:GLOB_DICT_1)
146 call assert_equal(1, type(g:GLOB_DICT_1)) 144 call assert_equal(1, type(g:GLOB_DICT_1))
147 145
148 call delete('Xviminfo')
149 set viminfo-=! 146 set viminfo-=!
150 endfunc 147 endfunc
151 148
152 func Test_global_vars_with_circular_reference() 149 func Test_global_vars_with_circular_reference()
153 let g:MY_GLOBAL_LIST = [] 150 let g:MY_GLOBAL_LIST = []
581 call add(lines, '|1,>x') " bad continuation line 578 call add(lines, '|1,>x') " bad continuation line
582 call add(lines, '|1,"x') " missing quote 579 call add(lines, '|1,"x') " missing quote
583 call add(lines, '|1,"x\') " trailing backslash 580 call add(lines, '|1,"x\') " trailing backslash
584 call add(lines, '|1,,,,') "trailing comma 581 call add(lines, '|1,,,,') "trailing comma
585 call add(lines, '|1,>234') " trailing continuation line 582 call add(lines, '|1,>234') " trailing continuation line
586 call writefile(lines, 'Xviminfo') 583 call writefile(lines, 'Xviminfo', 'D')
587 rviminfo Xviminfo 584 rviminfo Xviminfo
588 585
589 call delete('Xviminfo') 586 call delete('Xviminfo')
590 endfunc 587 endfunc
591 588
611 call add(lines, '|4') " invalid number of fields in a mark barline 608 call add(lines, '|4') " invalid number of fields in a mark barline
612 call add(lines, '|4,1,1,1,1,1') " invalid value for file name 609 call add(lines, '|4,1,1,1,1,1') " invalid value for file name
613 call add(lines, '|4,20,1,1,1,"x"') " invalid value for file name 610 call add(lines, '|4,20,1,1,1,"x"') " invalid value for file name
614 call add(lines, '|4,49,0,1,1,"x"') " invalid value for line number 611 call add(lines, '|4,49,0,1,1,"x"') " invalid value for line number
615 612
616 call writefile(lines, 'Xviminfo') 613 call writefile(lines, 'Xviminfo', 'D')
617 rviminfo Xviminfo 614 rviminfo Xviminfo
618 call delete('Xviminfo')
619 endfunc 615 endfunc
620 616
621 func Test_viminfo_file_marks() 617 func Test_viminfo_file_marks()
622 silent! bwipe test_viminfo.vim 618 silent! bwipe test_viminfo.vim
623 silent! bwipe Xviminfo 619 silent! bwipe Xviminfo
689 \ '# File marks:', 685 \ '# File marks:',
690 \ "'B 1 0 /tmp/nothing", 686 \ "'B 1 0 /tmp/nothing",
691 \ '|4,66,1,0,0,"/tmp/nothing"', 687 \ '|4,66,1,0,0,"/tmp/nothing"',
692 \ "", 688 \ "",
693 \ ] 689 \ ]
694 call writefile(lines, 'Xviminfo') 690 call writefile(lines, 'Xviminfo', 'D')
695 delmark B 691 delmark B
696 rviminfo Xviminfo 692 rviminfo Xviminfo
697 call delete('Xviminfo')
698 call assert_equal(1, line("'B")) 693 call assert_equal(1, line("'B"))
699 delmark B 694 delmark B
700 endfunc 695 endfunc
701 696
702 " Test for saving and restoring file marks in unloaded buffers 697 " Test for saving and restoring file marks in unloaded buffers
703 func Test_viminfo_file_mark_unloaded_buf() 698 func Test_viminfo_file_mark_unloaded_buf()
704 let save_viminfo = &viminfo 699 let save_viminfo = &viminfo
705 set viminfo&vim 700 set viminfo&vim
706 call writefile(repeat(['vim'], 10), 'Xfile1') 701 call writefile(repeat(['vim'], 10), 'Xfile1', 'D')
707 %bwipe 702 %bwipe
708 edit! Xfile1 703 edit! Xfile1
709 call setpos("'u", [0, 3, 1, 0]) 704 call setpos("'u", [0, 3, 1, 0])
710 call setpos("'v", [0, 5, 1, 0]) 705 call setpos("'v", [0, 5, 1, 0])
711 enew 706 enew
714 edit Xfile1 709 edit Xfile1
715 rviminfo! Xviminfo 710 rviminfo! Xviminfo
716 call assert_equal([0, 3, 1, 0], getpos("'u")) 711 call assert_equal([0, 3, 1, 0], getpos("'u"))
717 call assert_equal([0, 5, 1, 0], getpos("'v")) 712 call assert_equal([0, 5, 1, 0], getpos("'v"))
718 %bwipe 713 %bwipe
719 call delete('Xfile1')
720 call delete('Xviminfo') 714 call delete('Xviminfo')
721 let &viminfo = save_viminfo 715 let &viminfo = save_viminfo
722 endfunc 716 endfunc
723 717
724 func Test_viminfo_oldfiles() 718 func Test_viminfo_oldfiles()
743 \ "", 737 \ "",
744 \ "> /tmp/another.txt", 738 \ "> /tmp/another.txt",
745 \ "\t\"\t11\t0", 739 \ "\t\"\t11\t0",
746 \ "", 740 \ "",
747 \ ] 741 \ ]
748 call writefile(lines, 'Xviminfo') 742 call writefile(lines, 'Xviminfo', 'D')
749 delmark E 743 delmark E
750 edit /tmp/file_two.txt 744 edit /tmp/file_two.txt
751 rviminfo! Xviminfo 745 rviminfo! Xviminfo
752 call delete('Xviminfo')
753 746
754 call assert_equal('h viminfo', histget(':')) 747 call assert_equal('h viminfo', histget(':'))
755 call assert_equal('session', histget('/')) 748 call assert_equal('session', histget('/'))
756 call assert_equal('myvar', histget('=')) 749 call assert_equal('myvar', histget('='))
757 call assert_equal('123', histget('@')) 750 call assert_equal('123', histget('@'))
837 func Test_viminfo_error() 830 func Test_viminfo_error()
838 " Non-existing viminfo files 831 " Non-existing viminfo files
839 call assert_fails('rviminfo xyz', 'E195:') 832 call assert_fails('rviminfo xyz', 'E195:')
840 833
841 " Illegal starting character 834 " Illegal starting character
842 call writefile(["a 123"], 'Xviminfo') 835 call writefile(["a 123"], 'Xviminfo', 'D')
843 call assert_fails('rv Xviminfo', 'E575:') 836 call assert_fails('rv Xviminfo', 'E575:')
844 837
845 " Illegal register name in the viminfo file 838 " Illegal register name in the viminfo file
846 call writefile(['"@ LINE 0'], 'Xviminfo') 839 call writefile(['"@ LINE 0'], 'Xviminfo')
847 call assert_fails('rv Xviminfo', 'E577:') 840 call assert_fails('rv Xviminfo', 'E577:')
857 call writefile(['>'] + repeat(['@'], 10), 'Xviminfo') 850 call writefile(['>'] + repeat(['@'], 10), 'Xviminfo')
858 call assert_fails('rv Xviminfo', 'E576:') 851 call assert_fails('rv Xviminfo', 'E576:')
859 852
860 call writefile(repeat(['"@'], 15), 'Xviminfo') 853 call writefile(repeat(['"@'], 15), 'Xviminfo')
861 call assert_fails('rv Xviminfo', 'E577:') 854 call assert_fails('rv Xviminfo', 'E577:')
862
863 call delete('Xviminfo')
864 endfunc 855 endfunc
865 856
866 " Test for saving and restoring last substitute string in viminfo 857 " Test for saving and restoring last substitute string in viminfo
867 func Test_viminfo_lastsub() 858 func Test_viminfo_lastsub()
868 enew 859 enew
899 \ ' def', 890 \ ' def',
900 \ '"m@ CHAR 0', 891 \ '"m@ CHAR 0',
901 \ " :echo 'Hello'\<CR>", 892 \ " :echo 'Hello'\<CR>",
902 \ "", 893 \ "",
903 \ ] 894 \ ]
904 call writefile(lines, 'Xviminfo') 895 call writefile(lines, 'Xviminfo', 'D')
905 let @a = 'one' 896 let @a = 'one'
906 let @b = 'two' 897 let @b = 'two'
907 let @m = 'three' 898 let @m = 'three'
908 let @" = 'four' 899 let @" = 'four'
909 let @t = ":echo 'Unix'\<CR>" 900 let @t = ":echo 'Unix'\<CR>"
917 call assert_equal("abc\ndef\n", getreg('d')) 908 call assert_equal("abc\ndef\n", getreg('d'))
918 call assert_equal("V", getregtype('d')) 909 call assert_equal("V", getregtype('d'))
919 call assert_equal(":echo 'Hello'\<CR>", getreg('m')) 910 call assert_equal(":echo 'Hello'\<CR>", getreg('m'))
920 call assert_equal('Vim', getreg('"')) 911 call assert_equal('Vim', getreg('"'))
921 call assert_equal("\nHello", execute('normal @@')) 912 call assert_equal("\nHello", execute('normal @@'))
922 call delete('Xviminfo') 913
923 let @" = '' 914 let @" = ''
924 endfunc 915 endfunc
925 916
926 " Test for saving and restoring large number of lines in a register 917 " Test for saving and restoring large number of lines in a register
927 func Test_viminfo_large_register() 918 func Test_viminfo_large_register()
929 set viminfo&vim 920 set viminfo&vim
930 set viminfo-=<50 921 set viminfo-=<50
931 set viminfo+=<200 922 set viminfo+=<200
932 let lines = ['"r CHAR 0'] 923 let lines = ['"r CHAR 0']
933 call extend(lines, repeat(["\tsun is rising"], 200)) 924 call extend(lines, repeat(["\tsun is rising"], 200))
934 call writefile(lines, 'Xviminfo') 925 call writefile(lines, 'Xviminfo', 'D')
935 let @r = '' 926 let @r = ''
936 rviminfo! Xviminfo 927 rviminfo! Xviminfo
937 call assert_equal(join(repeat(["sun is rising"], 200), "\n"), @r) 928 call assert_equal(join(repeat(["sun is rising"], 200), "\n"), @r)
938 call delete('Xviminfo') 929
939 let @r = '' 930 let @r = ''
940 let &viminfo = save_viminfo 931 let &viminfo = save_viminfo
941 endfunc 932 endfunc
942 933
943 " Test for setting 'viminfofile' to NONE 934 " Test for setting 'viminfofile' to NONE
944 func Test_viminfofile_none() 935 func Test_viminfofile_none()
945 let save_vif = &viminfofile 936 let save_vif = &viminfofile
946 set viminfofile=NONE 937 set viminfofile=NONE
947 wviminfo Xviminfo 938 wviminfo Xviminfo
948 call assert_false(filereadable('Xviminfo')) 939 call assert_false(filereadable('Xviminfo'))
949 call writefile([''], 'Xviminfo') 940 call writefile([''], 'Xviminfo', 'D')
950 call assert_fails('rviminfo Xviminfo', 'E195:') 941 call assert_fails('rviminfo Xviminfo', 'E195:')
951 call delete('Xviminfo') 942
952 let &viminfofile = save_vif 943 let &viminfofile = save_vif
953 endfunc 944 endfunc
954 945
955 " Test for an unwritable and unreadable 'viminfo' file 946 " Test for an unwritable and unreadable 'viminfo' file
956 func Test_viminfo_perm() 947 func Test_viminfo_perm()
957 CheckUnix 948 CheckUnix
958 CheckNotRoot 949 CheckNotRoot
959 call writefile([''], 'Xviminfo') 950 call writefile([''], 'Xviminfo', 'D')
960 call setfperm('Xviminfo', 'r-x------') 951 call setfperm('Xviminfo', 'r-x------')
961 call assert_fails('wviminfo Xviminfo', 'E137:') 952 call assert_fails('wviminfo Xviminfo', 'E137:')
962 call setfperm('Xviminfo', '--x------') 953 call setfperm('Xviminfo', '--x------')
963 call assert_fails('rviminfo Xviminfo', 'E195:') 954 call assert_fails('rviminfo Xviminfo', 'E195:')
964 call delete('Xviminfo')
965 955
966 " Try to write the viminfo to a directory 956 " Try to write the viminfo to a directory
967 call mkdir('Xvifdir') 957 call mkdir('Xvifdir', 'R')
968 call assert_fails('wviminfo Xvifdir', 'E137:') 958 call assert_fails('wviminfo Xvifdir', 'E137:')
969 call assert_fails('rviminfo Xvifdir', 'E195:') 959 call assert_fails('rviminfo Xvifdir', 'E195:')
970 call delete('Xvifdir', 'rf')
971 endfunc 960 endfunc
972 961
973 " Test for writing to an existing viminfo file merges the file marks 962 " Test for writing to an existing viminfo file merges the file marks
974 func XTest_viminfo_marks_merge() 963 func XTest_viminfo_marks_merge()
975 let save_viminfo = &viminfo 964 let save_viminfo = &viminfo
977 set viminfo^=% 966 set viminfo^=%
978 enew 967 enew
979 %argdelete 968 %argdelete
980 %bwipe 969 %bwipe
981 970
982 call writefile(repeat(['editor'], 10), 'Xbufa') 971 call writefile(repeat(['editor'], 10), 'Xbufa', 'D')
983 call writefile(repeat(['Vim'], 10), 'Xbufb') 972 call writefile(repeat(['Vim'], 10), 'Xbufb', 'D')
984 973
985 " set marks in buffers 974 " set marks in buffers
986 call test_settime(10) 975 call test_settime(10)
987 edit Xbufa 976 edit Xbufa
988 4mark a 977 4mark a
1011 call assert_equal(6, line("'b")) 1000 call assert_equal(6, line("'b"))
1012 1001
1013 " cleanup 1002 " cleanup
1014 %bwipe 1003 %bwipe
1015 call delete('Xviminfo') 1004 call delete('Xviminfo')
1016 call delete('Xbufa')
1017 call delete('Xbufb')
1018 call test_settime(0) 1005 call test_settime(0)
1019 let &viminfo=save_viminfo 1006 let &viminfo=save_viminfo
1020 endfunc 1007 endfunc
1021 1008
1022 " Test for errors in setting 'viminfo' 1009 " Test for errors in setting 'viminfo'
1049 set viminfofile=Xviminfofile 1036 set viminfofile=Xviminfofile
1050 set viminfo&vim 1037 set viminfo&vim
1051 w! Xnew-file.txt 1038 w! Xnew-file.txt
1052 qall 1039 qall
1053 [CODE] 1040 [CODE]
1054 call writefile(commands, 'Xviminfotest') 1041 call writefile(commands, 'Xviminfotest', 'D')
1055 let buf = RunVimInTerminal('-S Xviminfotest', #{wait_for_ruler: 0}) 1042 let buf = RunVimInTerminal('-S Xviminfotest', #{wait_for_ruler: 0})
1056 call WaitForAssert({-> assert_equal("finished", term_getstatus(buf))}) 1043 call WaitForAssert({-> assert_equal("finished", term_getstatus(buf))})
1057 1044
1058 let &viminfofile = 'Xviminfofile' 1045 let &viminfofile = 'Xviminfofile'
1059 rviminfo! Xviminfofile 1046 rviminfo! Xviminfofile
1060 call assert_match('Xnew-file.txt$', v:oldfiles[0]) 1047 call assert_match('Xnew-file.txt$', v:oldfiles[0])
1061 call assert_equal(1, len(v:oldfiles)) 1048 call assert_equal(1, len(v:oldfiles))
1049
1062 call delete('Xviminfofile') 1050 call delete('Xviminfofile')
1063 call delete('Xviminfotest')
1064 call delete('Xnew-file.txt') 1051 call delete('Xnew-file.txt')
1065 1052
1066 let v:oldfiles = test_null_list() 1053 let v:oldfiles = test_null_list()
1067 call assert_equal("\nNo old files", execute('oldfiles')) 1054 call assert_equal("\nNo old files", execute('oldfiles'))
1068 1055
1260 func Test_viminfo_merge_old_filemarks() 1247 func Test_viminfo_merge_old_filemarks()
1261 let lines = [] 1248 let lines = []
1262 call add(lines, '|1,4') 1249 call add(lines, '|1,4')
1263 call add(lines, '> ' .. fnamemodify('a.txt', ':p:~')) 1250 call add(lines, '> ' .. fnamemodify('a.txt', ':p:~'))
1264 call add(lines, "\tb\t7\t0\n") 1251 call add(lines, "\tb\t7\t0\n")
1265 call writefile(lines, 'Xviminfo') 1252 call writefile(lines, 'Xviminfo', 'D')
1266 edit b.txt 1253 edit b.txt
1267 call setline(1, range(1, 20)) 1254 call setline(1, range(1, 20))
1268 12mark b 1255 12mark b
1269 wviminfo Xviminfo 1256 wviminfo Xviminfo
1270 bw! 1257 bw!
1272 rviminfo! Xviminfo 1259 rviminfo! Xviminfo
1273 call assert_equal(7, line("'b")) 1260 call assert_equal(7, line("'b"))
1274 edit b.txt 1261 edit b.txt
1275 rviminfo! Xviminfo 1262 rviminfo! Xviminfo
1276 call assert_equal(12, line("'b")) 1263 call assert_equal(12, line("'b"))
1277 call delete('Xviminfo')
1278 endfunc 1264 endfunc
1279 1265
1280 " Test for merging the jump list from a old viminfo file 1266 " Test for merging the jump list from a old viminfo file
1281 func Test_viminfo_merge_old_jumplist() 1267 func Test_viminfo_merge_old_jumplist()
1282 let lines = [] 1268 let lines = []
1283 call add(lines, "-' 10 1 " .. fnamemodify('a.txt', ':p:~')) 1269 call add(lines, "-' 10 1 " .. fnamemodify('a.txt', ':p:~'))
1284 call add(lines, "-' 20 1 " .. fnamemodify('a.txt', ':p:~')) 1270 call add(lines, "-' 20 1 " .. fnamemodify('a.txt', ':p:~'))
1285 call add(lines, "-' 30 1 " .. fnamemodify('b.txt', ':p:~')) 1271 call add(lines, "-' 30 1 " .. fnamemodify('b.txt', ':p:~'))
1286 call add(lines, "-' 40 1 " .. fnamemodify('b.txt', ':p:~')) 1272 call add(lines, "-' 40 1 " .. fnamemodify('b.txt', ':p:~'))
1287 call writefile(lines, 'Xviminfo') 1273 call writefile(lines, 'Xviminfo', 'D')
1288 clearjumps 1274 clearjumps
1289 rviminfo! Xviminfo 1275 rviminfo! Xviminfo
1290 let l = getjumplist()[0] 1276 let l = getjumplist()[0]
1291 call assert_equal([40, 30, 20, 10], [l[0].lnum, l[1].lnum, l[2].lnum, 1277 call assert_equal([40, 30, 20, 10], [l[0].lnum, l[1].lnum, l[2].lnum,
1292 \ l[3].lnum]) 1278 \ l[3].lnum])
1293 bw! 1279 bw!
1294 call delete('Xviminfo')
1295 endfunc 1280 endfunc
1296 1281
1297 " vim: shiftwidth=2 sts=2 expandtab 1282 " vim: shiftwidth=2 sts=2 expandtab