1
0
forked from aniani/vim

patch 8.2.0898: missing help for a function goes unnoticed

Problem:    Missing help for a function goes unnoticed.
Solution:   Add a test. (Gary Johnson)
This commit is contained in:
Bram Moolenaar
2020-06-04 15:52:25 +02:00
parent ebacddbc16
commit 6b0e528368
3 changed files with 109 additions and 0 deletions

View File

@@ -139,6 +139,7 @@ NEW_TESTS = \
test_fnamemodify \ test_fnamemodify \
test_fold \ test_fold \
test_functions \ test_functions \
test_function_lists \
test_ga \ test_ga \
test_getcwd \ test_getcwd \
test_getvar \ test_getvar \
@@ -374,6 +375,7 @@ NEW_TESTS_RES = \
test_fnameescape.res \ test_fnameescape.res \
test_fold.res \ test_fold.res \
test_functions.res \ test_functions.res \
test_function_lists.res \
test_getcwd.res \ test_getcwd.res \
test_getvar.res \ test_getvar.res \
test_gf.res \ test_gf.res \

View File

@@ -0,0 +1,105 @@
" Test to verify that the three function lists,
"
" global_functions[] in src/evalfunc.c
" *functions* in runtime/doc/eval.txt
" *function-list* in runtime/doc/usr_41.txt
"
" contain the same functions and that the global_functions and ":help
" functions" lists are in ASCII order.
func Test_function_lists()
" Delete any files left over from an earlier run of this test.
call delete("Xglobal_functions.diff")
call delete("Xfunctions.diff")
call delete("Xfunction-list.diff")
" Create a file of the functions in evalfunc.c:global_functions[].
enew!
read ../evalfunc.c
1,/^static funcentry_T global_functions\[\] =$/d
call search('^};$')
.,$d
v/^ {/d
%s/^ {"//
%s/".*//
w! Xglobal_functions
" Verify that those functions are in ASCII order.
sort u
w! Xsorted_global_functions
let l:unequal = assert_equalfile("Xsorted_global_functions", "Xglobal_functions",
\ "global_functions[] not sorted")
if l:unequal && executable("diff")
call system("diff -u Xsorted_global_functions Xglobal_functions > Xglobal_functions.diff")
endif
" Create a file of the functions in evalfunc.c:global_functions[] that are
" not obsolete, sorted in ASCII order.
enew!
read ../evalfunc.c
1,/^static funcentry_T global_functions\[\] =$/d
call search('^};$')
.,$d
v/^ {/d
g/\/\/ obsolete$/d
%s/^ {"//
%s/".*//
sort u
w! Xsorted_current_global_functions
" Verify that the ":help functions" list is complete and in ASCII order.
enew!
read ../../runtime/doc/eval.txt
call search('\*functions\*$')
call search('^USAGE')
1,.d
call search('\*\K\k*()\*$')
.,$d
v/^\S/d
%s/(.*//
let l:lines = getline(1, '$')
call uniq(l:lines)
call writefile(l:lines, "Xfunctions")
let l:unequal = assert_equalfile("Xsorted_current_global_functions", "Xfunctions",
\ "\":help functions\" not sorted or incomplete")
if l:unequal && executable("diff")
call system("diff -u Xsorted_current_global_functions Xfunctions > Xfunctions.diff")
endif
" Verify that the ":help function-list" list is complete.
enew!
read ../../runtime/doc/usr_41.txt
call search('\*function-list\*$')
1,.d
call search('^==*$')
.,$d
v/^\t\S/d
%s/(.*//
%left
sort u
w! Xfunction-list
let l:unequal = assert_equalfile("Xsorted_current_global_functions", "Xfunction-list",
\ "\":help functions-list\" incomplete")
if l:unequal && executable("diff")
call system("diff -u Xsorted_current_global_functions Xfunction-list > Xfunction-list.diff")
endif
" Clean up.
call delete("Xglobal_functions")
call delete("Xsorted_global_functions")
call delete("Xsorted_current_global_functions")
call delete("Xfunctions")
call delete("Xfunction-list")
enew!
endfunc
" vim: shiftwidth=2 sts=2 expandtab

View File

@@ -746,6 +746,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
898,
/**/ /**/
897, 897,
/**/ /**/