diff options
Diffstat (limited to 'plugins/groovy/test/org')
3 files changed, 51 insertions, 3 deletions
diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTest.groovy index 2b5933fb4d31..d6363fb560db 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTest.groovy @@ -18,16 +18,28 @@ package org.jetbrains.plugins.groovy.compiler import com.intellij.compiler.CompilerConfiguration import com.intellij.compiler.CompilerConfigurationImpl +import com.intellij.execution.executors.DefaultRunExecutor +import com.intellij.execution.impl.DefaultJavaProgramRunner +import com.intellij.execution.process.ProcessAdapter +import com.intellij.execution.process.ProcessEvent +import com.intellij.execution.process.ProcessHandler +import com.intellij.execution.process.ProcessOutputTypes +import com.intellij.execution.runners.ProgramRunner import com.intellij.openapi.application.ApplicationManager +import com.intellij.openapi.application.PathManager import com.intellij.openapi.compiler.CompilerMessage import com.intellij.openapi.compiler.CompilerMessageCategory import com.intellij.openapi.compiler.options.ExcludeEntryDescription import com.intellij.openapi.compiler.options.ExcludedEntriesConfiguration import com.intellij.openapi.module.Module import com.intellij.openapi.roots.ModuleRootModificationUtil +import com.intellij.openapi.util.Key +import com.intellij.openapi.util.Ref import com.intellij.openapi.vfs.VirtualFile import com.intellij.psi.PsiFile +import com.intellij.testFramework.PsiTestUtil import com.intellij.testFramework.TestLoggerFactory +import org.jetbrains.annotations.NotNull import org.jetbrains.plugins.groovy.lang.psi.GroovyFile /** @@ -822,4 +834,35 @@ class AppTest { def messages = make() assert messages.find { it.message.contains("Cannot compile Groovy files: no Groovy library is defined for module 'dependent'") } } + + public void testGroovyOutputIsInstrumented() { + myFixture.addFileToProject("Bar.groovy", + "import org.jetbrains.annotations.NotNull; " + + "public class Bar {" + + "void xxx(@NotNull String param) { println param }\n" + + "static void main(String[] args) { new Bar().xxx(null) }"+ + "}" + ); + + File annotations = new File(PathManager.getJarPathForClass(NotNull.class)); + PsiTestUtil.addLibrary(myModule, "annotations", annotations.getParent(), annotations.getName()); + + assertEmpty(make()); + + final Ref<Boolean> exceptionFound = Ref.create(Boolean.FALSE); + ProcessHandler process = runProcess("Bar", myModule, DefaultRunExecutor.class, new ProcessAdapter() { + @Override + public void onTextAvailable(ProcessEvent event, Key outputType) { + if (ProcessOutputTypes.SYSTEM != outputType) { + if (!exceptionFound.get()) { + exceptionFound.set(event.getText().contains("java.lang.IllegalArgumentException: Argument for @NotNull parameter 'param' of Bar.xxx must not be null")); + } + } + } + }, ProgramRunner.PROGRAM_RUNNER_EP.findExtension(DefaultJavaProgramRunner.class)); + process.waitFor(); + + assertTrue(exceptionFound.get()); + } + } diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTestCase.java b/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTestCase.java index 7cbf9a9d665b..28b2e26949ad 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTestCase.java +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTestCase.java @@ -44,6 +44,7 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiFile; import com.intellij.testFramework.CompilerTester; import com.intellij.testFramework.IdeaTestUtil; +import com.intellij.testFramework.PlatformTestUtil; import com.intellij.testFramework.PsiTestUtil; import com.intellij.testFramework.builders.JavaModuleFixtureBuilder; import com.intellij.testFramework.fixtures.JavaCodeInsightFixtureTestCase; @@ -80,6 +81,13 @@ public abstract class GroovyCompilerTestCase extends JavaCodeInsightFixtureTestC super.tuneFixture(moduleBuilder); } + @Override + protected void runTest() throws Throwable { + if (PlatformTestUtil.COVERAGE_ENABLED_BUILD) return; + + super.runTest(); + } + protected static void addGroovyLibrary(final Module to) { File jar = GroovyFacetUtil.getBundledGroovyJar(); PsiTestUtil.addLibrary(to, "groovy", jar.getParent(), jar.getName()); diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/refactoring/optimizeImports/OptimizeImportsTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/refactoring/optimizeImports/OptimizeImportsTest.groovy index 223927107763..ce323a17d5d9 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/refactoring/optimizeImports/OptimizeImportsTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/refactoring/optimizeImports/OptimizeImportsTest.groovy @@ -15,11 +15,9 @@ */ package org.jetbrains.plugins.groovy.refactoring.optimizeImports - import com.intellij.codeInsight.CodeInsightSettings import com.intellij.openapi.application.ApplicationManager import com.intellij.openapi.command.CommandProcessor -import com.intellij.openapi.fileEditor.impl.TrailingSpacesStripper import com.intellij.psi.codeStyle.CodeStyleSettings import com.intellij.psi.codeStyle.CodeStyleSettingsManager import com.intellij.psi.impl.source.PostprocessReformattingAspect @@ -195,7 +193,6 @@ class Fooxx <caret>{ doOptimizeImports(); PostprocessReformattingAspect.getInstance(getProject()).doPostponedFormatting(); - TrailingSpacesStripper.stripIfNotCurrentLine(myFixture.getEditor().getDocument(), false); myFixture.checkResultByFile(getTestName(false) + "_after.groovy"); } finally { |