forked from aniani/vim
patch 8.1.0086: no tests for libcall() and libcallnr()
Problem: No tests for libcall() and libcallnr(). Solution: Add tests. (Dominique Pelle, closes #2982)
This commit is contained in:
@@ -948,3 +948,39 @@ func Test_reg_executing_and_recording()
|
|||||||
delfunc s:save_reg_stat
|
delfunc s:save_reg_stat
|
||||||
unlet s:reg_stat
|
unlet s:reg_stat
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_libcall_libcallnr()
|
||||||
|
if !has('libcall')
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
if has('win32')
|
||||||
|
let libc = 'msvcrt.dll'
|
||||||
|
elseif has('mac')
|
||||||
|
let libc = 'libSystem.B.dylib'
|
||||||
|
else
|
||||||
|
" On Unix, libc.so can be in various places.
|
||||||
|
" Interestingly, using an empty string for the 1st argument of libcall
|
||||||
|
" allows to call functions from libc which is not documented.
|
||||||
|
let libc = ''
|
||||||
|
endif
|
||||||
|
|
||||||
|
if has('win32')
|
||||||
|
call assert_equal($USERPROFILE, libcall(libc, 'getenv', 'USERPROFILE'))
|
||||||
|
else
|
||||||
|
call assert_equal($HOME, libcall(libc, 'getenv', 'HOME'))
|
||||||
|
endif
|
||||||
|
|
||||||
|
" If function returns NULL, libcall() should return an empty string.
|
||||||
|
call assert_equal('', libcall(libc, 'getenv', 'X_ENV_DOES_NOT_EXIT'))
|
||||||
|
|
||||||
|
" Test libcallnr() with string and integer argument.
|
||||||
|
call assert_equal(4, libcallnr(libc, 'strlen', 'abcd'))
|
||||||
|
call assert_equal(char2nr('A'), libcallnr(libc, 'toupper', char2nr('a')))
|
||||||
|
|
||||||
|
call assert_fails("call libcall(libc, 'Xdoesnotexist_', '')", 'E364:')
|
||||||
|
call assert_fails("call libcallnr(libc, 'Xdoesnotexist_', '')", 'E364:')
|
||||||
|
|
||||||
|
call assert_fails("call libcall('Xdoesnotexist_', 'getenv', 'HOME')", 'E364:')
|
||||||
|
call assert_fails("call libcallnr('Xdoesnotexist_', 'strlen', 'abcd')", 'E364:')
|
||||||
|
endfunc
|
||||||
|
@@ -761,6 +761,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 */
|
||||||
|
/**/
|
||||||
|
86,
|
||||||
/**/
|
/**/
|
||||||
85,
|
85,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user