mirror of
https://github.com/dense-analysis/ale.git
synced 2025-12-24 13:01:28 +08:00
Verilator current file search path (#3500)
* Simplify verilator linter using ale command format strings * Verilator Linter: Restructure linter command tests * Verilator Linter: adds to the handler test the returned filename * Verilator Linter: add the current file path to the search path * Verilator Linter: Add the search path to the tests Co-authored-by: TG <tarik.graba@telecom-paris.fr>
This commit is contained in:
14
test/command_callback/test_verilator_command_callback.vader
Normal file
14
test/command_callback/test_verilator_command_callback.vader
Normal file
@@ -0,0 +1,14 @@
|
||||
Before:
|
||||
call ale#assert#SetUpLinterTest('verilog', 'verilator')
|
||||
|
||||
After:
|
||||
call ale#assert#TearDownLinterTest()
|
||||
|
||||
Execute(The default verilator command should be correct):
|
||||
AssertLinter 'verilator', 'verilator --lint-only -Wall -Wno-DECLFILENAME -I%s:h %t'
|
||||
|
||||
Execute(verilator options should be configurable):
|
||||
" Additional args for the linter
|
||||
let g:ale_verilog_verilator_options = '-sv --default-language "1800-2012"'
|
||||
|
||||
AssertLinter 'verilator', 'verilator --lint-only -Wall -Wno-DECLFILENAME -I%s:h -sv --default-language "1800-2012" %t'
|
||||
@@ -11,17 +11,19 @@ Execute (The verilator handler should parse legacy messages with only line numbe
|
||||
\ {
|
||||
\ 'lnum': 3,
|
||||
\ 'type': 'E',
|
||||
\ 'text': 'syntax error, unexpected IDENTIFIER'
|
||||
\ 'text': 'syntax error, unexpected IDENTIFIER',
|
||||
\ 'filename': 'foo.v'
|
||||
\ },
|
||||
\ {
|
||||
\ 'lnum': 10,
|
||||
\ 'type': 'W',
|
||||
\ 'text': 'Blocking assignments (=) in sequential (flop or latch) block; suggest delayed assignments (<=).'
|
||||
\ 'text': 'Blocking assignments (=) in sequential (flop or latch) block; suggest delayed assignments (<=).',
|
||||
\ 'filename': 'bar.v'
|
||||
\ },
|
||||
\ ],
|
||||
\ ale_linters#verilog#verilator#Handle(bufnr(''), [
|
||||
\ '%Error: foo_verilator_linted.v:3: syntax error, unexpected IDENTIFIER',
|
||||
\ '%Warning-BLKSEQ: bar_verilator_linted.v:10: Blocking assignments (=) in sequential (flop or latch) block; suggest delayed assignments (<=).',
|
||||
\ '%Error: foo.v:3: syntax error, unexpected IDENTIFIER',
|
||||
\ '%Warning-BLKSEQ: bar.v:10: Blocking assignments (=) in sequential (flop or latch) block; suggest delayed assignments (<=).',
|
||||
\ ])
|
||||
|
||||
|
||||
@@ -32,17 +34,19 @@ Execute (The verilator handler should parse new format messages with line and co
|
||||
\ 'lnum': 3,
|
||||
\ 'col' : 1,
|
||||
\ 'type': 'E',
|
||||
\ 'text': 'syntax error, unexpected endmodule, expecting ;'
|
||||
\ 'text': 'syntax error, unexpected endmodule, expecting ;',
|
||||
\ 'filename': 'bar.v'
|
||||
\ },
|
||||
\ {
|
||||
\ 'lnum': 4,
|
||||
\ 'col' : 6,
|
||||
\ 'type': 'W',
|
||||
\ 'text': 'Signal is not used: r'
|
||||
\ 'text': 'Signal is not used: r',
|
||||
\ 'filename': 'foo.v'
|
||||
\ },
|
||||
\ ],
|
||||
\ ale_linters#verilog#verilator#Handle(bufnr(''), [
|
||||
\ '%Error: bar_verilator_linted.v:3:1: syntax error, unexpected endmodule, expecting ;',
|
||||
\ '%Warning-UNUSED: foo_verilator_linted.v:4:6: Signal is not used: r',
|
||||
\ '%Error: bar.v:3:1: syntax error, unexpected endmodule, expecting ;',
|
||||
\ '%Warning-UNUSED: foo.v:4:6: Signal is not used: r',
|
||||
\ ])
|
||||
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
Before:
|
||||
Save g:ale_verilog_verilator_options
|
||||
let g:ale_verilog_verilator_options = ''
|
||||
|
||||
After:
|
||||
Restore
|
||||
call ale#linter#Reset()
|
||||
|
||||
Execute(Set Verilog Verilator linter additional options to `-sv --default-language "1800-2012"`):
|
||||
runtime! ale_linters/verilog/verilator.vim
|
||||
|
||||
" Additional args for the linter
|
||||
let g:ale_verilog_verilator_options = '-sv --default-language "1800-2012"'
|
||||
|
||||
call ale#Queue(0)
|
||||
|
||||
let g:run_cmd = ale_linters#verilog#verilator#GetCommand(bufnr(''))
|
||||
let g:matched = match(g:run_cmd, '\s' . g:ale_verilog_verilator_options . '\s')
|
||||
|
||||
" match returns -1 if not found
|
||||
AssertNotEqual
|
||||
\ g:matched ,
|
||||
\ -1 ,
|
||||
\ 'Additionnal arguments not found in the run command'
|
||||
Reference in New Issue
Block a user