From 072750137f752c0a09fd1ff493da2bea6519b7ef Mon Sep 17 00:00:00 2001 From: Dan George Date: Sat, 20 Nov 2021 02:01:32 -0800 Subject: Fix --file-filter option on cppcheck command (#3987) * Add cppcheck handler match on misra msg * Fix cppcheck --file-filter setting This time, the tests and actually usage both work. Co-authored-by: Dan George --- test/linter/test_c_cppcheck.vader | 11 +++++++---- test/linter/test_cpp_cppcheck.vader | 11 +++++++---- 2 files changed, 14 insertions(+), 8 deletions(-) (limited to 'test/linter') diff --git a/test/linter/test_c_cppcheck.vader b/test/linter/test_c_cppcheck.vader index c0611143..0cc3a5d3 100644 --- a/test/linter/test_c_cppcheck.vader +++ b/test/linter/test_c_cppcheck.vader @@ -3,6 +3,7 @@ Before: let b:command_tail = ' -q --language=c --template=' . ale#Escape('{file}:{line}:{column}: {severity}:{inconclusive:inconclusive:} {message} [{id}]\\n{code}') . ' --enable=style -I' . ale#Escape(ale#path#Simplify(g:dir)) .' %t' After: + unlet! b:rel_file_path unlet! b:command_tail call ale#assert#TearDownLinterTest() @@ -15,25 +16,27 @@ Execute(The executable should be configurable): AssertLinter 'foobar', ale#Escape('foobar') . b:command_tail Execute(cppcheck for C should detect compile_commands.json files): - call ale#test#SetFilename('../test-files/cppcheck/one/foo.c') + let b:rel_file_path = '../test-files/cppcheck/one/foo.c' + call ale#test#SetFilename(b:rel_file_path) AssertLinterCwd ale#path#Simplify(g:dir . '/../test-files/cppcheck/one') AssertLinter 'cppcheck', ale#Escape('cppcheck') \ . ' -q --language=c' \ . ' --template=' . ale#Escape('{file}:{line}:{column}: {severity}:{inconclusive:inconclusive:} {message} [{id}]\\n{code}') \ . ' --project=' . ale#Escape('compile_commands.json') - \ . ' --file-filter=' . ale#Escape('foo.c') + \ . ' --file-filter=' . ale#Escape(ale#test#GetFilename(b:rel_file_path)) \ . ' --enable=style %t' Execute(cppcheck for C should detect compile_commands.json files in build directories): - call ale#test#SetFilename('../test-files/cppcheck/with_build_dir/foo.c') + let b:rel_file_path = '../test-files/cppcheck/with_build_dir/foo.c' + call ale#test#SetFilename(b:rel_file_path) AssertLinterCwd ale#path#Simplify(g:dir . '/../test-files/cppcheck/with_build_dir') AssertLinter 'cppcheck', ale#Escape('cppcheck') \ . ' -q --language=c' \ . ' --template=' . ale#Escape('{file}:{line}:{column}: {severity}:{inconclusive:inconclusive:} {message} [{id}]\\n{code}') \ . ' --project=' . ale#Escape(ale#path#Simplify('build/compile_commands.json')) - \ . ' --file-filter=' . ale#Escape('foo.c') + \ . ' --file-filter=' . ale#Escape(ale#test#GetFilename(b:rel_file_path)) \ . ' --enable=style %t' Execute(cppcheck for C should include file dir if compile_commands.json file is not found): diff --git a/test/linter/test_cpp_cppcheck.vader b/test/linter/test_cpp_cppcheck.vader index 2cde1da4..21d6707d 100644 --- a/test/linter/test_cpp_cppcheck.vader +++ b/test/linter/test_cpp_cppcheck.vader @@ -9,6 +9,7 @@ After: set buftype=nofile endif + unlet! b:rel_file_path unlet! b:command_tail call ale#assert#TearDownLinterTest() @@ -21,25 +22,27 @@ Execute(The executable should be configurable): AssertLinter 'foobar', ale#Escape('foobar') . b:command_tail Execute(cppcheck for C++ should detect compile_commands.json files): - call ale#test#SetFilename('../test-files/cppcheck/one/foo.cpp') + let b:rel_file_path = '../test-files/cppcheck/one/foo.cpp' + call ale#test#SetFilename(b:rel_file_path) AssertLinterCwd ale#path#Simplify(g:dir . '/../test-files/cppcheck/one') AssertLinter 'cppcheck', ale#Escape('cppcheck') \ . ' -q --language=c++' \ . ' --template=' . ale#Escape('{file}:{line}:{column}: {severity}:{inconclusive:inconclusive:} {message} [{id}]\\n{code}') \ . ' --project=' . ale#Escape('compile_commands.json') - \ . ' --file-filter=' . ale#Escape('foo.cpp') + \ . ' --file-filter=' . ale#Escape(ale#test#GetFilename(b:rel_file_path)) \ . ' --enable=style %t' Execute(cppcheck for C++ should detect compile_commands.json files in build directories): - call ale#test#SetFilename('../test-files/cppcheck/with_build_dir/foo.cpp') + let b:rel_file_path = '../test-files/cppcheck/with_build_dir/foo.cpp' + call ale#test#SetFilename(b:rel_file_path) AssertLinterCwd ale#path#Simplify(g:dir . '/../test-files/cppcheck/with_build_dir') AssertLinter 'cppcheck', ale#Escape('cppcheck') \ . ' -q --language=c++' \ . ' --template=' . ale#Escape('{file}:{line}:{column}: {severity}:{inconclusive:inconclusive:} {message} [{id}]\\n{code}') \ . ' --project=' . ale#Escape(ale#path#Simplify('build/compile_commands.json')) - \ . ' --file-filter=' . ale#Escape('foo.cpp') + \ . ' --file-filter=' . ale#Escape(ale#test#GetFilename(b:rel_file_path)) \ . ' --enable=style %t' Execute(cppcheck for C++ should include file dir if compile_commands.json file is not found): -- cgit v1.2.3