Before: call ale#test#SetDirectory('/testplugin/test/handler') After: call ale#test#RestoreDirectory() Execute(Basic errors should be handled by cppcheck): call ale#test#SetFilename('test.cpp') AssertEqual \ [ \ { \ 'lnum': 5, \ 'type': 'E', \ 'text': 'Array ''a[10]'' accessed at index 10, which is out of bounds', \ }, \ { \ 'lnum': 7, \ 'type': 'W', \ 'text': 'Some other problem', \ }, \ ], \ ale#handlers#cppcheck#HandleCppCheckFormat(bufnr(''), [ \ '[test.cpp:5]: (error) Array ''a[10]'' accessed at index 10, which is out of bounds', \ '[test.cpp:7]: (warning) Some other problem', \ ]) Execute(Problems from other files should be ignored by cppcheck): call ale#test#SetFilename('test.cpp') AssertEqual \ [ \ ], \ ale#handlers#cppcheck#HandleCppCheckFormat(bufnr(''), [ \ '[bar.cpp:5]: (error) Array ''a[10]'' accessed at index 10, which is out of bounds', \ ])