summaryrefslogtreecommitdiff
path: root/test/handler
diff options
context:
space:
mode:
Diffstat (limited to 'test/handler')
-rw-r--r--test/handler/test_dockerfile_lint_handler.vader6
-rw-r--r--test/handler/test_puppet_handler.vader26
-rw-r--r--test/handler/test_shellcheck_handler.vader4
-rw-r--r--test/handler/test_verilator_handler.vader48
4 files changed, 81 insertions, 3 deletions
diff --git a/test/handler/test_dockerfile_lint_handler.vader b/test/handler/test_dockerfile_lint_handler.vader
index 619b7bde..a73db8cd 100644
--- a/test/handler/test_dockerfile_lint_handler.vader
+++ b/test/handler/test_dockerfile_lint_handler.vader
@@ -26,21 +26,25 @@ Execute(The dockerfile_lint handler should handle a normal example):
\ 'lnum': -1,
\ 'type': 'E',
\ 'text': "Required LABEL name/key 'Name' is not defined",
+ \ 'detail': "Required LABEL name/key 'Name' is not defined\n\nhttp://docs.projectatomic.io/container-best-practices/#_recommended_labels_for_your_project",
\ },
\ {
\ 'lnum': -1,
\ 'type': 'E',
\ 'text': "Required LABEL name/key 'Version' is not defined",
+ \ 'detail': "Required LABEL name/key 'Version' is not defined\n\nhttp://docs.projectatomic.io/container-best-practices/#_recommended_labels_for_your_project",
\ },
\ {
\ 'lnum': 3,
\ 'type': 'I',
- \ 'text': "the MAINTAINER command is deprecated. MAINTAINER is deprecated in favor of using LABEL since Docker v1.13.0",
+ \ 'text': "the MAINTAINER command is deprecated",
+ \ 'detail': "the MAINTAINER command is deprecated\n\nMAINTAINER is deprecated in favor of using LABEL since Docker v1.13.0\n\nhttps://github.com/docker/cli/blob/master/docs/deprecated.md#maintainer-in-dockerfile",
\ },
\ {
\ 'lnum': -1,
\ 'type': 'I',
\ 'text': "There is no 'CMD' instruction",
+ \ 'detail': "There is no 'CMD' instruction\n\nhttps://docs.docker.com/engine/reference/builder/#cmd",
\ },
\ ],
\ ale_linters#dockerfile#dockerfile_lint#Handle(bufnr(''), [
diff --git a/test/handler/test_puppet_handler.vader b/test/handler/test_puppet_handler.vader
index e73c9dc7..03adc9f0 100644
--- a/test/handler/test_puppet_handler.vader
+++ b/test/handler/test_puppet_handler.vader
@@ -49,3 +49,29 @@ Execute(The puppet handler should parse lines and column correctly):
\ "Error: Could not parse for environment production: Syntax error at ':' at C:/puppet/modules/nginx/manifests/init.pp:54:9",
\ "Error: Could not parse for environment production: Syntax error at 'parameter1' (file: /tmp/modules/mariadb/manifests/slave.pp, line: 45, column: 12)",
\ ])
+
+Execute(The puppet handler should correctly parse errors that are reported before even trying to parse for an environment):
+ " Line Error
+ AssertEqual
+ \ [
+ \ {
+ \ 'lnum': 5,
+ \ 'col': 11,
+ \ 'text': "Illegal attempt to assign to 'a Name'. Not an assignable reference"
+ \ },
+ \ ],
+ \ ale_linters#puppet#puppet#Handle(255, [
+ \ "Error: Illegal attempt to assign to 'a Name'. Not an assignable reference (file: /tmp/modules/waffles/manifests/syrup.pp, line: 5, column: 11)",
+ \ ])
+Execute(The puppet handler should parse lines when end of input is the location):
+ AssertEqual
+ \ [
+ \ {
+ \ 'lnum': 0,
+ \ 'col': 0,
+ \ 'text': "Syntax error at end of input"
+ \ },
+ \ ],
+ \ ale_linters#puppet#puppet#Handle(255, [
+ \ "Error: Could not parse for environment production: Syntax error at end of input (file: /tmp//modules/test/manifests/init.pp)",
+ \ ])
diff --git a/test/handler/test_shellcheck_handler.vader b/test/handler/test_shellcheck_handler.vader
index bfb73ffa..33f12989 100644
--- a/test/handler/test_shellcheck_handler.vader
+++ b/test/handler/test_shellcheck_handler.vader
@@ -22,7 +22,7 @@ Execute(The shellcheck handler should handle basic errors or warnings):
\ 'code': 'SC1068',
\ },
\ ],
- \ ale_linters#sh#shellcheck#Handle(bufnr(''), [
+ \ ale#handlers#shellcheck#Handle(bufnr(''), [
\ '-:2:1: warning: In POSIX sh, ''let'' is not supported. [SC2039]',
\ '-:2:3: error: Don''t put spaces around the = in assignments. [SC1068]',
\ ])
@@ -38,6 +38,6 @@ Execute(The shellcheck handler should handle notes):
\ 'code': 'SC2086',
\ },
\ ],
- \ ale_linters#sh#shellcheck#Handle(bufnr(''), [
+ \ ale#handlers#shellcheck#Handle(bufnr(''), [
\ '-:3:3: note: Double quote to prevent globbing and word splitting. [SC2086]',
\ ])
diff --git a/test/handler/test_verilator_handler.vader b/test/handler/test_verilator_handler.vader
new file mode 100644
index 00000000..5e51b5c9
--- /dev/null
+++ b/test/handler/test_verilator_handler.vader
@@ -0,0 +1,48 @@
+Before:
+ runtime ale_linters/verilog/verilator.vim
+
+After:
+ call ale#linter#Reset()
+
+
+Execute (The verilator handler should parse legacy messages with only line numbers):
+ AssertEqual
+ \ [
+ \ {
+ \ 'lnum': 3,
+ \ 'type': 'E',
+ \ 'text': 'syntax error, unexpected IDENTIFIER'
+ \ },
+ \ {
+ \ 'lnum': 10,
+ \ 'type': 'W',
+ \ 'text': 'Blocking assignments (=) in sequential (flop or latch) block; suggest delayed assignments (<=).'
+ \ },
+ \ ],
+ \ 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 (<=).',
+ \ ])
+
+
+Execute (The verilator handler should parse new format messages with line and column numbers):
+ AssertEqual
+ \ [
+ \ {
+ \ 'lnum': 3,
+ \ 'col' : 1,
+ \ 'type': 'E',
+ \ 'text': 'syntax error, unexpected endmodule, expecting ;'
+ \ },
+ \ {
+ \ 'lnum': 4,
+ \ 'col' : 6,
+ \ 'type': 'W',
+ \ 'text': 'Signal is not used: r'
+ \ },
+ \ ],
+ \ 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',
+ \ ])
+