Support multi-file tests with Java in CodegenTestCase
This commit is contained in:
@@ -174,6 +174,11 @@ public abstract class CodegenTestCase extends UsefulTestCase {
|
|||||||
blackBox();
|
blackBox();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void blackBoxMultiFile(String expected, boolean classPathInTheSameClassLoader, String... filenames) {
|
||||||
|
loadFiles(filenames);
|
||||||
|
blackBox(expected, classPathInTheSameClassLoader);
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private Class<?> loadClassFromType(@NotNull Type type) {
|
private Class<?> loadClassFromType(@NotNull Type type) {
|
||||||
try {
|
try {
|
||||||
@@ -287,19 +292,25 @@ public abstract class CodegenTestCase extends UsefulTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void blackBoxFileWithJava(@NotNull String ktFile, boolean classPathInTheSameClassLoader) throws Exception {
|
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");
|
File javaClassesTempDirectory = new File(FileUtil.getTempDirectory(), "java-classes");
|
||||||
JetTestUtils.mkdirs(javaClassesTempDirectory);
|
JetTestUtils.mkdirs(javaClassesTempDirectory);
|
||||||
List<String> options = Arrays.asList(
|
List<String> options = Arrays.asList(
|
||||||
"-d", javaClassesTempDirectory.getPath()
|
"-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);
|
JetTestUtils.compileJavaFiles(Collections.singleton(javaFile), options);
|
||||||
|
|
||||||
myEnvironment = new JetCoreEnvironment(getTestRootDisposable(), CompileCompilerDependenciesTest.compilerConfigurationForTests(
|
return javaClassesTempDirectory;
|
||||||
ConfigurationKind.JDK_ONLY, TestJdkKind.MOCK_JDK, JetTestUtils.getAnnotationsJar(), javaClassesTempDirectory));
|
|
||||||
|
|
||||||
blackBoxFile(ktFile, "OK", classPathInTheSameClassLoader);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected GeneratedClassLoader createClassLoader(ClassFileFactory codegens) {
|
protected GeneratedClassLoader createClassLoader(ClassFileFactory codegens) {
|
||||||
|
|||||||
Reference in New Issue
Block a user