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