summaryrefslogtreecommitdiff
path: root/java/testFramework/src/com
diff options
context:
space:
mode:
Diffstat (limited to 'java/testFramework/src/com')
-rw-r--r--java/testFramework/src/com/intellij/codeInsight/daemon/LightDaemonAnalyzerTestCase.java17
-rw-r--r--java/testFramework/src/com/intellij/compiler/CompilerTestUtil.java20
-rw-r--r--java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java33
-rw-r--r--java/testFramework/src/com/intellij/debugger/ExecutionWithDebuggerToolsTestCase.java16
-rw-r--r--java/testFramework/src/com/intellij/testFramework/CompilerTester.java42
5 files changed, 76 insertions, 52 deletions
diff --git a/java/testFramework/src/com/intellij/codeInsight/daemon/LightDaemonAnalyzerTestCase.java b/java/testFramework/src/com/intellij/codeInsight/daemon/LightDaemonAnalyzerTestCase.java
index ff98bd23b858..d2b25c6d3d04 100644
--- a/java/testFramework/src/com/intellij/codeInsight/daemon/LightDaemonAnalyzerTestCase.java
+++ b/java/testFramework/src/com/intellij/codeInsight/daemon/LightDaemonAnalyzerTestCase.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2013 JetBrains s.r.o.
+ * Copyright 2000-2014 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,11 +24,8 @@ import com.intellij.lang.injection.InjectedLanguageManager;
import com.intellij.openapi.command.CommandProcessor;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.vfs.VirtualFileFilter;
-import com.intellij.psi.JavaPsiFacade;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiFile;
-import com.intellij.psi.impl.source.resolve.PsiResolveHelperImpl;
-import com.intellij.psi.impl.source.resolve.graphInference.PsiGraphInferenceHelper;
import com.intellij.testFramework.ExpectedHighlightingData;
import com.intellij.testFramework.FileTreeAccessFilter;
import com.intellij.testFramework.HighlightTestInfo;
@@ -83,18 +80,6 @@ public abstract class LightDaemonAnalyzerTestCase extends LightCodeInsightTestCa
doTestConfiguredFile(checkWarnings, checkInfos, filePath);
}
- protected void doTestNewInference(@NonNls String filePath, boolean checkWarnings, boolean checkInfos) {
- final PsiResolveHelperImpl helper = (PsiResolveHelperImpl)JavaPsiFacade.getInstance(getProject()).getResolveHelper();
- helper.setTestHelper(new PsiGraphInferenceHelper(getPsiManager()));
- try {
- configureByFile(filePath);
- doTestConfiguredFile(checkWarnings, checkInfos, filePath);
- }
- finally {
- helper.setTestHelper(null);
- }
- }
-
protected void doTest(@NonNls String filePath, boolean checkWarnings, boolean checkWeakWarnings, boolean checkInfos) {
configureByFile(filePath);
doTestConfiguredFile(checkWarnings, checkWeakWarnings, checkInfos, filePath);
diff --git a/java/testFramework/src/com/intellij/compiler/CompilerTestUtil.java b/java/testFramework/src/com/intellij/compiler/CompilerTestUtil.java
index 0f8f11ce6788..e5a9ee47daed 100644
--- a/java/testFramework/src/com/intellij/compiler/CompilerTestUtil.java
+++ b/java/testFramework/src/com/intellij/compiler/CompilerTestUtil.java
@@ -8,10 +8,15 @@ import com.intellij.openapi.application.WriteAction;
import com.intellij.openapi.application.ex.ApplicationManagerEx;
import com.intellij.openapi.fileTypes.FileTypeManager;
import com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl;
+import com.intellij.openapi.module.Module;
+import com.intellij.openapi.module.ModuleManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.projectRoots.ProjectJdkTable;
+import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.projectRoots.impl.JavaAwareProjectJdkTableImpl;
import com.intellij.openapi.projectRoots.impl.ProjectJdkTableImpl;
+import com.intellij.openapi.roots.ModuleRootManager;
+import com.intellij.openapi.roots.ModuleRootModificationUtil;
import com.intellij.openapi.roots.ProjectRootManager;
import com.intellij.openapi.util.JDOMUtil;
import com.intellij.openapi.util.WriteExternalException;
@@ -27,6 +32,7 @@ import org.jetbrains.jps.model.serialization.JpsGlobalLoader;
import java.io.File;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -91,8 +97,20 @@ public class CompilerTestUtil {
new WriteAction() {
protected void run(final Result result) {
ApplicationManagerEx.getApplicationEx().doNotSave(true);
+ Module[] modules = ModuleManager.getInstance(project).getModules();
JavaAwareProjectJdkTableImpl table = JavaAwareProjectJdkTableImpl.getInstanceEx();
- table.removeJdk(table.getInternalJdk());
+ Sdk internalJdk = table.getInternalJdk();
+ List<Module> modulesToRestore = new ArrayList<Module>();
+ for (Module module : modules) {
+ Sdk sdk = ModuleRootManager.getInstance(module).getSdk();
+ if (sdk != null && sdk.equals(internalJdk)) {
+ modulesToRestore.add(module);
+ }
+ }
+ table.removeJdk(internalJdk);
+ for (Module module : modulesToRestore) {
+ ModuleRootModificationUtil.setModuleSdk(module, internalJdk);
+ }
BuildManager.getInstance().clearState(project);
}
}.execute();
diff --git a/java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java b/java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java
index 2ec9ae61e17b..06ebf7875e6e 100644
--- a/java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java
+++ b/java/testFramework/src/com/intellij/debugger/DebuggerTestCase.java
@@ -28,17 +28,16 @@ import com.intellij.debugger.settings.DebuggerSettings;
import com.intellij.debugger.settings.NodeRendererSettings;
import com.intellij.debugger.ui.breakpoints.BreakpointManager;
import com.intellij.execution.ExecutionException;
-import com.intellij.execution.ExecutionResult;
import com.intellij.execution.Executor;
import com.intellij.execution.configurations.*;
import com.intellij.execution.executors.DefaultDebugExecutor;
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.ExecutionEnvironment;
import com.intellij.execution.runners.ExecutionEnvironmentBuilder;
import com.intellij.execution.runners.ProgramRunner;
-import com.intellij.execution.ui.ExecutionConsole;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.ModalityState;
import com.intellij.openapi.editor.Document;
@@ -46,7 +45,10 @@ import com.intellij.openapi.fileEditor.ex.FileEditorManagerEx;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.options.SettingsEditor;
import com.intellij.openapi.project.Project;
-import com.intellij.openapi.util.*;
+import com.intellij.openapi.util.Computable;
+import com.intellij.openapi.util.InvalidDataException;
+import com.intellij.openapi.util.Key;
+import com.intellij.openapi.util.WriteExternalException;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.JavaPsiFacade;
import com.intellij.psi.PsiClass;
@@ -88,11 +90,11 @@ public abstract class DebuggerTestCase extends ExecutionWithDebuggerToolsTestCas
protected void runTest() throws Throwable {
super.runTest();
if(getDebugProcess() != null) {
- getDebugProcess().getExecutionResult().getProcessHandler().startNotify();
- waitProcess(getDebugProcess().getExecutionResult().getProcessHandler());
+ getDebugProcess().getProcessHandler().startNotify();
+ waitProcess(getDebugProcess().getProcessHandler());
waitForCompleted();
//disposeSession(myDebuggerSession);
- assertNull(DebuggerManagerEx.getInstanceEx(myProject).getDebugProcess(getDebugProcess().getExecutionResult().getProcessHandler()));
+ assertNull(DebuggerManagerEx.getInstanceEx(myProject).getDebugProcess(getDebugProcess().getProcessHandler()));
myDebuggerSession = null;
}
if(myConsoleBuffer != null) {
@@ -119,11 +121,6 @@ public abstract class DebuggerTestCase extends ExecutionWithDebuggerToolsTestCas
@Override
protected void tearDown() throws Exception {
FileEditorManagerEx.getInstanceEx(getProject()).closeAllFiles();
- ExecutionResult executionResult = myDebugProcess == null ? null : myDebugProcess.getExecutionResult();
- ExecutionConsole console = executionResult == null ? null : executionResult.getExecutionConsole();
- if (console != null) {
- Disposer.dispose(console);
- }
myConsoleBuffer = null;
super.tearDown();
}
@@ -134,7 +131,7 @@ public abstract class DebuggerTestCase extends ExecutionWithDebuggerToolsTestCas
myDebugProcess = myDebuggerSession.getProcess();
}
- protected DebuggerSession createLocalSession(final JavaParameters javaParameters, final String sessionName) throws ExecutionException, InterruptedException {
+ protected DebuggerSession createLocalSession(final JavaParameters javaParameters) throws ExecutionException, InterruptedException {
createBreakpoints(javaParameters.getMainClass());
DebuggerSettings.getInstance().DEBUGGER_TRANSPORT = DebuggerSettings.SOCKET_TRANSPORT;
@@ -145,7 +142,7 @@ public abstract class DebuggerTestCase extends ExecutionWithDebuggerToolsTestCas
ExecutionEnvironment environment = new ExecutionEnvironmentBuilder(myProject, DefaultDebugExecutor.getDebugExecutorInstance())
.runnerSettings(debuggerRunnerSettings)
- .setRunProfile(new MockConfiguration())
+ .runProfile(new MockConfiguration())
.build();
final JavaCommandLineState javaCommandLineState = new JavaCommandLineState(environment){
@Override
@@ -241,7 +238,7 @@ public abstract class DebuggerTestCase extends ExecutionWithDebuggerToolsTestCas
}
});
- final ExecutionResult executionResult = debuggerSession[0].getProcess().getExecutionResult();
+ final ProcessHandler processHandler = debuggerSession[0].getProcess().getProcessHandler();
debuggerSession[0].getProcess().addProcessListener(new ProcessAdapter() {
@Override
public void onTextAvailable(ProcessEvent event, Key outputType) {
@@ -250,7 +247,7 @@ public abstract class DebuggerTestCase extends ExecutionWithDebuggerToolsTestCas
});
DebugProcessImpl process =
- (DebugProcessImpl)DebuggerManagerEx.getInstanceEx(myProject).getDebugProcess(executionResult.getProcessHandler());
+ (DebugProcessImpl)DebuggerManagerEx.getInstanceEx(myProject).getDebugProcess(processHandler);
assertNotNull(process);
return debuggerSession[0];
}
@@ -293,9 +290,9 @@ public abstract class DebuggerTestCase extends ExecutionWithDebuggerToolsTestCas
debuggerSession = attachVM(remoteConnection, true);
}
- ExecutionResult executionResult = debuggerSession.getProcess().getExecutionResult();
+ ProcessHandler processHandler = debuggerSession.getProcess().getProcessHandler();
DebugProcessImpl process = (DebugProcessImpl)DebuggerManagerEx.getInstanceEx(myProject)
- .getDebugProcess(executionResult.getProcessHandler());
+ .getDebugProcess(processHandler);
assertNotNull(process);
return debuggerSession;
@@ -319,7 +316,7 @@ public abstract class DebuggerTestCase extends ExecutionWithDebuggerToolsTestCas
}
}
});
- debuggerSession[0].getProcess().getExecutionResult().getProcessHandler().addProcessListener(new ProcessAdapter() {
+ debuggerSession[0].getProcess().getProcessHandler().addProcessListener(new ProcessAdapter() {
@Override
public void onTextAvailable(ProcessEvent event, Key outputType) {
print(event.getText(), outputType);
diff --git a/java/testFramework/src/com/intellij/debugger/ExecutionWithDebuggerToolsTestCase.java b/java/testFramework/src/com/intellij/debugger/ExecutionWithDebuggerToolsTestCase.java
index f295ee6dd40e..c4f7d920969d 100644
--- a/java/testFramework/src/com/intellij/debugger/ExecutionWithDebuggerToolsTestCase.java
+++ b/java/testFramework/src/com/intellij/debugger/ExecutionWithDebuggerToolsTestCase.java
@@ -26,7 +26,6 @@ import com.intellij.debugger.impl.PositionUtil;
import com.intellij.debugger.impl.PrioritizedTask;
import com.intellij.debugger.impl.SynchronizationBasedSemaphore;
import com.intellij.debugger.jdi.StackFrameProxyImpl;
-import com.intellij.debugger.settings.DebuggerSettings;
import com.intellij.debugger.ui.breakpoints.Breakpoint;
import com.intellij.debugger.ui.breakpoints.BreakpointManager;
import com.intellij.execution.ExecutionException;
@@ -62,7 +61,7 @@ public abstract class ExecutionWithDebuggerToolsTestCase extends ExecutionTestCa
private final SynchronizationBasedSemaphore myScriptRunnablesSema = new SynchronizationBasedSemaphore();
protected static final int RATHER_LATER_INVOKES_N = 10;
public DebugProcessImpl myDebugProcess = null;
- private final CompositeException exception = new CompositeException();
+ private final CompositeException myException = new CompositeException();
private class InvokeRatherLaterRequest {
private final DebuggerCommandImpl myDebuggerCommand;
@@ -107,7 +106,9 @@ public abstract class ExecutionWithDebuggerToolsTestCase extends ExecutionTestCa
@Override
protected void tearDown() throws Exception {
super.tearDown();
- if (!exception.isEmpty()) throw exception;
+ synchronized (myException) {
+ if (!myException.isEmpty()) throw myException;
+ }
}
protected void onBreakpoint(SuspendContextRunnable runnable) {
@@ -131,11 +132,11 @@ public abstract class ExecutionWithDebuggerToolsTestCase extends ExecutionTestCa
suspendContextRunnable.run(suspendContext);
}
catch (Exception e) {
- exception.add(e);
+ addException(e);
error(e);
}
catch (AssertionError e) {
- exception.add(e);
+ addException(e);
}
if (myScriptRunnables.isEmpty()) {
@@ -270,6 +271,11 @@ public abstract class ExecutionWithDebuggerToolsTestCase extends ExecutionTestCa
});
}
+ protected void addException(Throwable e) {
+ synchronized (myException) {
+ myException.add(e);
+ }
+ }
protected void error(Throwable th) {
fail(StringUtil.getThrowableText(th));
diff --git a/java/testFramework/src/com/intellij/testFramework/CompilerTester.java b/java/testFramework/src/com/intellij/testFramework/CompilerTester.java
index a3c05c6ec3fd..27f36509f60e 100644
--- a/java/testFramework/src/com/intellij/testFramework/CompilerTester.java
+++ b/java/testFramework/src/com/intellij/testFramework/CompilerTester.java
@@ -46,18 +46,24 @@ import javax.swing.*;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
/**
* @author peter
*/
public class CompilerTester {
-
- private Module myModule;
+ private Project myProject;
+ private List<Module> myModules;
private TempDirTestFixture myMainOutput;
public CompilerTester(Module module) throws Exception {
- myModule = module;
+ this(module.getProject(), Collections.singletonList(module));
+ }
+
+ public CompilerTester(Project project, List<Module> modules) throws Exception {
+ myProject = project;
+ myModules = modules;
myMainOutput = new TempDirTestFixtureImpl();
myMainOutput.setUp();
@@ -67,10 +73,11 @@ public class CompilerTester {
//noinspection ConstantConditions
CompilerProjectExtension.getInstance(getProject()).setCompilerOutputUrl(myMainOutput.findOrCreateDir("out").getUrl());
CompilerTestUtil.enableExternalCompiler();
- ModuleRootModificationUtil.setModuleSdk(myModule, JavaAwareProjectJdkTableImpl.getInstanceEx().getInternalJdk());
+ for (Module module : myModules) {
+ ModuleRootModificationUtil.setModuleSdk(module, JavaAwareProjectJdkTableImpl.getInstanceEx().getInternalJdk());
+ }
}
}.execute();
-
}
public void tearDown() {
@@ -84,12 +91,12 @@ public class CompilerTester {
}
finally {
myMainOutput = null;
- myModule = null;
+ myModules = null;
}
}
private Project getProject() {
- return myModule.getProject();
+ return myProject;
}
public void deleteClassFile(final String className) throws IOException {
@@ -173,6 +180,15 @@ public class CompilerTester {
});
}
+ public List<CompilerMessage> make(final CompileScope scope) {
+ return runCompiler(new Consumer<ErrorReportingCallback>() {
+ @Override
+ public void consume(ErrorReportingCallback callback) {
+ CompilerManager.getInstance(getProject()).make(scope, callback);
+ }
+ });
+ }
+
public List<CompilerMessage> compileFiles(final VirtualFile... files) {
return runCompiler(new Consumer<ErrorReportingCallback>() {
@Override
@@ -192,11 +208,13 @@ public class CompilerTester {
try {
getProject().save();
CompilerTestUtil.saveApplicationSettings();
- final VirtualFile moduleFile = myModule.getModuleFile();
- File ioFile = VfsUtil.virtualToIoFile(moduleFile);
- if (!ioFile.exists()) {
- getProject().save();
- assert ioFile.exists() : "File does not exist: " + ioFile.getPath();
+ for (Module module : myModules) {
+ final VirtualFile moduleFile = module.getModuleFile();
+ File ioFile = VfsUtil.virtualToIoFile(moduleFile);
+ if (!ioFile.exists()) {
+ getProject().save();
+ assert ioFile.exists() : "File does not exist: " + ioFile.getPath();
+ }
}
runnable.consume(callback);
}