ale/test/handler/test_swipl_handler.vader

156 lines
5.8 KiB
Plaintext

Before:
runtime ale_linters/prolog/swipl.vim
After:
call ale#linter#Reset()
Execute (The swipl handler should handle oneline warning / error):
call ale#test#SetFilename('test.pl')
AssertEqual
\ [
\ {
\ 'lnum': 5,
\ 'col': 1,
\ 'text': 'Syntax error: Operator expected',
\ 'type': 'E',
\ },
\ ],
\ ale_linters#prolog#swipl#Handle(bufnr(''), [
\ 'ERROR: /path/to/test.pl:5:1: Syntax error: Operator expected',
\ ])
Execute (The swipl handler should handle a warning / error of two lines):
call ale#test#SetFilename('test.pl')
AssertEqual
\ [
\ {
\ 'lnum': 9,
\ 'col': 0,
\ 'text': 'Singleton variables: [M]',
\ 'type': 'W',
\ },
\ ],
\ ale_linters#prolog#swipl#Handle(bufnr(''), [
\ 'Warning: /path/to/test.pl:9:',
\ ' Singleton variables: [M]',
\ ])
Execute (The swipl handler should handle a warning / error of two lines in the new format):
call ale#test#SetFilename('test.pl')
AssertEqual
\ [
\ {
\ 'lnum': 9,
\ 'col': 0,
\ 'text': 'Singleton variables: [M]',
\ 'type': 'W',
\ },
\ ],
\ ale_linters#prolog#swipl#Handle(bufnr(''), [
\ 'Warning: /path/to/test.pl:9:',
\ 'Warning: Singleton variables: [M]',
\ ])
Execute (The swipl handler should join three or more lines with '. '):
call ale#test#SetFilename('test.pl')
AssertEqual
\ [
\ {
\ 'lnum': 10,
\ 'col': 0,
\ 'text': 'Clauses of fib/2 are not together in the source-file. Earlier definition at /path/to/test.pl:7. Current predicate: f/0. Use :- discontiguous fib/2. to suppress this message',
\ 'type': 'W',
\ },
\ ],
\ ale_linters#prolog#swipl#Handle(bufnr(''), [
\ 'Warning: /path/to/test.pl:10:',
\ ' Clauses of fib/2 are not together in the source-file',
\ ' Earlier definition at /path/to/test.pl:7',
\ ' Current predicate: f/0',
\ ' Use :- discontiguous fib/2. to suppress this message',
\ ])
Execute (The swipl handler should ignore warnings / errors 'No permission to call sandboxed ...'):
call ale#test#SetFilename('test.pl')
AssertEqual
\ [],
\ ale_linters#prolog#swipl#Handle(bufnr(''), [
\ 'ERROR: /path/to/test.pl:11:',
\ ' No permission to call sandboxed `''$set_predicate_attribute''(_G3416:_G3417,_G3413,_G3414)''',
\ ' Reachable from:',
\ ' system:''$set_pattr''(A,B,C,D)',
\ ' system:''$set_pattr''(vimscript:A,B,C)',
\ ' vimscript: (multifile A)',
\ 'ERROR: /path/to/test.pl:12:',
\ ' No permission to call sandboxed `''$set_predicate_attribute''(_G205:_G206,_G202,_G203)''',
\ ' Reachable from:',
\ ' system:''$set_pattr''(A,B,C,D)',
\ ' system:''$set_pattr''(vimscript:A,B,C)',
\ ' vimscript: (multifile A)',
\ 'ERROR: /path/to/test.pl:13:',
\ ' No permission to call sandboxed `''$set_predicate_attribute''(_G1808:_G1809,_G1805,_G1806)''',
\ ' Reachable from:',
\ ' system:''$set_pattr''(A,B,C,D)',
\ ' system:''$set_pattr''(vimscript:A,B,C)',
\ ' vimscript: (multifile A)',
\ ])
Execute (The swipl handler should join three or more lines with '. ' on latest swipl):
call ale#test#SetFilename('test.pl')
AssertEqual
\ [
\ {
\ 'lnum': 10,
\ 'col': 0,
\ 'text': 'Clauses of fib/2 are not together in the source-file. Earlier definition at /path/to/test.pl:7. Current predicate: f/0. Use :- discontiguous fib/2. to suppress this message',
\ 'type': 'W',
\ },
\ ],
\ ale_linters#prolog#swipl#Handle(bufnr(''), [
\ 'Warning: /path/to/test.pl:10:',
\ 'Warning: Clauses of fib/2 are not together in the source-file',
\ 'Warning: Earlier definition at /path/to/test.pl:7',
\ 'Warning: Current predicate: f/0',
\ 'Warning: Use :- discontiguous fib/2. to suppress this message',
\ ])
Execute (The swipl handler should ignore warnings / errors 'No permission to call sandboxed with latest swpl...'):
call ale#test#SetFilename('test.pl')
AssertEqual
\ [],
\ ale_linters#prolog#swipl#Handle(bufnr(''), [
\ 'ERROR: /path/to/test.pl:11:',
\ 'ERROR: No permission to call sandboxed `''$set_predicate_attribute''(_G3416:_G3417,_G3413,_G3414)''',
\ 'ERROR: Reachable from:',
\ 'ERROR: system:''$set_pattr''(A,B,C,D)',
\ 'ERROR: system:''$set_pattr''(vimscript:A,B,C)',
\ 'ERROR: vimscript: (multifile A)',
\ 'ERROR: /path/to/test.pl:12:',
\ 'ERROR: No permission to call sandboxed `''$set_predicate_attribute''(_G205:_G206,_G202,_G203)''',
\ 'ERROR: Reachable from:',
\ 'ERROR: system:''$set_pattr''(A,B,C,D)',
\ 'ERROR: system:''$set_pattr''(vimscript:A,B,C)',
\ 'ERROR: vimscript: (multifile A)',
\ 'ERROR: /path/to/test.pl:13:',
\ 'ERROR: No permission to call sandboxed `''$set_predicate_attribute''(_G1808:_G1809,_G1805,_G1806)''',
\ 'ERROR: Reachable from:',
\ 'ERROR: system:''$set_pattr''(A,B,C,D)',
\ 'ERROR: system:''$set_pattr''(vimscript:A,B,C)',
\ 'ERROR: vimscript: (multifile A)',
\ ])
Execute (The swipl handler should handle a warning / error with no line number):
call ale#test#SetFilename('test.pl')
AssertEqual
\ [
\ {
\ 'lnum': 1,
\ 'col': 0,
\ 'text': 'Exported procedure module_name:pred/0 is not defined',
\ 'type': 'E',
\ },
\ ],
\ ale_linters#prolog#swipl#Handle(bufnr(''), [
\ 'ERROR: Exported procedure module_name:pred/0 is not defined',
\ ])