2017-04-11 19:32:57 +00:00
|
|
|
|
Execute(GCC errors from included files should be parsed correctly):
|
|
|
|
|
AssertEqual
|
|
|
|
|
\ [
|
|
|
|
|
\ {
|
|
|
|
|
\ 'lnum': 3,
|
|
|
|
|
\ 'type': 'E',
|
|
|
|
|
\ 'text': 'Problems were found in the header (See :ALEDetail)',
|
|
|
|
|
\ 'detail': join([
|
|
|
|
|
\ 'broken.h:1:1: error: expected identifier or ''('' before ''{'' token',
|
|
|
|
|
\ ' {{{',
|
|
|
|
|
\ ' ^',
|
|
|
|
|
\ ], "\n"),
|
|
|
|
|
\ },
|
|
|
|
|
\ ],
|
|
|
|
|
\ ale#handlers#gcc#HandleGCCFormat(347, [
|
|
|
|
|
\ 'In file included from <stdin>:3:0:',
|
|
|
|
|
\ 'broken.h:1:1: error: expected identifier or ''('' before ''{'' token',
|
|
|
|
|
\ ' {{{',
|
|
|
|
|
\ ' ^',
|
|
|
|
|
\ ])
|
|
|
|
|
|
|
|
|
|
AssertEqual
|
|
|
|
|
\ [
|
|
|
|
|
\ {
|
|
|
|
|
\ 'lnum': 3,
|
|
|
|
|
\ 'type': 'E',
|
|
|
|
|
\ 'text': 'Problems were found in the header (See :ALEDetail)',
|
|
|
|
|
\ 'detail': join([
|
|
|
|
|
\ 'b.h:1:1: error: expected identifier or ''('' before ''{'' token',
|
|
|
|
|
\ ' {{{',
|
|
|
|
|
\ ' ^',
|
|
|
|
|
\ ], "\n"),
|
|
|
|
|
\ },
|
|
|
|
|
\ ],
|
|
|
|
|
\ ale#handlers#gcc#HandleGCCFormat(347, [
|
|
|
|
|
\ 'In file included from a.h:1:0,',
|
|
|
|
|
\ ' from test.c:3:',
|
|
|
|
|
\ 'b.h:1:1: error: expected identifier or ''('' before ''{'' token',
|
|
|
|
|
\ ' {{{',
|
|
|
|
|
\ ' ^',
|
|
|
|
|
\ ])
|
|
|
|
|
|
|
|
|
|
AssertEqual
|
|
|
|
|
\ [
|
|
|
|
|
\ {
|
|
|
|
|
\ 'lnum': 3,
|
|
|
|
|
\ 'type': 'E',
|
|
|
|
|
\ 'text': 'Problems were found in the header (See :ALEDetail)',
|
|
|
|
|
\ 'detail': join([
|
|
|
|
|
\ 'b.h:1:1: error: unknown type name ‘bad_type’',
|
|
|
|
|
\ ' bad_type x;',
|
|
|
|
|
\ ' ^',
|
|
|
|
|
\ 'b.h:2:1: error: unknown type name ‘other_bad_type’',
|
|
|
|
|
\ ' other_bad_type y;',
|
|
|
|
|
\ ' ^',
|
|
|
|
|
\ ], "\n"),
|
|
|
|
|
\ },
|
|
|
|
|
\ ],
|
|
|
|
|
\ ale#handlers#gcc#HandleGCCFormat(347, [
|
|
|
|
|
\ 'In file included from a.h:1:0,',
|
|
|
|
|
\ ' from test.c:3:',
|
|
|
|
|
\ 'b.h:1:1: error: unknown type name ‘bad_type’',
|
|
|
|
|
\ ' bad_type x;',
|
|
|
|
|
\ ' ^',
|
|
|
|
|
\ 'b.h:2:1: error: unknown type name ‘other_bad_type’',
|
|
|
|
|
\ ' other_bad_type y;',
|
|
|
|
|
\ ' ^',
|
|
|
|
|
\ ])
|
2017-04-29 19:00:29 +00:00
|
|
|
|
|
|
|
|
|
Execute(GCC versions should be parsed correctly):
|
|
|
|
|
AssertEqual [4, 9, 1], ale#handlers#gcc#ParseGCCVersion([
|
|
|
|
|
\ 'g++ (GCC) 4.9.1 20140922 (Red Hat 4.9.1-10)',
|
|
|
|
|
\])
|
|
|
|
|
AssertEqual [4, 8, 4], ale#handlers#gcc#ParseGCCVersion([
|
|
|
|
|
\ 'gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4',
|
|
|
|
|
\ 'Copyright (C) 2013 Free Software Foundation, Inc.',
|
|
|
|
|
\ 'This is free software; see the source for copying conditions. There is NO',
|
|
|
|
|
\ 'warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.',
|
|
|
|
|
\])
|
2017-04-29 23:30:44 +00:00
|
|
|
|
|
|
|
|
|
Execute(The GCC handler shouldn't complain about #pragma once for headers):
|
|
|
|
|
silent file! test.h
|
|
|
|
|
|
|
|
|
|
AssertEqual
|
|
|
|
|
\ [],
|
|
|
|
|
\ ale#handlers#gcc#HandleGCCFormat(347, [
|
|
|
|
|
\ '<stdin>:1:1: warning: #pragma once in main file [enabled by default]',
|
|
|
|
|
\ ])
|
|
|
|
|
|
|
|
|
|
silent file! test.hpp
|
|
|
|
|
|
|
|
|
|
AssertEqual
|
|
|
|
|
\ [],
|
|
|
|
|
\ ale#handlers#gcc#HandleGCCFormat(347, [
|
|
|
|
|
\ '<stdin>:1:1: warning: #pragma once in main file [enabled by default]',
|
|
|
|
|
\ ])
|
2017-05-17 09:10:25 +00:00
|
|
|
|
|
|
|
|
|
Execute(The GCC handler should eliminate duplicated clang errors):
|
|
|
|
|
AssertEqual
|
|
|
|
|
\ [
|
|
|
|
|
\ {'lnum': 2, 'col': 10, 'type': 'E', 'text': '''a.h'' file not found'},
|
|
|
|
|
\ {'lnum': 4, 'col': 10, 'type': 'E', 'text': 'empty filename'},
|
|
|
|
|
\ ],
|
|
|
|
|
\ ale#handlers#gcc#HandleGCCFormat(347, [
|
|
|
|
|
\ '<stdin>:2:10: fatal error: ''a.h'' file not found',
|
|
|
|
|
\ '#include "a.h"',
|
|
|
|
|
\ ' ^~~~~',
|
|
|
|
|
\ '',
|
|
|
|
|
\ '<stdin>:2:10: fatal error: ''a.h'' file not found',
|
|
|
|
|
\ '#include "a.h"',
|
|
|
|
|
\ ' ^~~~~',
|
|
|
|
|
\ '',
|
|
|
|
|
\ '<stdin>:4:10: error: empty filename',
|
|
|
|
|
\ '',
|
|
|
|
|
\ '<stdin>:4:10: error: empty filename',
|
|
|
|
|
\ '#include ""',
|
|
|
|
|
\ ' ^',
|
|
|
|
|
\ '',
|
|
|
|
|
\ '<stdin>:4:10: error: empty filename',
|
|
|
|
|
\ '#include ""',
|
|
|
|
|
\ ' ^',
|
|
|
|
|
\ ])
|