diff options
Diffstat (limited to 'java/testFramework/src/com')
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); } |