diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/command_callback/test_cuda_nvcc_command_callbacks.vader | 34 | ||||
-rw-r--r-- | test/handler/test_cuda_nvcc_handler.vader | 29 |
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".', + \ ]) |