From 771bce99fa34dbab82a2aa7e9bd04165d034f5b4 Mon Sep 17 00:00:00 2001 From: Mikhael Bogdanov Date: Wed, 27 Mar 2013 12:09:22 +0400 Subject: [PATCH] Android test update to support new Idea --- .../compiler/CodegenTestsOnAndroidRunner.java | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/compiler/android-tests/src/org/jetbrains/jet/compiler/CodegenTestsOnAndroidRunner.java b/compiler/android-tests/src/org/jetbrains/jet/compiler/CodegenTestsOnAndroidRunner.java index e90d7844ad0..4ccf70ea0c1 100644 --- a/compiler/android-tests/src/org/jetbrains/jet/compiler/CodegenTestsOnAndroidRunner.java +++ b/compiler/android-tests/src/org/jetbrains/jet/compiler/CodegenTestsOnAndroidRunner.java @@ -16,10 +16,14 @@ package org.jetbrains.jet.compiler; +import com.intellij.application.options.PathMacrosImpl; +import com.intellij.mock.MockApplication; import com.intellij.openapi.Disposable; import com.intellij.openapi.application.ApplicationManager; -import com.intellij.openapi.util.io.FileUtil; -import junit.framework.*; +import com.intellij.openapi.application.PathMacros; +import junit.framework.Assert; +import junit.framework.TestCase; +import junit.framework.TestSuite; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.compiler.ant.AntRunner; @@ -30,6 +34,9 @@ import org.jetbrains.jet.compiler.run.PermissionManager; import java.io.File; import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -170,11 +177,24 @@ public class CodegenTestsOnAndroidRunner { @Nullable public String runTests() { - ApplicationManager.setApplication(null, new Disposable() { + //TODO: TEMPORARY HACK: should be possible to remove in idea 12.1 + Disposable disposable = new Disposable() { @Override - public void dispose() { + public void dispose() {} + }; + + MockApplication app = new MockApplication(disposable) + { + ExecutorService executorService = Executors.newFixedThreadPool(10); + @Override + public Future executeOnPooledThread(@NotNull Runnable action) { + return executorService.submit(action); } - }); + }; + + app.addComponent(PathMacros.class, new PathMacrosImpl()); + ApplicationManager.setApplication(app, disposable); + //TODO: HACK END File rootForAndroidDependencies = new File(pathManager.getDependenciesRoot()); if (!rootForAndroidDependencies.exists()) {