Mercurial > vim
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 |