From 1cf5e929815cacec095cd9067568f92ca7238e5f Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Mon, 1 Oct 2012 19:29:22 +0400 Subject: [PATCH] Support multi-file tests with Java in CodegenTestCase --- .../jet/codegen/CodegenTestCase.java | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java b/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java index e46f2d47e22..c75fccfe81e 100644 --- a/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java +++ b/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java @@ -174,6 +174,11 @@ public abstract class CodegenTestCase extends UsefulTestCase { blackBox(); } + protected void blackBoxMultiFile(String expected, boolean classPathInTheSameClassLoader, String... filenames) { + loadFiles(filenames); + blackBox(expected, classPathInTheSameClassLoader); + } + @NotNull private Class loadClassFromType(@NotNull Type type) { try { @@ -287,19 +292,25 @@ public abstract class CodegenTestCase extends UsefulTestCase { } protected void blackBoxFileWithJava(@NotNull String ktFile, boolean classPathInTheSameClassLoader) throws Exception { + File javaClassesTempDirectory = compileJava(ktFile.replaceFirst("\\.kt$", ".java")); + + myEnvironment = new JetCoreEnvironment(getTestRootDisposable(), CompileCompilerDependenciesTest.compilerConfigurationForTests( + ConfigurationKind.JDK_ONLY, TestJdkKind.MOCK_JDK, JetTestUtils.getAnnotationsJar(), javaClassesTempDirectory)); + + blackBoxFile(ktFile, "OK", classPathInTheSameClassLoader); + } + + protected File compileJava(@NotNull String filename) throws IOException { File javaClassesTempDirectory = new File(FileUtil.getTempDirectory(), "java-classes"); JetTestUtils.mkdirs(javaClassesTempDirectory); List options = Arrays.asList( "-d", javaClassesTempDirectory.getPath() ); - File javaFile = new File("compiler/testData/codegen/" + ktFile.replaceFirst("\\.kt$", ".java")); + File javaFile = new File("compiler/testData/codegen/" + filename); JetTestUtils.compileJavaFiles(Collections.singleton(javaFile), options); - myEnvironment = new JetCoreEnvironment(getTestRootDisposable(), CompileCompilerDependenciesTest.compilerConfigurationForTests( - ConfigurationKind.JDK_ONLY, TestJdkKind.MOCK_JDK, JetTestUtils.getAnnotationsJar(), javaClassesTempDirectory)); - - blackBoxFile(ktFile, "OK", classPathInTheSameClassLoader); + return javaClassesTempDirectory; } protected GeneratedClassLoader createClassLoader(ClassFileFactory codegens) {