From c219d347902ddacb765f0dc539d22dfcbac6fdfb Mon Sep 17 00:00:00 2001 From: peter Date: Fri, 5 Jan 2018 16:24:11 +0100 Subject: [PATCH] run groovy compiler/debugger test in the compiler/debugger suite and on real jdk (8 or 9 on TeamCity) --- .../testSrc/tests/testGroups.properties | 2 ++ .../groovy/compiler/GroovyCompilerTest.groovy | 13 +++++++++++++ .../compiler/GroovyCompilerTestCase.groovy | 16 ++++++++++++---- .../groovy/compiler/GroovyDebuggerTest.groovy | 7 ------- 4 files changed, 27 insertions(+), 11 deletions(-) diff --git a/platform/testFramework/testSrc/tests/testGroups.properties b/platform/testFramework/testSrc/tests/testGroups.properties index b8b003a6d202..4cf073e2a7fd 100644 --- a/platform/testFramework/testSrc/tests/testGroups.properties +++ b/platform/testFramework/testSrc/tests/testGroups.properties @@ -112,10 +112,12 @@ com.intellij.java.propertyBased.JavaCodeInsightSanityTest [GROOVY_TESTS] org.jetbrains.plugins.groovy.* +-org.jetbrains.plugins.groovy.compiler.* [COMPILER_AND_DEBUGGER_TESTS] com.intellij.compiler.* org.jetbrains.jps.* com.intellij.java.compiler.* com.intellij.debugger.streams.* +org.jetbrains.plugins.groovy.compiler.* -org.jetbrains.jps.android.* \ No newline at end of file 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 41effd76d4a9..c8c1240a8ab0 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTest.groovy @@ -33,6 +33,9 @@ import com.intellij.openapi.compiler.options.ExcludeEntryDescription import com.intellij.openapi.compiler.options.ExcludesConfiguration import com.intellij.openapi.diagnostic.Logger import com.intellij.openapi.module.Module +import com.intellij.openapi.projectRoots.JavaSdkVersion +import com.intellij.openapi.projectRoots.JavaSdkVersionUtil +import com.intellij.openapi.roots.ModuleRootManager import com.intellij.openapi.roots.ModuleRootModificationUtil import com.intellij.openapi.util.Key import com.intellij.openapi.util.Ref @@ -995,5 +998,15 @@ class Bar {}''' GreclipseIdeaCompilerSettings.getSettings(project).greclipsePath = jarPath } + + @Override + void runTest() { + if (JavaSdkVersionUtil.getJavaSdkVersion(ModuleRootManager.getInstance(myModule).sdk)?.isAtLeast(JavaSdkVersion.JDK_1_9)) { + println "Groovy-Eclipse doesn't support JDK9 yet" + return + } + + super.runTest() + } } } \ No newline at end of file diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTestCase.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTestCase.groovy index baa92dad2a43..a5933a1f06f5 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTestCase.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyCompilerTestCase.groovy @@ -34,15 +34,17 @@ import com.intellij.openapi.module.Module import com.intellij.openapi.module.ModuleManager import com.intellij.openapi.module.StdModuleTypes import com.intellij.openapi.project.Project +import com.intellij.openapi.projectRoots.JavaSdkVersion import com.intellij.openapi.roots.* import com.intellij.openapi.util.Key +import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.util.text.StringUtil import com.intellij.openapi.vfs.VirtualFile -import com.intellij.pom.java.LanguageLevel import com.intellij.psi.PsiFile import com.intellij.testFramework.* import com.intellij.testFramework.builders.JavaModuleFixtureBuilder import com.intellij.testFramework.fixtures.JavaCodeInsightFixtureTestCase +import com.intellij.util.SystemProperties import com.intellij.util.io.PathKt import groovy.transform.CompileStatic import org.jetbrains.annotations.NotNull @@ -79,8 +81,9 @@ abstract class GroovyCompilerTestCase extends JavaCodeInsightFixtureTestCase imp @Override protected void tuneFixture(JavaModuleFixtureBuilder moduleBuilder) throws Exception { - moduleBuilder.setLanguageLevel(LanguageLevel.JDK_1_6) - moduleBuilder.addJdk(IdeaTestUtil.getMockJdk17Path().getPath()) + moduleBuilder.setLanguageLevel(JavaSdkVersion.fromVersionString(SystemProperties.javaVersion).maxLanguageLevel) + def javaHome = FileUtil.toSystemIndependentName(SystemProperties.javaHome) + moduleBuilder.addJdk(StringUtil.trimEnd(StringUtil.trimEnd(javaHome, '/'), '/jre')) super.tuneFixture(moduleBuilder) } @@ -219,7 +222,12 @@ abstract class GroovyCompilerTestCase extends JavaCodeInsightFixtureTestCase imp } }, ProgramRunner.PROGRAM_RUNNER_EP.findExtension(DefaultJavaProgramRunner.class)) process.waitFor() - assertEquals(expected.trim(), StringUtil.convertLineSeparators(sb.toString().trim())) + def output = StringUtil.convertLineSeparators(sb.toString().trim()).readLines() + output = output.findAll { line -> + !StringUtil.containsIgnoreCase(line, "illegal") && + !line.contains("consider reporting this to the maintainers of org.codehaus.groovy.reflection.CachedClass") + } + assertEquals(expected.trim(), output.join("\n")) } protected ProcessHandler runProcess(String className, diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyDebuggerTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyDebuggerTest.groovy index d4c9e3c68a20..02d2671c5670 100644 --- a/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyDebuggerTest.groovy +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/compiler/GroovyDebuggerTest.groovy @@ -88,13 +88,6 @@ class GroovyDebuggerTest extends GroovyCompilerTestCase implements DebuggerMetho } } - @Override - protected void tuneFixture(JavaModuleFixtureBuilder moduleBuilder) { - super.tuneFixture(moduleBuilder) - def javaHome = FileUtil.toSystemIndependentName(SystemProperties.getJavaHome()) - moduleBuilder.addJdk(StringUtil.trimEnd(StringUtil.trimEnd(javaHome, '/'), '/jre')) - } - void runDebugger(PsiFile script, Closure cl) { def configuration = createScriptConfiguration(script.virtualFile.path, myModule) runDebugger(configuration, cl)