test.vader 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. Execute (Initialize test environment):
  2. Save &rtp, g:plugs, g:plug_home, g:plug_window
  3. unlet! g:plugs g:plug_home g:plug_window
  4. let g:plug_url_format = 'file:///tmp/%s'
  5. let g:base_rtp = &rtp
  6. let g:first_rtp = split(&rtp, ',')[0]
  7. let g:last_rtp = split(&rtp, ',')[-1]
  8. let g:temp_plugged = tempname()
  9. if !exists('$PLUG_SRC')
  10. let $PLUG_SRC = globpath(&rtp, 'autoload/plug.vim')
  11. endif
  12. set t_Co=256
  13. colo default
  14. pclose
  15. function! PlugStatusSorted()
  16. PlugStatus
  17. %y
  18. q
  19. normal! P
  20. %sort
  21. g/^$/d
  22. endfunction
  23. function! AssertExpect(bang, pat, cnt)
  24. let op = a:bang ? '==#' : '=~#'
  25. AssertEqual a:cnt, len(filter(getline(1, '$'), "v:val ".op." '".a:pat."'"))
  26. endfunction
  27. command! -nargs=+ -bang AssertExpect call AssertExpect('<bang>' == '!', <args>)
  28. function! EnsureLoaded()
  29. if has('vim_starting')
  30. runtime! plugin/**/*.vim
  31. endif
  32. endfunction
  33. function! RmRf(file)
  34. call system(printf('rm -rf "%s"', a:file))
  35. endfunction
  36. " Reload vim-plug to reset s:-variables
  37. function! ReloadPlug()
  38. let tmpdir = tempname()
  39. let tmp = tmpdir.'/plug.vim'
  40. call mkdir(tmpdir, 'p')
  41. try
  42. call writefile(readfile($PLUG_SRC), tmp)
  43. unlet! g:loaded_plug
  44. execute 'source' tmp
  45. let &rtp = g:base_rtp
  46. finally
  47. call RmRf(tmpdir)
  48. endtry
  49. endfunction
  50. call ReloadPlug()
  51. Execute (Print Interpreter Version):
  52. redir => out
  53. if has('ruby')
  54. silent ruby puts 'Ruby: ' + RUBY_VERSION
  55. elseif has('python')
  56. silent python import sys; svi = sys.version_info; print 'Python: {}.{}.{}'.format(svi[0], svi[1], svi[2])
  57. elseif has('python3')
  58. silent python3 import sys; svi = sys.version_info; print('Python: {}.{}.{}'.format(svi[0], svi[1], svi[2]))
  59. endif
  60. redir END
  61. Log substitute(out, '\n', '', 'g')
  62. Include: workflow.vader
  63. Include: regressions.vader
  64. Execute (Cleanup):
  65. silent! call RmRf(g:temp_plugged)
  66. silent! unlet g:plugs g:plug_home g:plug_url_format
  67. silent! unlet g:temp_plugged g:first_rtp g:last_rtp g:base_rtp out
  68. silent! delf PlugStatusSorted
  69. silent! delf AssertExpect
  70. silent! delf PlugUpdated
  71. silent! delf EnsureLoaded
  72. silent! delf ReloadPlug
  73. silent! delc AssertExpect
  74. silent! unmap /
  75. silent! unmap ?
  76. Restore