summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/command_callback/test_cuda_nvcc_command_callbacks.vader34
-rw-r--r--test/handler/test_cuda_nvcc_handler.vader29
2 files changed, 63 insertions, 0 deletions
diff --git a/test/command_callback/test_cuda_nvcc_command_callbacks.vader b/test/command_callback/test_cuda_nvcc_command_callbacks.vader
new file mode 100644
index 00000000..88123e5d
--- /dev/null
+++ b/test/command_callback/test_cuda_nvcc_command_callbacks.vader
@@ -0,0 +1,34 @@
+Before:
+ Save g:ale_cuda_nvcc_executable
+ Save g:ale_cuda_nvcc_options
+
+ unlet! g:ale_cuda_nvcc_executable
+ unlet! b:ale_cuda_nvcc_executable
+ unlet! g:ale_cuda_nvcc_options
+ unlet! b:ale_cuda_nvcc_options
+
+ runtime ale_linters/cuda/nvcc.vim
+
+After:
+ Restore
+ unlet! b:ale_cuda_nvcc_executable
+ unlet! b:ale_cuda_nvcc_options
+ call ale#linter#Reset()
+
+Execute(The executable should be configurable):
+ AssertEqual 'nvcc', ale_linters#cuda#nvcc#GetExecutable(bufnr(''))
+
+ let b:ale_cuda_nvcc_executable = 'foobar'
+
+ AssertEqual 'foobar', ale_linters#cuda#nvcc#GetExecutable(bufnr(''))
+
+Execute(The executable should be used in the command):
+ AssertEqual
+ \ ale#Escape('nvcc') . ' -cuda -std=c++11 %s -o /dev/null',
+ \ ale_linters#cuda#nvcc#GetCommand(bufnr(''))
+
+ let b:ale_cuda_nvcc_executable = 'foobar'
+
+ AssertEqual
+ \ ale#Escape('foobar') . ' -cuda -std=c++11 %s -o /dev/null',
+ \ ale_linters#cuda#nvcc#GetCommand(bufnr(''))
diff --git a/test/handler/test_cuda_nvcc_handler.vader b/test/handler/test_cuda_nvcc_handler.vader
new file mode 100644
index 00000000..03297ab7
--- /dev/null
+++ b/test/handler/test_cuda_nvcc_handler.vader
@@ -0,0 +1,29 @@
+Execute(The cuda nvcc handler should parse errors from multiple files for NVCC 8.0):
+ AssertEqual
+ \ [
+ \ {
+ \ 'lnum': 1,
+ \ 'type': 'E',
+ \ 'text': 'this declaration has no storage class or type specifier',
+ \ 'filename': '/tmp/cudatest/test.cu',
+ \ },
+ \ {
+ \ 'lnum': 2,
+ \ 'type': 'E',
+ \ 'text': 'attribute "global" does not apply here',
+ \ 'filename': '/tmp/cudatest/common.h',
+ \ },
+ \ {
+ \ 'lnum': 2,
+ \ 'type': 'E',
+ \ 'text': 'expected a ";"',
+ \ 'filename': '/tmp/cudatest/common.h',
+ \ },
+ \ ],
+ \ ale_linters#cuda#nvcc#HandleNVCCFormat(0, [
+ \ '/tmp/cudatest/test.cu(1): error: this declaration has no storage class or type specifier',
+ \ '/tmp/cudatest/common.h(2): error: attribute "global" does not apply here',
+ \ '/tmp/cudatest/common.h(2): error: expected a ";"',
+ \ 'At end of source: warning: parsing restarts here after previous syntax error',
+ \ '3 errors detected in the compilation of "/tmp/tmpxft_00003a9f_00000000-7_test.cpp1.ii".',
+ \ ])