summaryrefslogtreecommitdiff
path: root/test/c_tests
diff options
context:
space:
mode:
Diffstat (limited to 'test/c_tests')
-rw-r--r--test/c_tests/test_gcc.vader63
1 files changed, 63 insertions, 0 deletions
diff --git a/test/c_tests/test_gcc.vader b/test/c_tests/test_gcc.vader
new file mode 100644
index 00000000..67e4e426
--- /dev/null
+++ b/test/c_tests/test_gcc.vader
@@ -0,0 +1,63 @@
+Before:
+ Save g:ale_run_synchronously
+ Save g:ale_linters
+ Save g:ale_history_log_output
+ Save g:ale_cpp_gcc_options
+
+ silent! cd /testplugin/test/c_tests
+
+ let g:ale_run_synchronously = 1
+ let g:ale_linters = {'c': ['gcc'], 'cpp': ['g++']}
+ let g:ale_history_log_output = 1
+ let g:ale_cpp_gcc_options = '-Wall'
+
+ function! GetCommandOutput()
+ if empty(g:ale_buffer_info[bufnr('')].history)
+ return ''
+ endif
+
+ return join(g:ale_buffer_info[bufnr('')].history[-1].output, "\n")
+ endfunction
+
+After:
+ Restore
+ delfunction GetCommandOutput
+ call ale#linter#Reset()
+ call ale#engine#SetResults(bufnr(''), [])
+ call ale#cleanup#Buffer(bufnr(''))
+
+Given c (A test C file):
+ int main() {
+ return 0
+ }
+
+Execute(Basic errors should be returned for GCC for C files):
+ call ale#Lint()
+
+ AssertEqual [{
+ \ 'lnum': 3,
+ \ 'col': 1,
+ \ }],
+ \ map(getloclist(0), '{''lnum'': v:val.lnum, ''col'': v:val.col}'),
+ \ 'No errors returned! Got: ' . GetCommandOutput()
+
+ Assert match(getloclist(0)[0].text, '\v^expected .*;.* before .*\}.* token$') >= 0,
+ \ 'Invalid error text: ' . getloclist(0)[0].text
+
+Given cpp (A test C++ file):
+ int main() {
+ return 0
+ }
+
+Execute(Basic errors should be returned for GCC for C++ files):
+ call ale#Lint()
+
+ AssertEqual [{
+ \ 'lnum': 3,
+ \ 'col': 1,
+ \ }],
+ \ map(getloclist(0), '{''lnum'': v:val.lnum, ''col'': v:val.col}'),
+ \ 'No errors returned! Got: ' . GetCommandOutput()
+
+ Assert match(getloclist(0)[0].text, '\v^expected .*;.* before .*\}.* token$') >= 0,
+ \ 'Invalid error text: ' . getloclist(0)[0].text