1*6b0e5283SBram Moolenaar" Test to verify that the three function lists, 2*6b0e5283SBram Moolenaar" 3*6b0e5283SBram Moolenaar" global_functions[] in src/evalfunc.c 4*6b0e5283SBram Moolenaar" *functions* in runtime/doc/eval.txt 5*6b0e5283SBram Moolenaar" *function-list* in runtime/doc/usr_41.txt 6*6b0e5283SBram Moolenaar" 7*6b0e5283SBram Moolenaar" contain the same functions and that the global_functions and ":help 8*6b0e5283SBram Moolenaar" functions" lists are in ASCII order. 9*6b0e5283SBram Moolenaar 10*6b0e5283SBram Moolenaarfunc Test_function_lists() 11*6b0e5283SBram Moolenaar 12*6b0e5283SBram Moolenaar " Delete any files left over from an earlier run of this test. 13*6b0e5283SBram Moolenaar 14*6b0e5283SBram Moolenaar call delete("Xglobal_functions.diff") 15*6b0e5283SBram Moolenaar call delete("Xfunctions.diff") 16*6b0e5283SBram Moolenaar call delete("Xfunction-list.diff") 17*6b0e5283SBram Moolenaar 18*6b0e5283SBram Moolenaar " Create a file of the functions in evalfunc.c:global_functions[]. 19*6b0e5283SBram Moolenaar 20*6b0e5283SBram Moolenaar enew! 21*6b0e5283SBram Moolenaar read ../evalfunc.c 22*6b0e5283SBram Moolenaar 1,/^static funcentry_T global_functions\[\] =$/d 23*6b0e5283SBram Moolenaar call search('^};$') 24*6b0e5283SBram Moolenaar .,$d 25*6b0e5283SBram Moolenaar v/^ {/d 26*6b0e5283SBram Moolenaar %s/^ {"// 27*6b0e5283SBram Moolenaar %s/".*// 28*6b0e5283SBram Moolenaar w! Xglobal_functions 29*6b0e5283SBram Moolenaar 30*6b0e5283SBram Moolenaar " Verify that those functions are in ASCII order. 31*6b0e5283SBram Moolenaar 32*6b0e5283SBram Moolenaar sort u 33*6b0e5283SBram Moolenaar w! Xsorted_global_functions 34*6b0e5283SBram Moolenaar let l:unequal = assert_equalfile("Xsorted_global_functions", "Xglobal_functions", 35*6b0e5283SBram Moolenaar \ "global_functions[] not sorted") 36*6b0e5283SBram Moolenaar if l:unequal && executable("diff") 37*6b0e5283SBram Moolenaar call system("diff -u Xsorted_global_functions Xglobal_functions > Xglobal_functions.diff") 38*6b0e5283SBram Moolenaar endif 39*6b0e5283SBram Moolenaar 40*6b0e5283SBram Moolenaar " Create a file of the functions in evalfunc.c:global_functions[] that are 41*6b0e5283SBram Moolenaar " not obsolete, sorted in ASCII order. 42*6b0e5283SBram Moolenaar 43*6b0e5283SBram Moolenaar enew! 44*6b0e5283SBram Moolenaar read ../evalfunc.c 45*6b0e5283SBram Moolenaar 1,/^static funcentry_T global_functions\[\] =$/d 46*6b0e5283SBram Moolenaar call search('^};$') 47*6b0e5283SBram Moolenaar .,$d 48*6b0e5283SBram Moolenaar v/^ {/d 49*6b0e5283SBram Moolenaar g/\/\/ obsolete$/d 50*6b0e5283SBram Moolenaar %s/^ {"// 51*6b0e5283SBram Moolenaar %s/".*// 52*6b0e5283SBram Moolenaar sort u 53*6b0e5283SBram Moolenaar w! Xsorted_current_global_functions 54*6b0e5283SBram Moolenaar 55*6b0e5283SBram Moolenaar " Verify that the ":help functions" list is complete and in ASCII order. 56*6b0e5283SBram Moolenaar 57*6b0e5283SBram Moolenaar enew! 58*6b0e5283SBram Moolenaar read ../../runtime/doc/eval.txt 59*6b0e5283SBram Moolenaar call search('\*functions\*$') 60*6b0e5283SBram Moolenaar call search('^USAGE') 61*6b0e5283SBram Moolenaar 1,.d 62*6b0e5283SBram Moolenaar call search('\*\K\k*()\*$') 63*6b0e5283SBram Moolenaar .,$d 64*6b0e5283SBram Moolenaar v/^\S/d 65*6b0e5283SBram Moolenaar %s/(.*// 66*6b0e5283SBram Moolenaar let l:lines = getline(1, '$') 67*6b0e5283SBram Moolenaar call uniq(l:lines) 68*6b0e5283SBram Moolenaar call writefile(l:lines, "Xfunctions") 69*6b0e5283SBram Moolenaar let l:unequal = assert_equalfile("Xsorted_current_global_functions", "Xfunctions", 70*6b0e5283SBram Moolenaar \ "\":help functions\" not sorted or incomplete") 71*6b0e5283SBram Moolenaar if l:unequal && executable("diff") 72*6b0e5283SBram Moolenaar call system("diff -u Xsorted_current_global_functions Xfunctions > Xfunctions.diff") 73*6b0e5283SBram Moolenaar endif 74*6b0e5283SBram Moolenaar 75*6b0e5283SBram Moolenaar " Verify that the ":help function-list" list is complete. 76*6b0e5283SBram Moolenaar 77*6b0e5283SBram Moolenaar enew! 78*6b0e5283SBram Moolenaar read ../../runtime/doc/usr_41.txt 79*6b0e5283SBram Moolenaar call search('\*function-list\*$') 80*6b0e5283SBram Moolenaar 1,.d 81*6b0e5283SBram Moolenaar call search('^==*$') 82*6b0e5283SBram Moolenaar .,$d 83*6b0e5283SBram Moolenaar v/^\t\S/d 84*6b0e5283SBram Moolenaar %s/(.*// 85*6b0e5283SBram Moolenaar %left 86*6b0e5283SBram Moolenaar sort u 87*6b0e5283SBram Moolenaar w! Xfunction-list 88*6b0e5283SBram Moolenaar let l:unequal = assert_equalfile("Xsorted_current_global_functions", "Xfunction-list", 89*6b0e5283SBram Moolenaar \ "\":help functions-list\" incomplete") 90*6b0e5283SBram Moolenaar if l:unequal && executable("diff") 91*6b0e5283SBram Moolenaar call system("diff -u Xsorted_current_global_functions Xfunction-list > Xfunction-list.diff") 92*6b0e5283SBram Moolenaar endif 93*6b0e5283SBram Moolenaar 94*6b0e5283SBram Moolenaar " Clean up. 95*6b0e5283SBram Moolenaar 96*6b0e5283SBram Moolenaar call delete("Xglobal_functions") 97*6b0e5283SBram Moolenaar call delete("Xsorted_global_functions") 98*6b0e5283SBram Moolenaar call delete("Xsorted_current_global_functions") 99*6b0e5283SBram Moolenaar call delete("Xfunctions") 100*6b0e5283SBram Moolenaar call delete("Xfunction-list") 101*6b0e5283SBram Moolenaar enew! 102*6b0e5283SBram Moolenaar 103*6b0e5283SBram Moolenaarendfunc 104*6b0e5283SBram Moolenaar 105*6b0e5283SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab 106