JetTestUtils: change signature of compileJavaFile - take collection of files to compile and list of javac options
LoadDescriptorUtil: remove duplicate code
This commit is contained in:
@@ -24,7 +24,6 @@ import com.intellij.openapi.project.Project;
|
|||||||
import com.intellij.openapi.util.ShutDownTracker;
|
import com.intellij.openapi.util.ShutDownTracker;
|
||||||
import com.intellij.openapi.util.io.FileUtil;
|
import com.intellij.openapi.util.io.FileUtil;
|
||||||
import com.intellij.openapi.vfs.CharsetToolkit;
|
import com.intellij.openapi.vfs.CharsetToolkit;
|
||||||
import com.intellij.psi.PsiFile;
|
|
||||||
import com.intellij.psi.PsiFileFactory;
|
import com.intellij.psi.PsiFileFactory;
|
||||||
import com.intellij.psi.impl.PsiFileFactoryImpl;
|
import com.intellij.psi.impl.PsiFileFactoryImpl;
|
||||||
import com.intellij.testFramework.LightVirtualFile;
|
import com.intellij.testFramework.LightVirtualFile;
|
||||||
@@ -349,14 +348,11 @@ public class JetTestUtils {
|
|||||||
return result.toString();
|
return result.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void compileJavaFile(@NotNull File file, @NotNull File outputDirectory) throws IOException {
|
public static void compileJavaFiles(@NotNull Collection<File> files, List<String> options) throws IOException {
|
||||||
JavaCompiler javaCompiler = ToolProvider.getSystemJavaCompiler();
|
JavaCompiler javaCompiler = ToolProvider.getSystemJavaCompiler();
|
||||||
StandardJavaFileManager fileManager = javaCompiler.getStandardFileManager(null, Locale.ENGLISH, Charset.forName("utf-8"));
|
StandardJavaFileManager fileManager = javaCompiler.getStandardFileManager(null, Locale.ENGLISH, Charset.forName("utf-8"));
|
||||||
try {
|
try {
|
||||||
Iterable<? extends JavaFileObject> javaFileObjectsFromFiles = fileManager.getJavaFileObjectsFromFiles(Collections.singleton(file));
|
Iterable<? extends JavaFileObject> javaFileObjectsFromFiles = fileManager.getJavaFileObjectsFromFiles(files);
|
||||||
List<String> options = Arrays.asList(
|
|
||||||
"-d", outputDirectory.getPath()
|
|
||||||
);
|
|
||||||
JavaCompiler.CompilationTask task = javaCompiler.getTask(null, fileManager, null, options, null, javaFileObjectsFromFiles);
|
JavaCompiler.CompilationTask task = javaCompiler.getTask(null, fileManager, null, options, null, javaFileObjectsFromFiles);
|
||||||
|
|
||||||
Assert.assertTrue(task.call());
|
Assert.assertTrue(task.call());
|
||||||
|
|||||||
@@ -52,6 +52,8 @@ import java.lang.reflect.Method;
|
|||||||
import java.net.MalformedURLException;
|
import java.net.MalformedURLException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.net.URLClassLoader;
|
import java.net.URLClassLoader;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -267,9 +269,12 @@ public abstract class CodegenTestCase extends UsefulTestCase {
|
|||||||
protected void blackBoxFileWithJava(@NotNull String ktFile) throws Exception {
|
protected void blackBoxFileWithJava(@NotNull String ktFile) throws Exception {
|
||||||
File javaClassesTempDirectory = new File(FileUtil.getTempDirectory(), "java-classes");
|
File javaClassesTempDirectory = new File(FileUtil.getTempDirectory(), "java-classes");
|
||||||
JetTestUtils.mkdirs(javaClassesTempDirectory);
|
JetTestUtils.mkdirs(javaClassesTempDirectory);
|
||||||
JetTestUtils.compileJavaFile(
|
List<String> options = Arrays.asList(
|
||||||
new File("compiler/testData/codegen/" + ktFile.replaceFirst("\\.kt$", ".java")),
|
"-d", javaClassesTempDirectory.getPath()
|
||||||
javaClassesTempDirectory);
|
);
|
||||||
|
|
||||||
|
File javaFile = new File("compiler/testData/codegen/" + ktFile.replaceFirst("\\.kt$", ".java"));
|
||||||
|
JetTestUtils.compileJavaFiles(Collections.singleton(javaFile), options);
|
||||||
|
|
||||||
myEnvironment = new JetCoreEnvironment(getTestRootDisposable(), CompileCompilerDependenciesTest.compilerConfigurationForTests(
|
myEnvironment = new JetCoreEnvironment(getTestRootDisposable(), CompileCompilerDependenciesTest.compilerConfigurationForTests(
|
||||||
ConfigurationKind.JDK_ONLY, TestJdkKind.MOCK_JDK, JetTestUtils.getAnnotationsJar(), javaClassesTempDirectory));
|
ConfigurationKind.JDK_ONLY, TestJdkKind.MOCK_JDK, JetTestUtils.getAnnotationsJar(), javaClassesTempDirectory));
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ package org.jetbrains.jet.jvm.compiler;
|
|||||||
import junit.framework.Test;
|
import junit.framework.Test;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.JetTestCaseBuilder;
|
import org.jetbrains.jet.JetTestCaseBuilder;
|
||||||
|
import org.jetbrains.jet.JetTestUtils;
|
||||||
import org.jetbrains.jet.test.TestCaseWithTmpdir;
|
import org.jetbrains.jet.test.TestCaseWithTmpdir;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
|
||||||
@@ -27,7 +28,6 @@ import java.util.Arrays;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static org.jetbrains.jet.jvm.compiler.LoadDescriptorUtil.compileJavaToDir;
|
|
||||||
import static org.jetbrains.jet.jvm.compiler.LoadDescriptorUtil.compileKotlinToDirAndGetAnalyzeExhaust;
|
import static org.jetbrains.jet.jvm.compiler.LoadDescriptorUtil.compileKotlinToDirAndGetAnalyzeExhaust;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -62,7 +62,7 @@ public class CompileJavaAgainstKotlinTest extends TestCaseWithTmpdir {
|
|||||||
"-classpath", tmpdir.getPath() + System.getProperty("path.separator") + "out/production/stdlib",
|
"-classpath", tmpdir.getPath() + System.getProperty("path.separator") + "out/production/stdlib",
|
||||||
"-d", tmpdir.getPath()
|
"-d", tmpdir.getPath()
|
||||||
);
|
);
|
||||||
compileJavaToDir(Collections.singleton(javaFile), options);
|
JetTestUtils.compileJavaFiles(Collections.singleton(javaFile), options);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Test suite() {
|
public static Test suite() {
|
||||||
|
|||||||
@@ -119,27 +119,13 @@ public final class LoadDescriptorUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void compileJavaWithAnnotationsJar(@NotNull Collection<File> javaFiles, @NotNull File outDir) throws IOException {
|
private static void compileJavaWithAnnotationsJar(@NotNull Collection<File> javaFiles, @NotNull File outDir) throws IOException {
|
||||||
compileJavaToDir(javaFiles, Arrays.asList(
|
String classPath = "out/production/runtime" + File.pathSeparator + JetTestUtils.getAnnotationsJar().getPath();
|
||||||
"-classpath", "out/production/runtime" + File.pathSeparator + JetTestUtils.getAnnotationsJar().getPath(),
|
JetTestUtils.compileJavaFiles(javaFiles, Arrays.asList(
|
||||||
|
"-classpath", classPath,
|
||||||
"-d", outDir.getPath()
|
"-d", outDir.getPath()
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void compileJavaToDir(@NotNull Collection<File> javaFiles, @NotNull List<String> options) throws IOException {
|
|
||||||
JavaCompiler javaCompiler = ToolProvider.getSystemJavaCompiler();
|
|
||||||
|
|
||||||
StandardJavaFileManager fileManager = javaCompiler.getStandardFileManager(null, Locale.ENGLISH, Charset.forName("utf-8"));
|
|
||||||
try {
|
|
||||||
Iterable<? extends JavaFileObject> javaFileObjectsFromFiles = fileManager.getJavaFileObjectsFromFiles(javaFiles);
|
|
||||||
JavaCompiler.CompilationTask task = javaCompiler.getTask(null, fileManager, null, options, null, javaFileObjectsFromFiles);
|
|
||||||
|
|
||||||
Assert.assertTrue(task.call());
|
|
||||||
}
|
|
||||||
finally {
|
|
||||||
fileManager.close();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public static NamespaceDescriptor analyzeKotlinAndLoadTestNamespace(@NotNull File ktFile, @NotNull Disposable disposable) throws Exception {
|
public static NamespaceDescriptor analyzeKotlinAndLoadTestNamespace(@NotNull File ktFile, @NotNull Disposable disposable) throws Exception {
|
||||||
JetFileAndExhaust fileAndExhaust = JetFileAndExhaust.createJetFileAndAnalyze(ktFile, disposable);
|
JetFileAndExhaust fileAndExhaust = JetFileAndExhaust.createJetFileAndAnalyze(ktFile, disposable);
|
||||||
|
|||||||
Reference in New Issue
Block a user