From 8db2617701dc029e87a9e175b5e4f1b1f7c6ab69 Mon Sep 17 00:00:00 2001 From: Stepan Koltsov Date: Wed, 7 Dec 2011 21:01:51 +0400 Subject: [PATCH] refactor tests --- .../jet/CompileJavaAgainstKotlinTest.java | 44 ++-------------- .../org/jetbrains/jet/JetLiteFixture.java | 5 +- .../tests/org/jetbrains/jet/JetTestUtils.java | 39 ++++++++++++++ .../org/jetbrains/jet/ReadClassDataTest.java | 52 +++---------------- 4 files changed, 50 insertions(+), 90 deletions(-) diff --git a/compiler/tests/org/jetbrains/jet/CompileJavaAgainstKotlinTest.java b/compiler/tests/org/jetbrains/jet/CompileJavaAgainstKotlinTest.java index 8b0cc8d0ff4..786e61dfe38 100644 --- a/compiler/tests/org/jetbrains/jet/CompileJavaAgainstKotlinTest.java +++ b/compiler/tests/org/jetbrains/jet/CompileJavaAgainstKotlinTest.java @@ -16,10 +16,8 @@ import org.jetbrains.jet.codegen.ClassBuilderFactory; import org.jetbrains.jet.codegen.ClassFileFactory; import org.jetbrains.jet.codegen.GenerationState; import org.jetbrains.jet.compiler.CompileEnvironment; -import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.resolve.AnalyzingUtils; -import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.plugin.JetLanguage; import org.junit.Assert; @@ -28,7 +26,6 @@ import javax.tools.JavaFileObject; import javax.tools.StandardJavaFileManager; import javax.tools.ToolProvider; import java.io.File; -import java.io.IOException; import java.nio.charset.Charset; import java.util.Arrays; import java.util.Collections; @@ -51,35 +48,6 @@ public class CompileJavaAgainstKotlinTest extends UsefulTestCase { this.javaFile = new File(ktFile.getPath().replaceFirst("\\.kt", ".java")); } - private void createMockCoreEnvironment() { - jetCoreEnvironment = new JetCoreEnvironment(myTestRootDisposable); - - final File rtJar = new File(JetTestCaseBuilder.getHomeDirectory(), "compiler/testData/mockJDK-1.7/jre/lib/rt.jar"); - jetCoreEnvironment.addToClasspath(rtJar); - jetCoreEnvironment.addToClasspath(new File(JetTestCaseBuilder.getHomeDirectory(), "compiler/testData/mockJDK-1.7/jre/lib/annotations.jar")); - } - - private void mkdirs(File file) throws IOException { - if (file.isDirectory()) { - return; - } - if (!file.mkdirs()) { - throw new IOException(); - } - } - - private void rmrf(File file) { - if (file != null) { - File[] children = file.listFiles(); - if (children != null) { - for (File child : children) { - rmrf(child); - } - } - file.delete(); - } - } - @Override public String getName() { return ktFile.getName(); @@ -89,26 +57,20 @@ public class CompileJavaAgainstKotlinTest extends UsefulTestCase { protected void setUp() throws Exception { super.setUp(); tmpdir = new File("tmp/" + this.getClass().getSimpleName() + "." + this.getName()); - rmrf(tmpdir); - mkdirs(tmpdir); - } - - @Override - public void tearDown() throws Exception { - Disposer.dispose(myTestRootDisposable); + JetTestUtils.recreateDirectory(tmpdir); } @Override protected void runTest() throws Throwable { - createMockCoreEnvironment(); + jetCoreEnvironment = JetTestUtils.createEnvironmentWithMockJdk(myTestRootDisposable); LanguageASTFactory.INSTANCE.addExplicitExtension(JavaLanguage.INSTANCE, new JavaASTFactory()); String text = FileUtil.loadFile(ktFile); - LightVirtualFile virtualFile = new LightVirtualFile("Hello.kt", JetLanguage.INSTANCE, text); + LightVirtualFile virtualFile = new LightVirtualFile(ktFile.getName(), JetLanguage.INSTANCE, text); virtualFile.setCharset(CharsetToolkit.UTF8_CHARSET); JetFile psiFile = (JetFile) ((PsiFileFactoryImpl) PsiFileFactory.getInstance(jetCoreEnvironment.getProject())).trySetupPsiForFile(virtualFile, JetLanguage.INSTANCE, true, false); diff --git a/compiler/tests/org/jetbrains/jet/JetLiteFixture.java b/compiler/tests/org/jetbrains/jet/JetLiteFixture.java index 987ee56ad2c..9ff4e21f148 100644 --- a/compiler/tests/org/jetbrains/jet/JetLiteFixture.java +++ b/compiler/tests/org/jetbrains/jet/JetLiteFixture.java @@ -53,10 +53,7 @@ public abstract class JetLiteFixture extends UsefulTestCase { } protected void createEnvironmentWithMockJdk() { - myEnvironment = new JetCoreEnvironment(getTestRootDisposable()); - final File rtJar = new File(JetTestCaseBuilder.getHomeDirectory(), "compiler/testData/mockJDK-1.7/jre/lib/rt.jar"); - myEnvironment.addToClasspath(rtJar); - myEnvironment.addToClasspath(new File(JetTestCaseBuilder.getHomeDirectory(), "compiler/testData/mockJDK-1.7/jre/lib/annotations.jar")); + myEnvironment = JetTestUtils.createEnvironmentWithMockJdk(getTestRootDisposable()); } protected void createEnvironmentWithFullJdk() { diff --git a/compiler/tests/org/jetbrains/jet/JetTestUtils.java b/compiler/tests/org/jetbrains/jet/JetTestUtils.java index ed43b181be0..fea36452872 100644 --- a/compiler/tests/org/jetbrains/jet/JetTestUtils.java +++ b/compiler/tests/org/jetbrains/jet/JetTestUtils.java @@ -1,5 +1,6 @@ package org.jetbrains.jet; +import com.intellij.openapi.Disposable; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.cfg.pseudocode.JetControlFlowDataTraceFactory; import org.jetbrains.jet.lang.diagnostics.Diagnostic; @@ -13,6 +14,8 @@ import org.jetbrains.jet.util.slicedmap.ReadOnlySlice; import org.jetbrains.jet.util.slicedmap.SlicedMap; import org.jetbrains.jet.util.slicedmap.WritableSlice; +import java.io.File; +import java.io.IOException; import java.util.Collection; import java.util.Collections; @@ -128,4 +131,40 @@ public class JetTestUtils { public static BindingContext analyzeNamespace(@NotNull JetNamespace namespace, @NotNull JetControlFlowDataTraceFactory flowDataTraceFactory) { return AnalyzerFacade.analyzeOneNamespaceWithJavaIntegration(namespace, flowDataTraceFactory); } + + + public static JetCoreEnvironment createEnvironmentWithMockJdk(Disposable disposable) { + JetCoreEnvironment environment = new JetCoreEnvironment(disposable); + final File rtJar = new File(JetTestCaseBuilder.getHomeDirectory(), "compiler/testData/mockJDK-1.7/jre/lib/rt.jar"); + environment.addToClasspath(rtJar); + environment.addToClasspath(new File(JetTestCaseBuilder.getHomeDirectory(), "compiler/testData/mockJDK-1.7/jre/lib/annotations.jar")); + return environment; + } + + + public static void mkdirs(File file) throws IOException { + if (file.isDirectory()) { + return; + } + if (!file.mkdirs()) { + throw new IOException(); + } + } + + public static void rmrf(File file) { + if (file != null) { + File[] children = file.listFiles(); + if (children != null) { + for (File child : children) { + rmrf(child); + } + } + file.delete(); + } + } + + public static void recreateDirectory(File dir) throws IOException { + rmrf(dir); + mkdirs(dir); + } } diff --git a/compiler/tests/org/jetbrains/jet/ReadClassDataTest.java b/compiler/tests/org/jetbrains/jet/ReadClassDataTest.java index e97ad3202cd..45037faf1d9 100644 --- a/compiler/tests/org/jetbrains/jet/ReadClassDataTest.java +++ b/compiler/tests/org/jetbrains/jet/ReadClassDataTest.java @@ -1,6 +1,5 @@ package org.jetbrains.jet; -import com.intellij.lang.ASTFactory; import com.intellij.lang.LanguageASTFactory; import com.intellij.lang.java.JavaLanguage; import com.intellij.openapi.Disposable; @@ -35,9 +34,7 @@ import org.jetbrains.jet.plugin.JetLanguage; import org.junit.Assert; import java.io.File; -import java.io.IOException; import java.lang.reflect.Method; -import java.util.Arrays; import java.util.Set; /** @@ -65,54 +62,20 @@ public class ReadClassDataTest extends UsefulTestCase { protected void setUp() throws Exception { super.setUp(); tmpdir = new File("tmp/" + this.getClass().getSimpleName() + "." + this.getName()); - rmrf(tmpdir); - mkdirs(tmpdir); + JetTestUtils.recreateDirectory(tmpdir); } - @Override - public void tearDown() throws Exception { - Disposer.dispose(myTestRootDisposable); - } - - private void mkdirs(File file) throws IOException { - if (file.isDirectory()) { - return; - } - if (!file.mkdirs()) { - throw new IOException(); - } - } - - private void rmrf(File file) { - if (file != null) { - File[] children = file.listFiles(); - if (children != null) { - for (File child : children) { - rmrf(child); - } - } - file.delete(); - } - } - - private void createMockCoreEnvironment() { - jetCoreEnvironment = new JetCoreEnvironment(myTestRootDisposable); - - final File rtJar = new File(JetTestCaseBuilder.getHomeDirectory(), "compiler/testData/mockJDK-1.7/jre/lib/rt.jar"); - jetCoreEnvironment.addToClasspath(rtJar); - jetCoreEnvironment.addToClasspath(new File(JetTestCaseBuilder.getHomeDirectory(), "compiler/testData/mockJDK-1.7/jre/lib/annotations.jar")); - } @Override public void runTest() throws Exception { - createMockCoreEnvironment(); + jetCoreEnvironment = JetTestUtils.createEnvironmentWithMockJdk(myTestRootDisposable); LanguageASTFactory.INSTANCE.addExplicitExtension(JavaLanguage.INSTANCE, new JavaASTFactory()); String text = FileUtil.loadFile(testFile); - LightVirtualFile virtualFile = new LightVirtualFile("Hello.kt", JetLanguage.INSTANCE, text); + LightVirtualFile virtualFile = new LightVirtualFile(testFile.getName(), JetLanguage.INSTANCE, text); virtualFile.setCharset(CharsetToolkit.UTF8_CHARSET); JetFile psiFile = (JetFile) ((PsiFileFactoryImpl) PsiFileFactory.getInstance(jetCoreEnvironment.getProject())).trySetupPsiForFile(virtualFile, JetLanguage.INSTANCE, true, false); @@ -129,11 +92,10 @@ public class ReadClassDataTest extends UsefulTestCase { Assert.assertEquals("test", namespaceFromSource.getName()); Disposer.dispose(myTestRootDisposable); - - - - createMockCoreEnvironment(); - + + + jetCoreEnvironment = JetTestUtils.createEnvironmentWithMockJdk(myTestRootDisposable); + jetCoreEnvironment.addToClasspath(tmpdir); JetSemanticServices jetSemanticServices = JetSemanticServices.createSemanticServices(jetCoreEnvironment.getProject());