diff --git a/idea/tests/org/jetbrains/jet/plugin/libraries/AbstractNavigateToLibraryTest.java b/idea/tests/org/jetbrains/jet/plugin/libraries/AbstractNavigateToLibraryTest.java index 1c671e43b5c..ecba04c26ae 100644 --- a/idea/tests/org/jetbrains/jet/plugin/libraries/AbstractNavigateToLibraryTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/libraries/AbstractNavigateToLibraryTest.java @@ -21,6 +21,7 @@ import com.intellij.openapi.roots.ModifiableRootModel; import com.intellij.openapi.roots.ModuleRootManager; import com.intellij.openapi.roots.OrderRootType; import com.intellij.openapi.roots.libraries.Library; +import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VfsUtilCore; import com.intellij.openapi.vfs.VirtualFile; @@ -28,11 +29,15 @@ import com.intellij.openapi.vfs.VirtualFileVisitor; import com.intellij.openapi.vfs.newvfs.NewVirtualFile; import com.intellij.testFramework.PlatformTestCase; import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.cli.common.ExitCode; import org.jetbrains.jet.cli.jvm.K2JVMCompiler; import org.jetbrains.jet.plugin.PluginTestCaseBase; +import java.io.ByteArrayOutputStream; +import java.io.File; import java.io.IOException; +import java.io.PrintStream; /** * @author Evgeny Gerashchenko @@ -41,11 +46,28 @@ import java.io.IOException; public abstract class AbstractNavigateToLibraryTest extends PlatformTestCase { protected static final String PACKAGE = "testData.libraries"; protected static final String TEST_DATA_PATH = PluginTestCaseBase.getTestDataPathBase() + "/libraries"; + protected static final String SOURCES_PATH = TEST_DATA_PATH + "/library"; + private static File tempDirWithCompiled; protected VirtualFile libraryDir; protected VirtualFile librarySourceDir; protected abstract boolean isWithSources(); + @NotNull + private static File getTempDirWithCompiled() throws Exception { + if (tempDirWithCompiled == null) { + tempDirWithCompiled = JetTestUtils.tmpDir("dummylib"); + + ByteArrayOutputStream outStream = new ByteArrayOutputStream(); + + ExitCode compilerExec = new K2JVMCompiler().exec( + new PrintStream(outStream), "-src", SOURCES_PATH, "-output", tempDirWithCompiled.getAbsolutePath()); + assertEquals(new String(outStream.toByteArray()), ExitCode.OK, compilerExec); + } + + return tempDirWithCompiled; + } + @Override protected void setUp() throws Exception { super.setUp(); @@ -73,14 +95,10 @@ public abstract class AbstractNavigateToLibraryTest extends PlatformTestCase { return true; } }); - librarySourceDir = LocalFileSystem.getInstance().findFileByPath(TEST_DATA_PATH + "/library"); + librarySourceDir = LocalFileSystem.getInstance().findFileByPath(SOURCES_PATH); assertNotNull(librarySourceDir); - - ExitCode compilerExec = - new K2JVMCompiler().exec(System.out, "-src", librarySourceDir.getPath(), "-output", libraryDir.getPath()); - assertEquals(ExitCode.OK, compilerExec); - assertNotNull(libraryDir); + FileUtil.copyDir(getTempDirWithCompiled(), new File(libraryDir.getPath())); ((NewVirtualFile)libraryDir).markDirtyRecursively(); libraryDir.refresh(false, true);