summaryrefslogtreecommitdiffstats
path: root/scripts/test
blob: f22c224c12e73a733319f0b0bcadcaf31aff3537 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/usr/bin/env ruby

def run_script(src)
  system("bash", "-c", src)
end

def run_vimscript(src)
  wrapper = <<~EOF
    vim --clean --not-a-term -u <(cat <<- "EOM"
    let g:polyglot_test = 1
    set nocompatible
    let &rtp='$PWD,' . &rtp
    filetype plugin indent on
    syntax on
    set t_ti= t_te=
    set shortmess+=F
    set noswapfile
    set nocp
    set nomore
    func! Log(msg)
      if $DEV != '1'
        echo a:msg
      endif
    endfunc
    EOM
    ) -S <(cat <<- "EOM"
      try
      #{src}
      catch
        echo v:exception
        echo v:throwpoint
      endtry
      qa!
    EOM
    ) | perl -pe 's/\e\[[0-9;]*[a-zA-Z]//g'
  EOF

  run_script(wrapper)
end

test_helptags = <<~EOF
  if ! expect -c 'set timeout 1' -c 'spawn vim -N --clean -c "set nomore | :helptags ./doc | q"' -c 'expect "ENTER" { exit 1 }' > /dev/null; then
    echo "Please ensure ':helptags ./doc' works properly"
    exit 1
  fi
EOF

run_vimscript('source tests/filetypes.vim')
# run_vimscript('source tests/extensions.vim')
run_script(test_helptags)

# run_vimscript("
#   func! TestIndent(file)
#     :e a:file
#     echo 'ok'
#     echo &filetype
#   endfunc
#
#   #{Dir['tests/indent/**/test.*'].map { |f| "call TestIndent(\"#{f}\")"}.join("\n")}
# ")