Files
2019-02-22 11:20:48 +01:00

40 lines
1.5 KiB
VimL

" Test gettings lines from a file with a small cache.
let g:IngoLibrary_FileCacheMaxSize = 600
function! s:GetCachedFilenamesByAge()
return map(ingo#file#GetCachedFilesByAge(), 'fnamemodify(v:val, ":t:r")')
endfunction
call vimtest#StartTap()
call vimtap#Plan(15)
call vimtap#Is(len(ingo#file#GetLines('lorem.txt')), 3, 'Get lorem')
call vimtap#Is(s:GetCachedFilenamesByAge(), ['lorem'], 'lorem cached')
call vimtap#Is(len(ingo#file#GetLines('lorem.txt')), 3, 'Get lorem again')
call vimtap#Is(s:GetCachedFilenamesByAge(), ['lorem'], 'lorem cached')
sleep 1
call vimtap#Is(len(ingo#file#GetLines('ipsum.txt')), 4, 'Get ipsum')
call vimtap#Is(s:GetCachedFilenamesByAge(), ['lorem', 'ipsum'], 'lorem > ipsum cached')
sleep 1
call vimtap#Is(len(ingo#file#GetLines('lorem.txt')), 3, 'Get lorem again')
call vimtap#Is(s:GetCachedFilenamesByAge(), ['ipsum', 'lorem'], 'ipsum > lorem cached')
sleep 1
call vimtap#Is(len(ingo#file#GetLines('nulla.txt')), 6, 'Get nulla')
call vimtap#Is(s:GetCachedFilenamesByAge(), ['lorem', 'nulla'], 'lorem > nulla cached; ipsum got evicted')
sleep 1
call vimtap#Is(len(ingo#file#GetLines('ipsum.txt')), 4, 'Get ipsum again')
sleep 1
call vimtap#Is(len(ingo#file#GetLines('nulla.txt')), 6, 'Get nulla again')
call vimtap#Is(s:GetCachedFilenamesByAge(), ['nulla'], 'only nulla cached; ipsum got evicted')
sleep 1
call vimtap#Is(len(ingo#file#GetLines('lorem.txt')), 3, 'Get lorem again')
call vimtap#Is(s:GetCachedFilenamesByAge(), ['nulla', 'lorem'], 'nulla > lorem cached')
call vimtest#Quit()