comparison src/testdir/test_vim9_import.vim @ 29970:d891115c0aea v9.0.0323

patch 9.0.0323: using common name in tests leads to flaky tests Commit: https://github.com/vim/vim/commit/3b0d70f4ff436cb144683dafd956e8a3ee485a90 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Aug 29 22:31:20 2022 +0100 patch 9.0.0323: using common name in tests leads to flaky tests Problem: Using common name in tests leads to flaky tests. Solution: Rename files and directories to be more specific.
author Bram Moolenaar <Bram@vim.org>
date Mon, 29 Aug 2022 23:45:04 +0200
parents cd573d7bc30d
children 13b02c1ea0f7
comparison
equal deleted inserted replaced
29969:5f2d38cacd6c 29970:d891115c0aea
764 vim9script 764 vim9script
765 export def Func() 765 export def Func()
766 g:result = 49 766 g:result = 49
767 enddef 767 enddef
768 END 768 END
769 mkdir('Xdir/autoload', 'p') 769 mkdir('Ximpdir/autoload', 'p')
770 writefile(lines, 'Xdir/autoload/XautoloadExport.vim') 770 writefile(lines, 'Ximpdir/autoload/XautoloadExport.vim')
771 var save_rtp = &rtp 771 var save_rtp = &rtp
772 exe 'set rtp^=' .. getcwd() .. '/Xdir' 772 exe 'set rtp^=' .. getcwd() .. '/Ximpdir'
773 773
774 lines =<< trim END 774 lines =<< trim END
775 vim9script 775 vim9script
776 import autoload 'XautoloadExport.vim' as some 776 import autoload 'XautoloadExport.vim' as some
777 nnoremap <F3> :call <SID>some.Func()<CR> 777 nnoremap <F3> :call <SID>some.Func()<CR>
784 assert_equal(49, g:result) 784 assert_equal(49, g:result)
785 785
786 unlet g:result 786 unlet g:result
787 delete('Xmapscript.vim') 787 delete('Xmapscript.vim')
788 nunmap <F3> 788 nunmap <F3>
789 delete('Xdir', 'rf') 789 delete('Ximpdir', 'rf')
790 &rtp = save_rtp 790 &rtp = save_rtp
791 enddef 791 enddef
792 792
793 def Test_use_import_in_command_completion() 793 def Test_use_import_in_command_completion()
794 var lines =<< trim END 794 var lines =<< trim END
836 delcommand Cmd 836 delcommand Cmd
837 delete('Xscript.vim') 837 delete('Xscript.vim')
838 enddef 838 enddef
839 839
840 def Test_use_autoload_import_in_insert_completion() 840 def Test_use_autoload_import_in_insert_completion()
841 mkdir('Xdir/autoload', 'p') 841 mkdir('Xinsdir/autoload', 'p')
842 var save_rtp = &rtp 842 var save_rtp = &rtp
843 exe 'set rtp^=' .. getcwd() .. '/Xdir' 843 exe 'set rtp^=' .. getcwd() .. '/Xinsdir'
844 844
845 var lines =<< trim END 845 var lines =<< trim END
846 vim9script 846 vim9script
847 export def ThesaurusFunc(findbase: bool, _): any 847 export def ThesaurusFunc(findbase: bool, _): any
848 if findbase 848 if findbase
855 'verification' 855 'verification'
856 ] 856 ]
857 enddef 857 enddef
858 g:completion_loaded = 'yes' 858 g:completion_loaded = 'yes'
859 END 859 END
860 writefile(lines, 'Xdir/autoload/completion.vim') 860 writefile(lines, 'Xinsdir/autoload/completion.vim')
861 861
862 new 862 new
863 lines =<< trim END 863 lines =<< trim END
864 vim9script 864 vim9script
865 g:completion_loaded = 'no' 865 g:completion_loaded = 'no'
872 END 872 END
873 v9.CheckScriptSuccess(lines) 873 v9.CheckScriptSuccess(lines)
874 874
875 set thesaurusfunc= 875 set thesaurusfunc=
876 bwipe! 876 bwipe!
877 delete('Xdir', 'rf') 877 delete('Xinsdir', 'rf')
878 &rtp = save_rtp 878 &rtp = save_rtp
879 enddef 879 enddef
880 880
881 def Test_use_autoload_import_partial_in_opfunc() 881 def Test_use_autoload_import_partial_in_opfunc()
882 mkdir('Xdir/autoload', 'p') 882 mkdir('Xpartdir/autoload', 'p')
883 var save_rtp = &rtp 883 var save_rtp = &rtp
884 exe 'set rtp^=' .. getcwd() .. '/Xdir' 884 exe 'set rtp^=' .. getcwd() .. '/Xpartdir'
885 885
886 var lines =<< trim END 886 var lines =<< trim END
887 vim9script 887 vim9script
888 export def Opfunc(..._) 888 export def Opfunc1(..._)
889 g:opfunc_called = 'yes' 889 g:opfunc_called = 'yes'
890 enddef 890 enddef
891 END 891 END
892 writefile(lines, 'Xdir/autoload/opfunc.vim') 892 writefile(lines, 'Xpartdir/autoload/opfunc.vim')
893 893
894 new 894 new
895 lines =<< trim END 895 lines =<< trim END
896 vim9script 896 vim9script
897 import autoload 'opfunc.vim' 897 import autoload 'opfunc.vim'
898 nnoremap <expr> <F3> TheFunc() 898 nnoremap <expr> <F3> TheFunc()
899 def TheFunc(): string 899 def TheFunc(): string
900 &operatorfunc = function('opfunc.Opfunc', [0]) 900 &operatorfunc = function('opfunc.Opfunc1', [0])
901 return 'g@' 901 return 'g@'
902 enddef 902 enddef
903 feedkeys("\<F3>l", 'xt') 903 feedkeys("\<F3>l", 'xt')
904 assert_equal('yes', g:opfunc_called) 904 assert_equal('yes', g:opfunc_called)
905 END 905 END
906 v9.CheckScriptSuccess(lines) 906 v9.CheckScriptSuccess(lines)
907 907
908 set opfunc= 908 set opfunc=
909 bwipe! 909 bwipe!
910 delete('Xdir', 'rf') 910 delete('Xpartdir', 'rf')
911 nunmap <F3> 911 nunmap <F3>
912 &rtp = save_rtp 912 &rtp = save_rtp
913 enddef 913 enddef
914 914
915 def Test_set_opfunc_to_autoload_func_directly() 915 def Test_set_opfunc_to_autoload_func_directly()
916 mkdir('Xdir/autoload', 'p') 916 mkdir('Xdirdir/autoload', 'p')
917 var save_rtp = &rtp 917 var save_rtp = &rtp
918 exe 'set rtp^=' .. getcwd() .. '/Xdir' 918 exe 'set rtp^=' .. getcwd() .. '/Xdirdir'
919 919
920 var lines =<< trim END 920 var lines =<< trim END
921 vim9script 921 vim9script
922 export def Opfunc(..._) 922 export def Opfunc2(..._)
923 g:opfunc_called = 'yes' 923 g:opfunc_called = 'yes'
924 enddef 924 enddef
925 END 925 END
926 writefile(lines, 'Xdir/autoload/opfunc.vim') 926 writefile(lines, 'Xdirdir/autoload/opfunc.vim')
927 927
928 new 928 new
929 lines =<< trim END 929 lines =<< trim END
930 vim9script 930 vim9script
931 import autoload 'opfunc.vim' 931 import autoload 'opfunc.vim'
932 nnoremap <expr> <F3> TheFunc() 932 nnoremap <expr> <F3> TheFunc()
933 def TheFunc(): string 933 def TheFunc(): string
934 &operatorfunc = opfunc.Opfunc 934 &operatorfunc = opfunc.Opfunc2
935 return 'g@' 935 return 'g@'
936 enddef 936 enddef
937 feedkeys("\<F3>l", 'xt') 937 feedkeys("\<F3>l", 'xt')
938 assert_equal('yes', g:opfunc_called) 938 assert_equal('yes', g:opfunc_called)
939 END 939 END
940 v9.CheckScriptSuccess(lines) 940 v9.CheckScriptSuccess(lines)
941 941
942 set opfunc= 942 set opfunc=
943 bwipe! 943 bwipe!
944 delete('Xdir', 'rf') 944 delete('Xdirdir', 'rf')
945 nunmap <F3> 945 nunmap <F3>
946 &rtp = save_rtp 946 &rtp = save_rtp
947 enddef 947 enddef
948 948
949 def Test_use_autoload_import_in_fold_expression() 949 def Test_use_autoload_import_in_fold_expression()
950 mkdir('Xdir/autoload', 'p') 950 mkdir('Xfolddir/autoload', 'p')
951 var save_rtp = &rtp 951 var save_rtp = &rtp
952 exe 'set rtp^=' .. getcwd() .. '/Xdir' 952 exe 'set rtp^=' .. getcwd() .. '/Xfolddir'
953 953
954 var lines =<< trim END 954 var lines =<< trim END
955 vim9script 955 vim9script
956 export def Expr(): string 956 export def Expr(): string
957 return getline(v:lnum) =~ '^#' ? '>1' : '1' 957 return getline(v:lnum) =~ '^#' ? '>1' : '1'
959 export def Text(): string 959 export def Text(): string
960 return 'fold text' 960 return 'fold text'
961 enddef 961 enddef
962 g:fold_loaded = 'yes' 962 g:fold_loaded = 'yes'
963 END 963 END
964 writefile(lines, 'Xdir/autoload/fold.vim') 964 writefile(lines, 'Xfolddir/autoload/fold.vim')
965 965
966 lines =<< trim END 966 lines =<< trim END
967 vim9script 967 vim9script
968 import autoload 'fold.vim' 968 import autoload 'fold.vim'
969 &foldexpr = 'fold.Expr()' 969 &foldexpr = 'fold.Expr()'
983 edit! otherfile 983 edit! otherfile
984 redraw 984 redraw
985 985
986 set foldexpr= foldtext& foldmethod& debug= 986 set foldexpr= foldtext& foldmethod& debug=
987 bwipe! 987 bwipe!
988 delete('Xdir', 'rf') 988 delete('Xfolddir', 'rf')
989 &rtp = save_rtp 989 &rtp = save_rtp
990 enddef 990 enddef
991 991
992 def Test_autoload_import_relative() 992 def Test_autoload_import_relative()
993 var lines =<< trim END 993 var lines =<< trim END
1198 delete('Xa.vim') 1198 delete('Xa.vim')
1199 var x = Xa.FOO 1199 var x = Xa.FOO
1200 END 1200 END
1201 v9.CheckScriptFailure(lines, 'E484:') 1201 v9.CheckScriptFailure(lines, 'E484:')
1202 1202
1203 delete('Xdir', 'rf') 1203 delete('Xa.vim')
1204 enddef 1204 enddef
1205 1205
1206 func Test_import_in_diffexpr() 1206 func Test_import_in_diffexpr()
1207 CheckExecutable diff 1207 CheckExecutable diff
1208 1208
1453 delete('Xsuggest.vim') 1453 delete('Xsuggest.vim')
1454 set nospell spellsuggest& verbose=0 1454 set nospell spellsuggest& verbose=0
1455 enddef 1455 enddef
1456 1456
1457 def Test_export_shadows_global_function() 1457 def Test_export_shadows_global_function()
1458 mkdir('Xdir/autoload', 'p') 1458 mkdir('Xglobdir/autoload', 'p')
1459 var save_rtp = &rtp 1459 var save_rtp = &rtp
1460 exe 'set rtp^=' .. getcwd() .. '/Xdir' 1460 exe 'set rtp^=' .. getcwd() .. '/Xglobdir'
1461 1461
1462 var lines =<< trim END 1462 var lines =<< trim END
1463 vim9script 1463 vim9script
1464 export def Shadow(): string 1464 export def Shadow(): string
1465 return 'Shadow()' 1465 return 'Shadow()'
1466 enddef 1466 enddef
1467 END 1467 END
1468 writefile(lines, 'Xdir/autoload/shadow.vim') 1468 writefile(lines, 'Xglobdir/autoload/shadow.vim')
1469 1469
1470 lines =<< trim END 1470 lines =<< trim END
1471 vim9script 1471 vim9script
1472 1472
1473 def g:Shadow(): string 1473 def g:Shadow(): string
1479 END 1479 END
1480 v9.CheckScriptSuccess(lines) 1480 v9.CheckScriptSuccess(lines)
1481 1481
1482 delfunc g:Shadow 1482 delfunc g:Shadow
1483 bwipe! 1483 bwipe!
1484 delete('Xdir', 'rf') 1484 delete('Xglobdir', 'rf')
1485 &rtp = save_rtp 1485 &rtp = save_rtp
1486 enddef 1486 enddef
1487 1487
1488 def Test_export_fails() 1488 def Test_export_fails()
1489 v9.CheckScriptFailure(['export var some = 123'], 'E1042:') 1489 v9.CheckScriptFailure(['export var some = 123'], 'E1042:')
2176 export def Varargs(a1: string, ...l: list<string>): string 2176 export def Varargs(a1: string, ...l: list<string>): string
2177 return a1 .. l[0] .. l[1] 2177 return a1 .. l[0] .. l[1]
2178 enddef 2178 enddef
2179 END 2179 END
2180 2180
2181 mkdir('Xdir/autoload', 'p') 2181 mkdir('Xfulldir/autoload', 'p')
2182 writefile(lines, 'Xdir/autoload/some.vim') 2182 writefile(lines, 'Xfulldir/autoload/some.vim')
2183 var save_rtp = &rtp 2183 var save_rtp = &rtp
2184 exe 'set rtp^=' .. getcwd() .. '/Xdir' 2184 exe 'set rtp^=' .. getcwd() .. '/Xfulldir'
2185 2185
2186 assert_equal('test', g:some#Gettest()) 2186 assert_equal('test', g:some#Gettest())
2187 assert_equal('name', g:some#name) 2187 assert_equal('name', g:some#name)
2188 assert_equal('value', g:some#dict.key) 2188 assert_equal('value', g:some#dict.key)
2189 g:some#other = 'other' 2189 g:some#other = 'other'
2196 vim9script 2196 vim9script
2197 export def GetOther(): string 2197 export def GetOther(): string
2198 return 'other' 2198 return 'other'
2199 enddef 2199 enddef
2200 END 2200 END
2201 writefile(lines, 'Xdir/autoload/Other.vim') 2201 writefile(lines, 'Xfulldir/autoload/Other.vim')
2202 assert_equal('other', g:Other#GetOther()) 2202 assert_equal('other', g:Other#GetOther())
2203 2203
2204 delete('Xdir', 'rf') 2204 delete('Xfulldir', 'rf')
2205 &rtp = save_rtp 2205 &rtp = save_rtp
2206 enddef 2206 enddef
2207 2207
2208 def Test_vim9script_autoload() 2208 def Test_vim9script_autoload()
2209 mkdir('Xdir/autoload', 'p') 2209 mkdir('Xaldir/autoload', 'p')
2210 var save_rtp = &rtp 2210 var save_rtp = &rtp
2211 exe 'set rtp^=' .. getcwd() .. '/Xdir' 2211 exe 'set rtp^=' .. getcwd() .. '/Xaldir'
2212 2212
2213 # when the path has "/autoload/" prefix is not needed 2213 # when the path has "/autoload/" prefix is not needed
2214 var lines =<< trim END 2214 var lines =<< trim END
2215 vim9script 2215 vim9script
2216 g:prefixed_loaded += 1 2216 g:prefixed_loaded += 1
2230 enddef 2230 enddef
2231 2231
2232 export final fname = 'final' 2232 export final fname = 'final'
2233 export const cname = 'const' 2233 export const cname = 'const'
2234 END 2234 END
2235 writefile(lines, 'Xdir/autoload/prefixed.vim') 2235 writefile(lines, 'Xaldir/autoload/prefixed.vim')
2236 2236
2237 g:prefixed_loaded = 0 2237 g:prefixed_loaded = 0
2238 g:expected_loaded = 0 2238 g:expected_loaded = 0
2239 lines =<< trim END 2239 lines =<< trim END
2240 vim9script 2240 vim9script
2264 END 2264 END
2265 v9.CheckScriptSuccess(lines) 2265 v9.CheckScriptSuccess(lines)
2266 2266
2267 unlet g:prefixed_loaded 2267 unlet g:prefixed_loaded
2268 unlet g:expected_loaded 2268 unlet g:expected_loaded
2269 delete('Xdir', 'rf') 2269 delete('Xaldir', 'rf')
2270 &rtp = save_rtp 2270 &rtp = save_rtp
2271 enddef 2271 enddef
2272 2272
2273 def Test_import_autoload_not_exported() 2273 def Test_import_autoload_not_exported()
2274 mkdir('Xdir/autoload', 'p') 2274 mkdir('Xnimdir/autoload', 'p')
2275 var save_rtp = &rtp 2275 var save_rtp = &rtp
2276 exe 'set rtp^=' .. getcwd() .. '/Xdir' 2276 exe 'set rtp^=' .. getcwd() .. '/Xnimdir'
2277 2277
2278 # error when using an item that is not exported from an autoload script 2278 # error when using an item that is not exported from an autoload script
2279 var exportLines =<< trim END 2279 var exportLines =<< trim END
2280 vim9script 2280 vim9script
2281 var notExported = 123 2281 var notExported = 123
2282 def NotExport() 2282 def NotExport()
2283 echo 'nop' 2283 echo 'nop'
2284 enddef 2284 enddef
2285 END 2285 END
2286 writefile(exportLines, 'Xdir/autoload/notExport1.vim') 2286 writefile(exportLines, 'Xnimdir/autoload/notExport1.vim')
2287 2287
2288 var lines =<< trim END 2288 var lines =<< trim END
2289 vim9script 2289 vim9script
2290 import autoload 'notExport1.vim' 2290 import autoload 'notExport1.vim'
2291 echo notExport1.notFound 2291 echo notExport1.notFound
2327 END 2327 END
2328 v9.CheckScriptFailure(lines, 'E1049: Item not exported in script: NotExport') 2328 v9.CheckScriptFailure(lines, 'E1049: Item not exported in script: NotExport')
2329 2329
2330 # using a :def function we use a different autoload script every time so that 2330 # using a :def function we use a different autoload script every time so that
2331 # the function is compiled without the script loaded 2331 # the function is compiled without the script loaded
2332 writefile(exportLines, 'Xdir/autoload/notExport2.vim') 2332 writefile(exportLines, 'Xnimdir/autoload/notExport2.vim')
2333 lines =<< trim END 2333 lines =<< trim END
2334 vim9script 2334 vim9script
2335 import autoload 'notExport2.vim' 2335 import autoload 'notExport2.vim'
2336 def Testit() 2336 def Testit()
2337 echo notExport2.notFound 2337 echo notExport2.notFound
2338 enddef 2338 enddef
2339 Testit() 2339 Testit()
2340 END 2340 END
2341 v9.CheckScriptFailure(lines, 'E1048: Item not found in script: notExport2#notFound') 2341 v9.CheckScriptFailure(lines, 'E1048: Item not found in script: notExport2#notFound')
2342 2342
2343 writefile(exportLines, 'Xdir/autoload/notExport3.vim') 2343 writefile(exportLines, 'Xnimdir/autoload/notExport3.vim')
2344 lines =<< trim END 2344 lines =<< trim END
2345 vim9script 2345 vim9script
2346 import autoload 'notExport3.vim' 2346 import autoload 'notExport3.vim'
2347 def Testit() 2347 def Testit()
2348 echo notExport3.notExported 2348 echo notExport3.notExported
2350 Testit() 2350 Testit()
2351 END 2351 END
2352 # don't get E1049 because it is too complicated to figure out 2352 # don't get E1049 because it is too complicated to figure out
2353 v9.CheckScriptFailure(lines, 'E1048: Item not found in script: notExport3#notExported') 2353 v9.CheckScriptFailure(lines, 'E1048: Item not found in script: notExport3#notExported')
2354 2354
2355 writefile(exportLines, 'Xdir/autoload/notExport4.vim') 2355 writefile(exportLines, 'Xnimdir/autoload/notExport4.vim')
2356 lines =<< trim END 2356 lines =<< trim END
2357 vim9script 2357 vim9script
2358 import autoload 'notExport4.vim' 2358 import autoload 'notExport4.vim'
2359 def Testit() 2359 def Testit()
2360 echo notExport4.NotFunc() 2360 echo notExport4.NotFunc()
2361 enddef 2361 enddef
2362 Testit() 2362 Testit()
2363 END 2363 END
2364 v9.CheckScriptFailure(lines, 'E117: Unknown function: notExport4#NotFunc') 2364 v9.CheckScriptFailure(lines, 'E117: Unknown function: notExport4#NotFunc')
2365 2365
2366 writefile(exportLines, 'Xdir/autoload/notExport5.vim') 2366 writefile(exportLines, 'Xnimdir/autoload/notExport5.vim')
2367 lines =<< trim END 2367 lines =<< trim END
2368 vim9script 2368 vim9script
2369 import autoload 'notExport5.vim' 2369 import autoload 'notExport5.vim'
2370 def Testit() 2370 def Testit()
2371 echo notExport5.NotExport() 2371 echo notExport5.NotExport()
2372 enddef 2372 enddef
2373 Testit() 2373 Testit()
2374 END 2374 END
2375 v9.CheckScriptFailure(lines, 'E117: Unknown function: notExport5#NotExport') 2375 v9.CheckScriptFailure(lines, 'E117: Unknown function: notExport5#NotExport')
2376 2376
2377 writefile(exportLines, 'Xdir/autoload/notExport6.vim') 2377 writefile(exportLines, 'Xnimdir/autoload/notExport6.vim')
2378 lines =<< trim END 2378 lines =<< trim END
2379 vim9script 2379 vim9script
2380 import autoload 'notExport6.vim' 2380 import autoload 'notExport6.vim'
2381 def Testit() 2381 def Testit()
2382 echo 'text'->notExport6.NotFunc() 2382 echo 'text'->notExport6.NotFunc()
2383 enddef 2383 enddef
2384 Testit() 2384 Testit()
2385 END 2385 END
2386 v9.CheckScriptFailure(lines, 'E117: Unknown function: notExport6#NotFunc') 2386 v9.CheckScriptFailure(lines, 'E117: Unknown function: notExport6#NotFunc')
2387 2387
2388 writefile(exportLines, 'Xdir/autoload/notExport7.vim') 2388 writefile(exportLines, 'Xnimdir/autoload/notExport7.vim')
2389 lines =<< trim END 2389 lines =<< trim END
2390 vim9script 2390 vim9script
2391 import autoload 'notExport7.vim' 2391 import autoload 'notExport7.vim'
2392 def Testit() 2392 def Testit()
2393 echo 'text'->notExport7.NotExport() 2393 echo 'text'->notExport7.NotExport()
2394 enddef 2394 enddef
2395 Testit() 2395 Testit()
2396 END 2396 END
2397 v9.CheckScriptFailure(lines, 'E117: Unknown function: notExport7#NotExport') 2397 v9.CheckScriptFailure(lines, 'E117: Unknown function: notExport7#NotExport')
2398 2398
2399 delete('Xdir', 'rf') 2399 delete('Xnimdir', 'rf')
2400 &rtp = save_rtp 2400 &rtp = save_rtp
2401 enddef 2401 enddef
2402 2402
2403 def Test_vim9script_autoload_call() 2403 def Test_vim9script_autoload_call()
2404 mkdir('Xdir/autoload', 'p') 2404 mkdir('Xcalldir/autoload', 'p')
2405 var save_rtp = &rtp 2405 var save_rtp = &rtp
2406 exe 'set rtp^=' .. getcwd() .. '/Xdir' 2406 exe 'set rtp^=' .. getcwd() .. '/Xcalldir'
2407 2407
2408 var lines =<< trim END 2408 var lines =<< trim END
2409 vim9script 2409 vim9script
2410 2410
2411 export def RetArg(arg: string): string 2411 export def RetArg(arg: string): string
2414 2414
2415 export def Getother() 2415 export def Getother()
2416 g:result = 'other' 2416 g:result = 'other'
2417 enddef 2417 enddef
2418 END 2418 END
2419 writefile(lines, 'Xdir/autoload/another.vim') 2419 writefile(lines, 'Xcalldir/autoload/another.vim')
2420 2420
2421 lines =<< trim END 2421 lines =<< trim END
2422 vim9script 2422 vim9script
2423 import autoload 'another.vim' 2423 import autoload 'another.vim'
2424 2424
2438 verbose function another#Getother 2438 verbose function another#Getother
2439 END 2439 END
2440 v9.CheckScriptSuccess(lines) 2440 v9.CheckScriptSuccess(lines)
2441 2441
2442 unlet g:result 2442 unlet g:result
2443 delete('Xdir', 'rf') 2443 delete('Xcalldir', 'rf')
2444 &rtp = save_rtp 2444 &rtp = save_rtp
2445 enddef 2445 enddef
2446 2446
2447 def Test_vim9script_noclear_autoload() 2447 def Test_vim9script_noclear_autoload()
2448 mkdir('Xdir/autoload', 'p') 2448 mkdir('Xnocdir/autoload', 'p')
2449 var save_rtp = &rtp 2449 var save_rtp = &rtp
2450 exe 'set rtp^=' .. getcwd() .. '/Xdir' 2450 exe 'set rtp^=' .. getcwd() .. '/Xnocdir'
2451 2451
2452 var lines =<< trim END 2452 var lines =<< trim END
2453 vim9script 2453 vim9script
2454 export def Func(): string 2454 export def Func(): string
2455 return 'called' 2455 return 'called'
2456 enddef 2456 enddef
2457 g:double_loaded = 'yes' 2457 g:double_loaded = 'yes'
2458 END 2458 END
2459 writefile(lines, 'Xdir/autoload/double.vim') 2459 writefile(lines, 'Xnocdir/autoload/double.vim')
2460 2460
2461 lines =<< trim END 2461 lines =<< trim END
2462 vim9script noclear 2462 vim9script noclear
2463 if exists('g:script_loaded') 2463 if exists('g:script_loaded')
2464 finish 2464 finish
2480 2480
2481 delete('Xloaddouble') 2481 delete('Xloaddouble')
2482 unlet g:double_loaded 2482 unlet g:double_loaded
2483 unlet g:script_loaded 2483 unlet g:script_loaded
2484 unlet g:result 2484 unlet g:result
2485 delete('Xdir', 'rf') 2485 delete('Xnocdir', 'rf')
2486 &rtp = save_rtp 2486 &rtp = save_rtp
2487 enddef 2487 enddef
2488 2488
2489 def Test_vim9script_autoload_duplicate() 2489 def Test_vim9script_autoload_duplicate()
2490 mkdir('Xdir/autoload', 'p') 2490 mkdir('Xdupdir/autoload', 'p')
2491 2491
2492 var lines =<< trim END 2492 var lines =<< trim END
2493 vim9script 2493 vim9script
2494 2494
2495 export def Func() 2495 export def Func()
2496 enddef 2496 enddef
2497 2497
2498 def Func() 2498 def Func()
2499 enddef 2499 enddef
2500 END 2500 END
2501 writefile(lines, 'Xdir/autoload/dupfunc.vim') 2501 writefile(lines, 'Xdupdir/autoload/dupfunc.vim')
2502 assert_fails('source Xdir/autoload/dupfunc.vim', 'E1073:') 2502 assert_fails('source Xdupdir/autoload/dupfunc.vim', 'E1073:')
2503 2503
2504 lines =<< trim END 2504 lines =<< trim END
2505 vim9script 2505 vim9script
2506 2506
2507 def Func() 2507 def Func()
2508 enddef 2508 enddef
2509 2509
2510 export def Func() 2510 export def Func()
2511 enddef 2511 enddef
2512 END 2512 END
2513 writefile(lines, 'Xdir/autoload/dup2func.vim') 2513 writefile(lines, 'Xdupdir/autoload/dup2func.vim')
2514 assert_fails('source Xdir/autoload/dup2func.vim', 'E1073:') 2514 assert_fails('source Xdupdir/autoload/dup2func.vim', 'E1073:')
2515 2515
2516 lines =<< trim END 2516 lines =<< trim END
2517 vim9script 2517 vim9script
2518 2518
2519 def Func() 2519 def Func()
2520 enddef 2520 enddef
2521 2521
2522 export var Func = 'asdf' 2522 export var Func = 'asdf'
2523 END 2523 END
2524 writefile(lines, 'Xdir/autoload/dup3func.vim') 2524 writefile(lines, 'Xdupdir/autoload/dup3func.vim')
2525 assert_fails('source Xdir/autoload/dup3func.vim', 'E1041: Redefining script item: "Func"') 2525 assert_fails('source Xdupdir/autoload/dup3func.vim', 'E1041: Redefining script item: "Func"')
2526 2526
2527 lines =<< trim END 2527 lines =<< trim END
2528 vim9script 2528 vim9script
2529 2529
2530 export var Func = 'asdf' 2530 export var Func = 'asdf'
2531 2531
2532 def Func() 2532 def Func()
2533 enddef 2533 enddef
2534 END 2534 END
2535 writefile(lines, 'Xdir/autoload/dup4func.vim') 2535 writefile(lines, 'Xdupdir/autoload/dup4func.vim')
2536 assert_fails('source Xdir/autoload/dup4func.vim', 'E707:') 2536 assert_fails('source Xdupdir/autoload/dup4func.vim', 'E707:')
2537 2537
2538 lines =<< trim END 2538 lines =<< trim END
2539 vim9script 2539 vim9script
2540 2540
2541 var Func = 'asdf' 2541 var Func = 'asdf'
2542 2542
2543 export def Func() 2543 export def Func()
2544 enddef 2544 enddef
2545 END 2545 END
2546 writefile(lines, 'Xdir/autoload/dup5func.vim') 2546 writefile(lines, 'Xdupdir/autoload/dup5func.vim')
2547 assert_fails('source Xdir/autoload/dup5func.vim', 'E707:') 2547 assert_fails('source Xdupdir/autoload/dup5func.vim', 'E707:')
2548 2548
2549 lines =<< trim END 2549 lines =<< trim END
2550 vim9script 2550 vim9script
2551 2551
2552 export def Func() 2552 export def Func()
2553 enddef 2553 enddef
2554 2554
2555 var Func = 'asdf' 2555 var Func = 'asdf'
2556 END 2556 END
2557 writefile(lines, 'Xdir/autoload/dup6func.vim') 2557 writefile(lines, 'Xdupdir/autoload/dup6func.vim')
2558 assert_fails('source Xdir/autoload/dup6func.vim', 'E1041: Redefining script item: "Func"') 2558 assert_fails('source Xdupdir/autoload/dup6func.vim', 'E1041: Redefining script item: "Func"')
2559 2559
2560 delete('Xdir', 'rf') 2560 delete('Xdupdir', 'rf')
2561 enddef 2561 enddef
2562 2562
2563 def Test_autoload_missing_function_name() 2563 def Test_autoload_missing_function_name()
2564 mkdir('Xdir/autoload', 'p') 2564 mkdir('Xmisdir/autoload', 'p')
2565 2565
2566 var lines =<< trim END 2566 var lines =<< trim END
2567 vim9script 2567 vim9script
2568 2568
2569 def loadme#() 2569 def loadme#()
2570 enddef 2570 enddef
2571 END 2571 END
2572 writefile(lines, 'Xdir/autoload/loadme.vim') 2572 writefile(lines, 'Xmisdir/autoload/loadme.vim')
2573 assert_fails('source Xdir/autoload/loadme.vim', 'E129:') 2573 assert_fails('source Xmisdir/autoload/loadme.vim', 'E129:')
2574 2574
2575 delete('Xdir', 'rf') 2575 delete('Xmisdir', 'rf')
2576 enddef 2576 enddef
2577 2577
2578 def Test_autoload_name_wrong() 2578 def Test_autoload_name_wrong()
2579 var lines =<< trim END 2579 var lines =<< trim END
2580 def Xscriptname#Func() 2580 def Xscriptname#Func()
2582 END 2582 END
2583 writefile(lines, 'Xscriptname.vim') 2583 writefile(lines, 'Xscriptname.vim')
2584 v9.CheckScriptFailure(lines, 'E746:') 2584 v9.CheckScriptFailure(lines, 'E746:')
2585 delete('Xscriptname.vim') 2585 delete('Xscriptname.vim')
2586 2586
2587 mkdir('Xdir/autoload', 'p') 2587 mkdir('Xwrodir/autoload', 'p')
2588 lines =<< trim END 2588 lines =<< trim END
2589 vim9script 2589 vim9script
2590 def somescript#Func() 2590 def somescript#Func()
2591 enddef 2591 enddef
2592 END 2592 END
2593 writefile(lines, 'Xdir/autoload/somescript.vim') 2593 writefile(lines, 'Xwrodir/autoload/somescript.vim')
2594 assert_fails('source Xdir/autoload/somescript.vim', 'E1263:') 2594 assert_fails('source Xwrodir/autoload/somescript.vim', 'E1263:')
2595 2595
2596 delete('Xdir', 'rf') 2596 delete('Xwrodir', 'rf')
2597 enddef 2597 enddef
2598 2598
2599 def Test_import_autoload_postponed() 2599 def Test_import_autoload_postponed()
2600 mkdir('Xdir/autoload', 'p') 2600 mkdir('Xpostdir/autoload', 'p')
2601 var save_rtp = &rtp 2601 var save_rtp = &rtp
2602 exe 'set rtp^=' .. getcwd() .. '/Xdir' 2602 exe 'set rtp^=' .. getcwd() .. '/Xpostdir'
2603 2603
2604 var lines =<< trim END 2604 var lines =<< trim END
2605 vim9script 2605 vim9script
2606 2606
2607 g:loaded_postponed = 'true' 2607 g:loaded_postponed = 'true'
2608 export var variable = 'bla' 2608 export var variable = 'bla'
2609 export def Function(): string 2609 export def Function(): string
2610 return 'bla' 2610 return 'bla'
2611 enddef 2611 enddef
2612 END 2612 END
2613 writefile(lines, 'Xdir/autoload/postponed.vim') 2613 writefile(lines, 'Xpostdir/autoload/postponed.vim')
2614 2614
2615 lines =<< trim END 2615 lines =<< trim END
2616 vim9script 2616 vim9script
2617 2617
2618 import autoload 'postponed.vim' 2618 import autoload 'postponed.vim'
2626 assert_false(exists('g:loaded_postponed')) 2626 assert_false(exists('g:loaded_postponed'))
2627 v9.CheckScriptSuccess(lines + ['Tryit()']) 2627 v9.CheckScriptSuccess(lines + ['Tryit()'])
2628 assert_equal('true', g:loaded_postponed) 2628 assert_equal('true', g:loaded_postponed)
2629 2629
2630 unlet g:loaded_postponed 2630 unlet g:loaded_postponed
2631 delete('Xdir', 'rf') 2631 delete('Xpostdir', 'rf')
2632 &rtp = save_rtp 2632 &rtp = save_rtp
2633 enddef 2633 enddef
2634 2634
2635 def Test_import_autoload_override() 2635 def Test_import_autoload_override()
2636 mkdir('Xdir/autoload', 'p') 2636 mkdir('Xoverdir/autoload', 'p')
2637 var save_rtp = &rtp 2637 var save_rtp = &rtp
2638 exe 'set rtp^=' .. getcwd() .. '/Xdir' 2638 exe 'set rtp^=' .. getcwd() .. '/Xoverdir'
2639 test_override('autoload', 1) 2639 test_override('autoload', 1)
2640 2640
2641 var lines =<< trim END 2641 var lines =<< trim END
2642 vim9script 2642 vim9script
2643 2643
2645 export var variable = 'bla' 2645 export var variable = 'bla'
2646 export def Function(): string 2646 export def Function(): string
2647 return 'bla' 2647 return 'bla'
2648 enddef 2648 enddef
2649 END 2649 END
2650 writefile(lines, 'Xdir/autoload/override.vim') 2650 writefile(lines, 'Xoverdir/autoload/override.vim')
2651 2651
2652 lines =<< trim END 2652 lines =<< trim END
2653 vim9script 2653 vim9script
2654 2654
2655 import autoload 'override.vim' 2655 import autoload 'override.vim'
2662 END 2662 END
2663 v9.CheckScriptFailure(lines, 'E1048: Item not found in script: doesNotExist', 1) 2663 v9.CheckScriptFailure(lines, 'E1048: Item not found in script: doesNotExist', 1)
2664 2664
2665 test_override('autoload', 0) 2665 test_override('autoload', 0)
2666 unlet g:loaded_override 2666 unlet g:loaded_override
2667 delete('Xdir', 'rf') 2667 delete('Xoverdir', 'rf')
2668 &rtp = save_rtp 2668 &rtp = save_rtp
2669 enddef 2669 enddef
2670 2670
2671 def Test_autoload_mapping() 2671 def Test_autoload_mapping()
2672 mkdir('Xdir/autoload', 'p') 2672 mkdir('Xmapdir/autoload', 'p')
2673 var save_rtp = &rtp 2673 var save_rtp = &rtp
2674 exe 'set rtp^=' .. getcwd() .. '/Xdir' 2674 exe 'set rtp^=' .. getcwd() .. '/Xmapdir'
2675 2675
2676 var lines =<< trim END 2676 var lines =<< trim END
2677 vim9script 2677 vim9script
2678 2678
2679 g:toggle_loaded = 'yes' 2679 g:toggle_loaded = 'yes'
2683 enddef 2683 enddef
2684 export def Doit() 2684 export def Doit()
2685 g:doit_called = 'yes' 2685 g:doit_called = 'yes'
2686 enddef 2686 enddef
2687 END 2687 END
2688 writefile(lines, 'Xdir/autoload/toggle.vim') 2688 writefile(lines, 'Xmapdir/autoload/toggle.vim')
2689 2689
2690 lines =<< trim END 2690 lines =<< trim END
2691 vim9script 2691 vim9script
2692 2692
2693 import autoload 'toggle.vim' 2693 import autoload 'toggle.vim'
2714 nunmap tt 2714 nunmap tt
2715 nunmap xx 2715 nunmap xx
2716 nunmap yy 2716 nunmap yy
2717 unlet g:toggle_loaded 2717 unlet g:toggle_loaded
2718 unlet g:toggle_called 2718 unlet g:toggle_called
2719 delete('Xdir', 'rf') 2719 delete('Xmapdir', 'rf')
2720 &rtp = save_rtp 2720 &rtp = save_rtp
2721 enddef 2721 enddef
2722 2722
2723 def Test_vim9script_autoload_fails() 2723 def Test_vim9script_autoload_fails()
2724 var lines =<< trim END 2724 var lines =<< trim END
2772 v9.CheckScriptFailure(lines, 'E1053: Could not import "doesNotExist.vim"') 2772 v9.CheckScriptFailure(lines, 'E1053: Could not import "doesNotExist.vim"')
2773 enddef 2773 enddef
2774 2774
2775 " test disassembling an auto-loaded function starting with "debug" 2775 " test disassembling an auto-loaded function starting with "debug"
2776 def Test_vim9_autoload_disass() 2776 def Test_vim9_autoload_disass()
2777 mkdir('Xdir/autoload', 'p') 2777 mkdir('Xdasdir/autoload', 'p')
2778 var save_rtp = &rtp 2778 var save_rtp = &rtp
2779 exe 'set rtp^=' .. getcwd() .. '/Xdir' 2779 exe 'set rtp^=' .. getcwd() .. '/Xdasdir'
2780 2780
2781 var lines =<< trim END 2781 var lines =<< trim END
2782 vim9script 2782 vim9script
2783 export def Test(): string 2783 export def Test(): string
2784 return 'debug' 2784 return 'debug'
2785 enddef 2785 enddef
2786 END 2786 END
2787 writefile(lines, 'Xdir/autoload/debugit.vim') 2787 writefile(lines, 'Xdasdir/autoload/debugit.vim')
2788 2788
2789 lines =<< trim END 2789 lines =<< trim END
2790 vim9script 2790 vim9script
2791 export def Test(): string 2791 export def Test(): string
2792 return 'profile' 2792 return 'profile'
2793 enddef 2793 enddef
2794 END 2794 END
2795 writefile(lines, 'Xdir/autoload/profileit.vim') 2795 writefile(lines, 'Xdasdir/autoload/profileit.vim')
2796 2796
2797 lines =<< trim END 2797 lines =<< trim END
2798 vim9script 2798 vim9script
2799 assert_equal('debug', debugit#Test()) 2799 assert_equal('debug', debugit#Test())
2800 disass debugit#Test 2800 disass debugit#Test
2801 assert_equal('profile', profileit#Test()) 2801 assert_equal('profile', profileit#Test())
2802 disass profileit#Test 2802 disass profileit#Test
2803 END 2803 END
2804 v9.CheckScriptSuccess(lines) 2804 v9.CheckScriptSuccess(lines)
2805 2805
2806 delete('Xdir', 'rf') 2806 delete('Xdasdir', 'rf')
2807 &rtp = save_rtp 2807 &rtp = save_rtp
2808 enddef 2808 enddef
2809 2809
2810 " test using a vim9script that is auto-loaded from an autocmd 2810 " test using a vim9script that is auto-loaded from an autocmd
2811 def Test_vim9_aucmd_autoload() 2811 def Test_vim9_aucmd_autoload()
2814 export def Test() 2814 export def Test()
2815 echomsg getreg('"') 2815 echomsg getreg('"')
2816 enddef 2816 enddef
2817 END 2817 END
2818 2818
2819 mkdir('Xdir/autoload', 'p') 2819 mkdir('Xauldir/autoload', 'p')
2820 writefile(lines, 'Xdir/autoload/foo.vim') 2820 writefile(lines, 'Xauldir/autoload/foo.vim')
2821 var save_rtp = &rtp 2821 var save_rtp = &rtp
2822 exe 'set rtp^=' .. getcwd() .. '/Xdir' 2822 exe 'set rtp^=' .. getcwd() .. '/Xauldir'
2823 augroup test 2823 augroup test
2824 autocmd TextYankPost * call foo#Test() 2824 autocmd TextYankPost * call foo#Test()
2825 augroup END 2825 augroup END
2826 2826
2827 normal Y 2827 normal Y
2828 2828
2829 augroup test 2829 augroup test
2830 autocmd! 2830 autocmd!
2831 augroup END 2831 augroup END
2832 delete('Xdir', 'rf') 2832 delete('Xauldir', 'rf')
2833 &rtp = save_rtp 2833 &rtp = save_rtp
2834 enddef 2834 enddef
2835 2835
2836 " test using a autoloaded file that is case sensitive 2836 " test using a autoloaded file that is case sensitive
2837 def Test_vim9_autoload_case_sensitive() 2837 def Test_vim9_autoload_case_sensitive()
2840 export def CaseSensitive(): string 2840 export def CaseSensitive(): string
2841 return 'done' 2841 return 'done'
2842 enddef 2842 enddef
2843 END 2843 END
2844 2844
2845 mkdir('Xdir/autoload', 'p') 2845 mkdir('Xcasedir/autoload', 'p')
2846 writefile(lines, 'Xdir/autoload/CaseSensitive.vim') 2846 writefile(lines, 'Xcasedir/autoload/CaseSensitive.vim')
2847 var save_rtp = &rtp 2847 var save_rtp = &rtp
2848 exe 'set rtp^=' .. getcwd() .. '/Xdir' 2848 exe 'set rtp^=' .. getcwd() .. '/Xcasedir'
2849 2849
2850 lines =<< trim END 2850 lines =<< trim END
2851 vim9script 2851 vim9script
2852 import autoload 'CaseSensitive.vim' 2852 import autoload 'CaseSensitive.vim'
2853 assert_equal('done', CaseSensitive.CaseSensitive()) 2853 assert_equal('done', CaseSensitive.CaseSensitive())
2861 import autoload 'casesensitive.vim' 2861 import autoload 'casesensitive.vim'
2862 END 2862 END
2863 v9.CheckScriptFailure(lines, 'E1262:') 2863 v9.CheckScriptFailure(lines, 'E1262:')
2864 endif 2864 endif
2865 2865
2866 delete('Xdir', 'rf') 2866 delete('Xcasedir', 'rf')
2867 &rtp = save_rtp 2867 &rtp = save_rtp
2868 enddef 2868 enddef
2869 2869
2870 " This was causing a crash because suppress_errthrow wasn't reset. 2870 " This was causing a crash because suppress_errthrow wasn't reset.
2871 def Test_vim9_autoload_error() 2871 def Test_vim9_autoload_error()