16b0e5283SBram Moolenaar" Test to verify that the three function lists, 26b0e5283SBram Moolenaar" 36b0e5283SBram Moolenaar" global_functions[] in src/evalfunc.c 46b0e5283SBram Moolenaar" *functions* in runtime/doc/eval.txt 56b0e5283SBram Moolenaar" *function-list* in runtime/doc/usr_41.txt 66b0e5283SBram Moolenaar" 76b0e5283SBram Moolenaar" contain the same functions and that the global_functions and ":help 86b0e5283SBram Moolenaar" functions" lists are in ASCII order. 96b0e5283SBram Moolenaar 106b0e5283SBram Moolenaarfunc Test_function_lists() 116b0e5283SBram Moolenaar 126b0e5283SBram Moolenaar " Delete any files left over from an earlier run of this test. 136b0e5283SBram Moolenaar 146b0e5283SBram Moolenaar call delete("Xglobal_functions.diff") 156b0e5283SBram Moolenaar call delete("Xfunctions.diff") 166b0e5283SBram Moolenaar call delete("Xfunction-list.diff") 176b0e5283SBram Moolenaar 186b0e5283SBram Moolenaar " Create a file of the functions in evalfunc.c:global_functions[]. 196b0e5283SBram Moolenaar 206b0e5283SBram Moolenaar enew! 216b0e5283SBram Moolenaar read ../evalfunc.c 226b0e5283SBram Moolenaar 1,/^static funcentry_T global_functions\[\] =$/d 236b0e5283SBram Moolenaar call search('^};$') 246b0e5283SBram Moolenaar .,$d 256b0e5283SBram Moolenaar v/^ {/d 266b0e5283SBram Moolenaar %s/^ {"// 276b0e5283SBram Moolenaar %s/".*// 286b0e5283SBram Moolenaar w! Xglobal_functions 296b0e5283SBram Moolenaar 306b0e5283SBram Moolenaar " Verify that those functions are in ASCII order. 316b0e5283SBram Moolenaar 326b0e5283SBram Moolenaar sort u 336b0e5283SBram Moolenaar w! Xsorted_global_functions 346b0e5283SBram Moolenaar let l:unequal = assert_equalfile("Xsorted_global_functions", "Xglobal_functions", 356b0e5283SBram Moolenaar \ "global_functions[] not sorted") 366b0e5283SBram Moolenaar if l:unequal && executable("diff") 376b0e5283SBram Moolenaar call system("diff -u Xsorted_global_functions Xglobal_functions > Xglobal_functions.diff") 386b0e5283SBram Moolenaar endif 396b0e5283SBram Moolenaar 406b0e5283SBram Moolenaar " Create a file of the functions in evalfunc.c:global_functions[] that are 416b0e5283SBram Moolenaar " not obsolete, sorted in ASCII order. 426b0e5283SBram Moolenaar 436b0e5283SBram Moolenaar enew! 446b0e5283SBram Moolenaar read ../evalfunc.c 456b0e5283SBram Moolenaar 1,/^static funcentry_T global_functions\[\] =$/d 466b0e5283SBram Moolenaar call search('^};$') 476b0e5283SBram Moolenaar .,$d 486b0e5283SBram Moolenaar v/^ {/d 496b0e5283SBram Moolenaar g/\/\/ obsolete$/d 506b0e5283SBram Moolenaar %s/^ {"// 516b0e5283SBram Moolenaar %s/".*// 526b0e5283SBram Moolenaar sort u 539155825bSBram Moolenaar w! ++ff=unix Xsorted_current_global_functions 546b0e5283SBram Moolenaar 556b0e5283SBram Moolenaar " Verify that the ":help functions" list is complete and in ASCII order. 566b0e5283SBram Moolenaar 576b0e5283SBram Moolenaar enew! 581bb0da25SBram Moolenaar if filereadable('../../doc/eval.txt') 591bb0da25SBram Moolenaar " unpacked MS-Windows zip archive 601bb0da25SBram Moolenaar read ../../doc/eval.txt 611bb0da25SBram Moolenaar else 626b0e5283SBram Moolenaar read ../../runtime/doc/eval.txt 631bb0da25SBram Moolenaar endif 646b0e5283SBram Moolenaar call search('\*functions\*$') 656b0e5283SBram Moolenaar call search('^USAGE') 666b0e5283SBram Moolenaar 1,.d 676b0e5283SBram Moolenaar call search('\*\K\k*()\*$') 686b0e5283SBram Moolenaar .,$d 696b0e5283SBram Moolenaar v/^\S/d 706b0e5283SBram Moolenaar %s/(.*// 716b0e5283SBram Moolenaar let l:lines = getline(1, '$') 726b0e5283SBram Moolenaar call uniq(l:lines) 736b0e5283SBram Moolenaar call writefile(l:lines, "Xfunctions") 746b0e5283SBram Moolenaar let l:unequal = assert_equalfile("Xsorted_current_global_functions", "Xfunctions", 756b0e5283SBram Moolenaar \ "\":help functions\" not sorted or incomplete") 766b0e5283SBram Moolenaar if l:unequal && executable("diff") 776b0e5283SBram Moolenaar call system("diff -u Xsorted_current_global_functions Xfunctions > Xfunctions.diff") 786b0e5283SBram Moolenaar endif 796b0e5283SBram Moolenaar 806b0e5283SBram Moolenaar " Verify that the ":help function-list" list is complete. 816b0e5283SBram Moolenaar 826b0e5283SBram Moolenaar enew! 831bb0da25SBram Moolenaar if filereadable('../../doc/usr_41.txt') 841bb0da25SBram Moolenaar " unpacked MS-Windows zip archive 851bb0da25SBram Moolenaar read ../../doc/usr_41.txt 861bb0da25SBram Moolenaar else 876b0e5283SBram Moolenaar read ../../runtime/doc/usr_41.txt 881bb0da25SBram Moolenaar endif 896b0e5283SBram Moolenaar call search('\*function-list\*$') 906b0e5283SBram Moolenaar 1,.d 916b0e5283SBram Moolenaar call search('^==*$') 926b0e5283SBram Moolenaar .,$d 936b0e5283SBram Moolenaar v/^\t\S/d 946b0e5283SBram Moolenaar %s/(.*// 956b0e5283SBram Moolenaar %left 966b0e5283SBram Moolenaar sort u 979155825bSBram Moolenaar w! ++ff=unix Xfunction-list 986b0e5283SBram Moolenaar let l:unequal = assert_equalfile("Xsorted_current_global_functions", "Xfunction-list", 99*f7a023e5SBram Moolenaar \ "\":help function-list\" incomplete") 1006b0e5283SBram Moolenaar if l:unequal && executable("diff") 1016b0e5283SBram Moolenaar call system("diff -u Xsorted_current_global_functions Xfunction-list > Xfunction-list.diff") 1026b0e5283SBram Moolenaar endif 1036b0e5283SBram Moolenaar 1046b0e5283SBram Moolenaar " Clean up. 1056b0e5283SBram Moolenaar call delete("Xglobal_functions") 1066b0e5283SBram Moolenaar call delete("Xsorted_global_functions") 1076b0e5283SBram Moolenaar call delete("Xsorted_current_global_functions") 1086b0e5283SBram Moolenaar call delete("Xfunctions") 1096b0e5283SBram Moolenaar call delete("Xfunction-list") 1106b0e5283SBram Moolenaar enew! 1116b0e5283SBram Moolenaar 1126b0e5283SBram Moolenaarendfunc 1136b0e5283SBram Moolenaar 1146b0e5283SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab 115