diff options
author | w0rp <devw0rp@gmail.com> | 2017-11-05 15:33:31 +0000 |
---|---|---|
committer | w0rp <devw0rp@gmail.com> | 2017-11-05 15:33:31 +0000 |
commit | 34674e088d7d990d21a4cee5e289200cee5f9d6c (patch) | |
tree | b7a2625e08b20699b554a7ae160b1bdc67fede8d /test | |
parent | d851f399c054d487232294d9f1c3a6974215f4a8 (diff) | |
download | ale-34674e088d7d990d21a4cee5e289200cee5f9d6c.zip |
Fix #1061 - Handle the filenames returned by javac
Diffstat (limited to 'test')
-rw-r--r-- | test/command_callback/test_javac_command_callback.vader | 22 | ||||
-rw-r--r-- | test/handler/test_javac_handler.vader | 34 |
2 files changed, 46 insertions, 10 deletions
diff --git a/test/command_callback/test_javac_command_callback.vader b/test/command_callback/test_javac_command_callback.vader index 8033e4f6..77be1d59 100644 --- a/test/command_callback/test_javac_command_callback.vader +++ b/test/command_callback/test_javac_command_callback.vader @@ -28,12 +28,15 @@ Before: call ale#test#SetFilename('dummy.java') + let g:prefix = 'cd ' . ale#Escape(expand('%:p:h')) . ' && javac -Xlint' + After: call ale#test#RestoreDirectory() Restore unlet! g:cp_sep + unlet! g:prefix delfunction GetCommand @@ -43,20 +46,21 @@ After: call ale#engine#Cleanup(bufnr('')) Execute(The javac callback should return the correct default value): - AssertEqual 'javac -Xlint -d TEMP %t', GetCommand([]) + AssertEqual g:prefix . ' -d TEMP %t', GetCommand([]) Execute(The javac callback should use g:ale_java_javac_classpath correctly): let g:ale_java_javac_classpath = 'foo.jar' AssertEqual - \ 'javac -Xlint' + \ g:prefix \ . ' -cp ' . ale#Escape('foo.jar') \ . ' -d TEMP %t', \ GetCommand([]) Execute(The javac callback should include discovered classpaths): AssertEqual - \ 'javac -Xlint -cp ' + \ g:prefix + \ . ' -cp ' \ . ale#Escape(join(['/foo/bar.jar', '/xyz/abc.jar'], g:cp_sep)) \ . ' -d TEMP %t', \ GetCommand([ @@ -70,7 +74,8 @@ Execute(The javac callback should combine discovered classpaths and manual ones) let g:ale_java_javac_classpath = 'configured.jar' AssertEqual - \ 'javac -Xlint -cp ' + \ g:prefix + \ . ' -cp ' \ . ale#Escape(join( \ [ \ '/foo/bar.jar', @@ -90,7 +95,8 @@ Execute(The javac callback should combine discovered classpaths and manual ones) let g:ale_java_javac_classpath = 'configured.jar' . g:cp_sep . 'configured2.jar' AssertEqual - \ 'javac -Xlint -cp ' + \ g:prefix + \ . ' -cp ' \ . ale#Escape(join( \ [ \ '/foo/bar.jar', @@ -114,7 +120,7 @@ Execute(The javac callback should detect source directories): call ale#engine#InitBufferInfo(bufnr('')) AssertEqual - \ 'javac -Xlint' + \ 'cd ' . ale#Escape(expand('%:p:h')) . ' && javac -Xlint' \ . ' -sourcepath ' . ale#Escape( \ ale#path#Winify(g:dir . '/java_paths/src/main/java/') \ ) @@ -127,7 +133,7 @@ Execute(The javac callback should combine detected source directories and classp call ale#engine#InitBufferInfo(bufnr('')) AssertEqual - \ 'javac -Xlint' + \ 'cd ' . ale#Escape(expand('%:p:h')) . ' && javac -Xlint' \ . ' -cp ' . ale#Escape(join(['/foo/bar.jar', '/xyz/abc.jar'], g:cp_sep)) \ . ' -sourcepath ' . ale#Escape( \ ale#path#Winify(g:dir . '/java_paths/src/main/java/') @@ -146,6 +152,6 @@ Execute(The javac callback should use g:ale_java_javac_options correctly): let b:command = ale_linters#java#javac#GetCommand(bufnr(''), []) AssertEqual - \ 'javac -Xlint' + \ g:prefix \ . ' -d TEMP --anything --else %t', \ GetCommand([]) diff --git a/test/handler/test_javac_handler.vader b/test/handler/test_javac_handler.vader index 2cf32072..3997b42c 100644 --- a/test/handler/test_javac_handler.vader +++ b/test/handler/test_javac_handler.vader @@ -1,42 +1,51 @@ Before: runtime ale_linters/java/javac.vim + call ale#test#SetDirectory('/testplugin/test') + call ale#test#SetFilename('dummy.java') + After: + call ale#test#RestoreDirectory() call ale#linter#Reset() Execute(The javac handler should handle cannot find symbol errors): AssertEqual \ [ \ { + \ 'filename': '/tmp/vLPr4Q5/33/foo.java', \ 'lnum': 1, \ 'text': 'error: some error', \ 'type': 'E', \ }, \ { + \ 'filename': '/tmp/vLPr4Q5/33/foo.java', \ 'lnum': 2, \ 'col': 5, \ 'text': 'error: cannot find symbol: BadName', \ 'type': 'E', \ }, \ { + \ 'filename': '/tmp/vLPr4Q5/33/foo.java', \ 'lnum': 34, \ 'col': 5, \ 'text': 'error: cannot find symbol: BadName2', \ 'type': 'E', \ }, \ { + \ 'filename': '/tmp/vLPr4Q5/33/foo.java', \ 'lnum': 37, \ 'text': 'warning: some warning', \ 'type': 'W', \ }, \ { + \ 'filename': '/tmp/vLPr4Q5/33/foo.java', \ 'lnum': 42, \ 'col': 11, \ 'text': 'error: cannot find symbol: bar()', \ 'type': 'E', \ }, \ ], - \ ale_linters#java#javac#Handle(347, [ + \ ale_linters#java#javac#Handle(bufnr(''), [ \ '/tmp/vLPr4Q5/33/foo.java:1: error: some error', \ '/tmp/vLPr4Q5/33/foo.java:2: error: cannot find symbol', \ ' BadName foo() {', @@ -49,9 +58,30 @@ Execute(The javac handler should handle cannot find symbol errors): \ ' symbol: class BadName2', \ ' location: class Bar', \ '/tmp/vLPr4Q5/33/foo.java:37: warning: some warning', - \ '/tmp/vLPr4Q5/264/foo.java:42: error: cannot find symbol', + \ '/tmp/vLPr4Q5/33/foo.java:42: error: cannot find symbol', \ ' this.bar();', \ ' ^', \ ' symbol: method bar()', \ '5 errors', \ ]) + +Execute(The javac handler should resolve files from different directories): + AssertEqual + \ [ + \ { + \ 'filename': ale#path#Winify(g:dir . '/Foo.java'), + \ 'lnum': 1, + \ 'text': 'error: some error', + \ 'type': 'E', + \ }, + \ { + \ 'filename': ale#path#Winify(g:dir . '/Bar.java'), + \ 'lnum': 1, + \ 'text': 'error: some error', + \ 'type': 'E', + \ }, + \ ], + \ ale_linters#java#javac#Handle(bufnr(''), [ + \ './Foo.java:1: error: some error', + \ './Bar.java:1: error: some error', + \ ]) |