mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
a failing test for compiling 'jps' module issues
This commit is contained in:
@@ -104,12 +104,13 @@ public class GroovyBuilder extends Builder {
|
||||
|
||||
// todo CompilerUtil.addLocaleOptions()
|
||||
//todo different outputs in a chunk
|
||||
//todo xmx
|
||||
//todo module jdk path
|
||||
final List<String> cmd = ExternalProcessUtil.buildJavaCommandLine(
|
||||
SystemProperties.getJavaHome() + "/bin/java",
|
||||
"org.jetbrains.groovy.compiler.rt.GroovycRunner",
|
||||
Collections.<String>emptyList(), new ArrayList<String>(cp),
|
||||
Arrays.asList("-Xmx384m"/*, "-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5858"*/),
|
||||
Arrays.asList("-Xmx384m"/*, "-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5239"*/),
|
||||
Arrays.<String>asList(myForStubs ? "stubs" : "groovyc", tempFile.getPath())
|
||||
);
|
||||
|
||||
|
||||
+32
-11
@@ -65,6 +65,14 @@ public abstract class GroovyCompilerTest extends GroovyCompilerTestCase {
|
||||
assertOutput("Foo", "239");
|
||||
|
||||
setFileText(file, "class Bar {}");
|
||||
makeShouldFail()
|
||||
|
||||
setFileText(file, barText);
|
||||
make();
|
||||
assertOutput("Foo", "239");
|
||||
}
|
||||
|
||||
private void makeShouldFail() {
|
||||
try {
|
||||
make();
|
||||
fail("Make should fail");
|
||||
@@ -74,10 +82,6 @@ public abstract class GroovyCompilerTest extends GroovyCompilerTestCase {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
setFileText(file, barText);
|
||||
make();
|
||||
assertOutput("Foo", "239");
|
||||
}
|
||||
|
||||
public void testRenameToJava() throws Throwable {
|
||||
@@ -475,9 +479,9 @@ class Indirect {
|
||||
}
|
||||
|
||||
public void testDontRecompileUnneeded() {
|
||||
myFixture.addFileToProject('Base.groovy', 'class Base { }').virtualFile
|
||||
myFixture.addFileToProject('Base.groovy', 'class Base { }')
|
||||
def foo = myFixture.addFileToProject('Foo.groovy', 'class Foo extends Base { }').virtualFile
|
||||
myFixture.addFileToProject('Bar.groovy', 'class Bar extends Foo { }').virtualFile
|
||||
myFixture.addFileToProject('Bar.groovy', 'class Bar extends Foo { }')
|
||||
def main = myFixture.addFileToProject('Main.groovy', 'class Main extends Bar { }').virtualFile
|
||||
assertEmpty make()
|
||||
long oldBaseStamp = findClassFile("Base").modificationStamp
|
||||
@@ -490,17 +494,34 @@ class Indirect {
|
||||
assert oldBaseStamp == findClassFile("Base").modificationStamp
|
||||
}
|
||||
|
||||
public void _testPartialCrossRecompile() {
|
||||
def used = myFixture.addFileToProject('Used.groovy', 'class Used { }')
|
||||
def java = myFixture.addFileToProject('Java.java', 'class Java { void foo(Used used) {} }')
|
||||
def main = myFixture.addFileToProject('Main.groovy', 'class Main extends Java { }').virtualFile
|
||||
|
||||
assertEmpty compileModule(myModule)
|
||||
assertEmpty compileFiles(used.virtualFile, main)
|
||||
assertEmpty compileModule(myModule)
|
||||
assertEmpty compileModule(myModule)
|
||||
|
||||
setFileText(used, 'class Used2 {}')
|
||||
makeShouldFail()
|
||||
assert findClassFile('Used') == null
|
||||
assert findClassFile('Used2') == null
|
||||
|
||||
setFileText(used, 'class Used3 {}')
|
||||
setFileText(java, 'class Java { void foo(Used3 used) {} }')
|
||||
assertEmpty make()
|
||||
|
||||
assert findClassFile('Used2') == null
|
||||
}
|
||||
|
||||
public static class IdeaModeTest extends GroovyCompilerTest {
|
||||
@Override protected boolean useJps() { false }
|
||||
}
|
||||
|
||||
public static class JpsModeTest extends GroovyCompilerTest {
|
||||
@Override protected boolean useJps() { true }
|
||||
|
||||
@Override
|
||||
void testCorrectFailAndCorrect() {
|
||||
super.testCorrectFailAndCorrect()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+29
-1
@@ -42,6 +42,7 @@ import com.intellij.testFramework.builders.JavaModuleFixtureBuilder;
|
||||
import com.intellij.testFramework.fixtures.JavaCodeInsightFixtureTestCase;
|
||||
import com.intellij.testFramework.fixtures.TempDirTestFixture;
|
||||
import com.intellij.testFramework.fixtures.impl.TempDirTestFixtureImpl;
|
||||
import com.intellij.util.Consumer;
|
||||
import com.intellij.util.ObjectUtils;
|
||||
import com.intellij.util.concurrency.Semaphore;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
@@ -243,6 +244,33 @@ public abstract class GroovyCompilerTestCase extends JavaCodeInsightFixtureTestC
|
||||
}
|
||||
|
||||
protected List<String> make() {
|
||||
return runCompiler(new Consumer<ErrorReportingCallback>() {
|
||||
@Override
|
||||
public void consume(ErrorReportingCallback callback) {
|
||||
CompilerManager.getInstance(getProject()).make(callback);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
protected List<String> compileModule(final Module module) {
|
||||
return runCompiler(new Consumer<ErrorReportingCallback>() {
|
||||
@Override
|
||||
public void consume(ErrorReportingCallback callback) {
|
||||
CompilerManager.getInstance(getProject()).compile(module, callback);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
protected List<String> compileFiles(final VirtualFile... files) {
|
||||
return runCompiler(new Consumer<ErrorReportingCallback>() {
|
||||
@Override
|
||||
public void consume(ErrorReportingCallback callback) {
|
||||
CompilerManager.getInstance(getProject()).compile(files, callback);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private List<String> runCompiler(final Consumer<ErrorReportingCallback> runnable) {
|
||||
final Semaphore semaphore = new Semaphore();
|
||||
semaphore.down();
|
||||
final ErrorReportingCallback callback = new ErrorReportingCallback(semaphore);
|
||||
@@ -258,7 +286,7 @@ public abstract class GroovyCompilerTestCase extends JavaCodeInsightFixtureTestC
|
||||
assert ioFile.exists();
|
||||
}
|
||||
}
|
||||
CompilerManager.getInstance(getProject()).make(callback);
|
||||
runnable.consume(callback);
|
||||
}
|
||||
catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
|
||||
Reference in New Issue
Block a user