test.vader 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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. " Temporarily patch plug.vim
  13. call system('cp $PLUG_SRC $PLUG_SRC.org')
  14. call writefile(extend(readfile($PLUG_SRC),
  15. \ ['function! ResetPlug()', 'let s:loaded = {}', 'endfunction']), $PLUG_SRC)
  16. set t_Co=256
  17. colo default
  18. pclose
  19. function! PlugStatusSorted()
  20. PlugStatus
  21. %y
  22. q
  23. normal! P
  24. %sort
  25. g/^$/d
  26. endfunction
  27. function! AssertExpect(bang, pat, cnt)
  28. let op = a:bang ? '==#' : '=~#'
  29. AssertEqual a:cnt, len(filter(getline(1, '$'), "v:val ".op." '".a:pat."'"))
  30. endfunction
  31. command! -nargs=+ -bang AssertExpect call AssertExpect('<bang>' == '!', <args>)
  32. function! EnsureLoaded()
  33. if has('vim_starting')
  34. runtime! plugin/**/*.vim
  35. endif
  36. endfunction
  37. function! RmRf(file)
  38. call system(printf('rm -rf "%s"', a:file))
  39. endfunction
  40. function! ReloadPlug()
  41. call ResetPlug()
  42. source $PLUG_SRC
  43. let &rtp = g:base_rtp
  44. endfunction
  45. function! GitBranch(repo)
  46. return system(printf('cd %s && git rev-parse --abbrev-ref HEAD', g:plugs[a:repo].dir))[:-2]
  47. endfunction
  48. function! GitTag(repo)
  49. return system(printf('cd %s && git describe --tags', g:plugs[a:repo].dir))[:-2]
  50. endfunction
  51. function! GitCommit(repo)
  52. return system(printf('cd %s && git rev-parse HEAD', g:plugs[a:repo].dir))[:-2]
  53. endfunction
  54. source $PLUG_SRC
  55. Execute (Print Interpreter Version):
  56. redir => out
  57. if has('ruby')
  58. silent ruby puts 'Ruby: ' + RUBY_VERSION
  59. elseif has('python')
  60. silent python import sys; svi = sys.version_info; print 'Python: {}.{}.{}'.format(svi[0], svi[1], svi[2])
  61. elseif has('python3')
  62. silent python3 import sys; svi = sys.version_info; print('Python: {}.{}.{}'.format(svi[0], svi[1], svi[2]))
  63. endif
  64. redir END
  65. Log substitute(out, '\n', '', 'g')
  66. Include: workflow.vader
  67. Include: regressions.vader
  68. Execute (Cleanup):
  69. silent! call RmRf(g:temp_plugged)
  70. silent! unlet g:plugs g:plug_home g:plug_url_format
  71. silent! unlet g:temp_plugged g:first_rtp g:last_rtp g:base_rtp out
  72. silent! delf PlugStatusSorted
  73. silent! delf AssertExpect
  74. silent! delf PlugUpdated
  75. silent! delf EnsureLoaded
  76. silent! delf ReloadPlug
  77. silent! delc AssertExpect
  78. silent! unmap /
  79. silent! unmap ?
  80. call system('mv $PLUG_SRC.org $PLUG_SRC')
  81. Restore