Drop ConfigurationKind.JDK_AND_ANNOTATIONS, JetTestUtils.getJdkAnnotationsJar()

This commit is contained in:
Alexander Udalov
2015-04-24 21:02:09 +03:00
committed by Dmitry Jemerov
parent 448b3f6195
commit b0a4e812e5
13 changed files with 37 additions and 52 deletions
@@ -146,9 +146,7 @@ public class CodegenTestsOnAndroidGenerator extends UsefulTestCase {
JetTestUtils.createEnvironmentWithJdkAndNullabilityAnnotationsFromIdea( JetTestUtils.createEnvironmentWithJdkAndNullabilityAnnotationsFromIdea(
myTestRootDisposable, ConfigurationKind.ALL, TestJdkKind.FULL_JDK myTestRootDisposable, ConfigurationKind.ALL, TestJdkKind.FULL_JDK
) : ) :
JetTestUtils.createEnvironmentWithMockJdkAndIdeaAnnotations( JetTestUtils.createEnvironmentWithMockJdkAndIdeaAnnotations(myTestRootDisposable);
myTestRootDisposable, ConfigurationKind.JDK_AND_ANNOTATIONS
);
} }
public boolean shouldWriteFilesOnDisk() { public boolean shouldWriteFilesOnDisk() {
@@ -33,7 +33,7 @@ import org.jetbrains.kotlin.utils.UtilsPackage;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.util.Arrays; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -77,10 +77,10 @@ public abstract class KotlinMultiFileTestWithWithJava<M, F> extends JetLiteFixtu
@NotNull @NotNull
protected CompilerConfiguration createCompilerConfiguration(File javaFilesDir) { protected CompilerConfiguration createCompilerConfiguration(File javaFilesDir) {
return JetTestUtils.compilerConfigurationForTests( return JetTestUtils.compilerConfigurationForTests(
ConfigurationKind.JDK_AND_ANNOTATIONS, ConfigurationKind.JDK_ONLY,
TestJdkKind.MOCK_JDK, TestJdkKind.MOCK_JDK,
Arrays.asList(JetTestUtils.getAnnotationsJar()), Collections.singletonList(JetTestUtils.getAnnotationsJar()),
Arrays.asList(javaFilesDir) Collections.singletonList(javaFilesDir)
); );
} }
@@ -16,13 +16,13 @@
package org.jetbrains.kotlin.codegen package org.jetbrains.kotlin.codegen
import org.jetbrains.kotlin.test.ConfigurationKind import junit.framework.TestCase
import org.jetbrains.asm4.ClassReader import org.jetbrains.asm4.ClassReader
import org.jetbrains.asm4.ClassVisitor import org.jetbrains.asm4.ClassVisitor
import org.jetbrains.asm4.Opcodes
import org.jetbrains.asm4.MethodVisitor import org.jetbrains.asm4.MethodVisitor
import org.jetbrains.asm4.Opcodes
import org.jetbrains.kotlin.test.ConfigurationKind
import java.util.ArrayList import java.util.ArrayList
import junit.framework.TestCase
public class MethodOrderTest: CodegenTestCase() { public class MethodOrderTest: CodegenTestCase() {
public fun testDelegatedMethod() { public fun testDelegatedMethod() {
@@ -109,7 +109,7 @@ public class MethodOrderTest: CodegenTestCase() {
} }
private fun doTest(sourceText: String, classSuffix: String, expectedOrder: List<String>) { private fun doTest(sourceText: String, classSuffix: String, expectedOrder: List<String>) {
createEnvironmentWithMockJdkAndIdeaAnnotations(ConfigurationKind.JDK_AND_ANNOTATIONS) createEnvironmentWithMockJdkAndIdeaAnnotations(ConfigurationKind.JDK_ONLY)
myFiles = CodegenTestFiles.create("file.kt", sourceText, myEnvironment!!.project) myFiles = CodegenTestFiles.create("file.kt", sourceText, myEnvironment!!.project)
val classFileForObject = generateClassesInFile().asList().first { it.relativePath.endsWith("$classSuffix.class") } val classFileForObject = generateClassesInFile().asList().first { it.relativePath.endsWith("$classSuffix.class") }
@@ -49,7 +49,7 @@ import static org.jetbrains.kotlin.load.kotlin.PackageClassUtils.getPackageClass
public abstract class AbstractBlackBoxCodegenTest extends CodegenTestCase { public abstract class AbstractBlackBoxCodegenTest extends CodegenTestCase {
public void doTest(@NotNull String filename) { public void doTest(@NotNull String filename) {
createEnvironmentWithMockJdkAndIdeaAnnotations(ConfigurationKind.JDK_AND_ANNOTATIONS); createEnvironmentWithMockJdkAndIdeaAnnotations(ConfigurationKind.JDK_ONLY);
blackBoxFileByFullPath(filename); blackBoxFileByFullPath(filename);
} }
@@ -93,7 +93,7 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir {
} }
protected void doTestCompiledKotlin(@NotNull String ktFileName) throws Exception { protected void doTestCompiledKotlin(@NotNull String ktFileName) throws Exception {
doTestCompiledKotlin(ktFileName, ConfigurationKind.JDK_AND_ANNOTATIONS); doTestCompiledKotlin(ktFileName, ConfigurationKind.JDK_ONLY);
} }
protected void doTestCompiledKotlinWithStdlib(@NotNull String ktFileName) throws Exception { protected void doTestCompiledKotlinWithStdlib(@NotNull String ktFileName) throws Exception {
@@ -236,7 +236,8 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir {
}); });
JetTestUtils.createEnvironmentWithJdkAndNullabilityAnnotationsFromIdea( JetTestUtils.createEnvironmentWithJdkAndNullabilityAnnotationsFromIdea(
getTestRootDisposable(), ConfigurationKind.JDK_AND_ANNOTATIONS, TestJdkKind.MOCK_JDK); getTestRootDisposable(), ConfigurationKind.JDK_ONLY, TestJdkKind.MOCK_JDK
);
Pair<PackageViewDescriptor, BindingContext> javaPackageAndContext = compileJavaAndLoadTestPackageAndBindingContextFromBinary( Pair<PackageViewDescriptor, BindingContext> javaPackageAndContext = compileJavaAndLoadTestPackageAndBindingContextFromBinary(
srcFiles, compiledDir, ConfigurationKind.ALL srcFiles, compiledDir, ConfigurationKind.ALL
@@ -39,7 +39,8 @@ public class AndroidSdkAnnotationsValidityTest extends AbstractSdkAnnotationsVal
@Override @Override
protected KotlinCoreEnvironment createEnvironment(Disposable parentDisposable) { protected KotlinCoreEnvironment createEnvironment(Disposable parentDisposable) {
CompilerConfiguration configuration = JetTestUtils.compilerConfigurationForTests( CompilerConfiguration configuration = JetTestUtils.compilerConfigurationForTests(
ConfigurationKind.JDK_AND_ANNOTATIONS, TestJdkKind.ANDROID_API, JetTestUtils.getAnnotationsJar()); ConfigurationKind.JDK_ONLY, TestJdkKind.ANDROID_API, JetTestUtils.getAnnotationsJar()
);
return KotlinCoreEnvironment.createForTests(parentDisposable, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES); return KotlinCoreEnvironment.createForTests(parentDisposable, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES);
} }
@@ -69,7 +69,8 @@ public class JdkAnnotationsValidityTest extends AbstractSdkAnnotationsValidityTe
private static KotlinCoreEnvironment createFullJdkEnvironment(Disposable parentDisposable) { private static KotlinCoreEnvironment createFullJdkEnvironment(Disposable parentDisposable) {
CompilerConfiguration configuration = JetTestUtils.compilerConfigurationForTests( CompilerConfiguration configuration = JetTestUtils.compilerConfigurationForTests(
ConfigurationKind.JDK_AND_ANNOTATIONS, TestJdkKind.FULL_JDK, JetTestUtils.getAnnotationsJar()); ConfigurationKind.JDK_ONLY, TestJdkKind.FULL_JDK, JetTestUtils.getAnnotationsJar()
);
configuration.add(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY, new File("ideaSDK/lib/jdkAnnotations.jar")); configuration.add(JVMConfigurationKeys.ANNOTATIONS_PATH_KEY, new File("ideaSDK/lib/jdkAnnotations.jar"));
return KotlinCoreEnvironment.createForTests(parentDisposable, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES); return KotlinCoreEnvironment.createForTests(parentDisposable, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES);
} }
@@ -165,13 +165,14 @@ public class ResolveDescriptorsFromExternalLibraries {
if (jar != null) { if (jar != null) {
jetCoreEnvironment = KotlinCoreEnvironment.createForTests( jetCoreEnvironment = KotlinCoreEnvironment.createForTests(
junk, junk,
JetTestUtils.compilerConfigurationForTests(ConfigurationKind.JDK_AND_ANNOTATIONS, TestJdkKind.MOCK_JDK, JetTestUtils.compilerConfigurationForTests(
JetTestUtils.getAnnotationsJar(), jar), ConfigurationKind.JDK_ONLY, TestJdkKind.MOCK_JDK, JetTestUtils.getAnnotationsJar(), jar
),
EnvironmentConfigFiles.JVM_CONFIG_FILES); EnvironmentConfigFiles.JVM_CONFIG_FILES);
} }
else { else {
CompilerConfiguration configuration = CompilerConfiguration configuration =
JetTestUtils.compilerConfigurationForTests(ConfigurationKind.JDK_AND_ANNOTATIONS, TestJdkKind.FULL_JDK); JetTestUtils.compilerConfigurationForTests(ConfigurationKind.JDK_ONLY, TestJdkKind.FULL_JDK);
jetCoreEnvironment = KotlinCoreEnvironment.createForTests(junk, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES); jetCoreEnvironment = KotlinCoreEnvironment.createForTests(junk, configuration, EnvironmentConfigFiles.JVM_CONFIG_FILES);
if (!findRtJar().equals(jar)) { if (!findRtJar().equals(jar)) {
throw new RuntimeException("rt.jar mismatch: " + jar + ", " + findRtJar()); throw new RuntimeException("rt.jar mismatch: " + jar + ", " + findRtJar());
@@ -33,7 +33,7 @@ public abstract class ExtensibleResolveTestCase extends JetLiteFixture {
@Override @Override
protected KotlinCoreEnvironment createEnvironment() { protected KotlinCoreEnvironment createEnvironment() {
return createEnvironmentWithMockJdk(ConfigurationKind.JDK_AND_ANNOTATIONS); return createEnvironmentWithMockJdk(ConfigurationKind.JDK_ONLY);
} }
@Override @Override
@@ -83,7 +83,7 @@ public class ScriptTest {
Disposable rootDisposable = Disposer.newDisposable(); Disposable rootDisposable = Disposer.newDisposable();
try { try {
CompilerConfiguration configuration = CompilerConfiguration configuration =
JetTestUtils.compilerConfigurationForTests(ConfigurationKind.JDK_AND_ANNOTATIONS, TestJdkKind.FULL_JDK); JetTestUtils.compilerConfigurationForTests(ConfigurationKind.JDK_ONLY, TestJdkKind.FULL_JDK);
configuration.put(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, messageCollector); configuration.put(CLIConfigurationKeys.MESSAGE_COLLECTOR_KEY, messageCollector);
addKotlinSourceRoot(configuration, "compiler/testData/script/" + scriptPath); addKotlinSourceRoot(configuration, "compiler/testData/script/" + scriptPath);
configuration.addAll(CommonConfigurationKeys.SCRIPT_DEFINITIONS_KEY, scriptDefinitions); configuration.addAll(CommonConfigurationKeys.SCRIPT_DEFINITIONS_KEY, scriptDefinitions);
@@ -59,7 +59,7 @@ import static org.jetbrains.kotlin.builtins.KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_
public class LoadBuiltinsTest extends KotlinTestWithEnvironment { public class LoadBuiltinsTest extends KotlinTestWithEnvironment {
@Override @Override
protected KotlinCoreEnvironment createEnvironment() { protected KotlinCoreEnvironment createEnvironment() {
return createEnvironmentWithJdk(ConfigurationKind.JDK_AND_ANNOTATIONS, TestJdkKind.MOCK_JDK); return createEnvironmentWithJdk(ConfigurationKind.JDK_ONLY, TestJdkKind.MOCK_JDK);
} }
public void testBuiltIns() throws Exception { public void testBuiltIns() throws Exception {
@@ -92,7 +92,6 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import static org.jetbrains.kotlin.cli.jvm.config.ConfigPackage.*; import static org.jetbrains.kotlin.cli.jvm.config.ConfigPackage.*;
import static org.jetbrains.kotlin.cli.jvm.config.JVMConfigurationKeys.ANNOTATIONS_PATH_KEY;
import static org.jetbrains.kotlin.cli.jvm.config.JVMConfigurationKeys.MODULE_NAME; import static org.jetbrains.kotlin.cli.jvm.config.JVMConfigurationKeys.MODULE_NAME;
import static org.jetbrains.kotlin.jvm.compiler.LoadDescriptorUtil.compileKotlinToDirAndGetAnalysisResult; import static org.jetbrains.kotlin.jvm.compiler.LoadDescriptorUtil.compileKotlinToDirAndGetAnalysisResult;
import static org.jetbrains.kotlin.psi.PsiPackage.JetPsiFactory; import static org.jetbrains.kotlin.psi.PsiPackage.JetPsiFactory;
@@ -337,24 +336,6 @@ public class JetTestUtils {
return new File(getHomeDirectory(), "compiler/testData/mockJDK/jre/lib/annotations.jar"); return new File(getHomeDirectory(), "compiler/testData/mockJDK/jre/lib/annotations.jar");
} }
@NotNull
public static File getJdkAnnotationsJar() {
File jdkAnnotations = new File(getHomeDirectory(), "dist/kotlinc/lib/kotlin-jdk-annotations.jar");
if (!jdkAnnotations.exists()) {
throw new RuntimeException("Kotlin JDK annotations jar not found; please run 'ant dist' to build it");
}
return jdkAnnotations;
}
@NotNull
public static File getAndroidSdkAnnotationsJar() {
File androidSdkAnnotations = new File(getHomeDirectory(), "dist/kotlinc/lib/kotlin-android-sdk-annotations.jar");
if (!androidSdkAnnotations.exists()) {
throw new RuntimeException("Kotlin Android SDK annotations jar not found; please run 'ant dist' to build it");
}
return androidSdkAnnotations;
}
public static void mkdirs(File file) throws IOException { public static void mkdirs(File file) throws IOException {
if (file.isDirectory()) { if (file.isDirectory()) {
return; return;
@@ -471,15 +452,6 @@ public class JetTestUtils {
addJvmClasspathRoots(configuration, classpath); addJvmClasspathRoots(configuration, classpath);
if (configurationKind.getWithJdkAnnotations()) {
if (jdkKind == TestJdkKind.ANDROID_API) {
configuration.add(ANNOTATIONS_PATH_KEY, getAndroidSdkAnnotationsJar());
}
else {
configuration.add(ANNOTATIONS_PATH_KEY, getJdkAnnotationsJar());
}
}
configuration.put(MODULE_NAME, "compilerConfigurationForTests"); configuration.put(MODULE_NAME, "compilerConfigurationForTests");
return configuration; return configuration;
@@ -41,27 +41,38 @@ public class PluginTestCaseBase {
return JetTestUtils.getHomeDirectory() + TEST_DATA_PROJECT_RELATIVE; return JetTestUtils.getHomeDirectory() + TEST_DATA_PROJECT_RELATIVE;
} }
@NotNull
private static Sdk getSdk(String sdkHome) { private static Sdk getSdk(String sdkHome) {
Sdk sdk = JavaSdk.getInstance().createJdk("JDK", sdkHome, true); Sdk sdk = JavaSdk.getInstance().createJdk("JDK", sdkHome, true);
SdkModificator modificator = sdk.getSdkModificator(); SdkModificator modificator = sdk.getSdkModificator();
JavaSdkImpl.attachJdkAnnotations(modificator); VirtualFile file = LocalFileSystem.getInstance().findFileByIoFile(getJdkAnnotationsJar());
VirtualFile file = LocalFileSystem.getInstance().findFileByIoFile(JetTestUtils.getJdkAnnotationsJar());
assert file != null; assert file != null;
modificator.addRoot(JarFileSystem.getInstance().getJarRootForLocalFile(file), AnnotationOrderRootType.getInstance()); modificator.addRoot(JarFileSystem.getInstance().getJarRootForLocalFile(file), AnnotationOrderRootType.getInstance());
modificator.commitChanges(); modificator.commitChanges();
return sdk; return sdk;
} }
@NotNull
public static Sdk mockJdk() { public static Sdk mockJdk() {
return getSdk("compiler/testData/mockJDK/jre"); return getSdk("compiler/testData/mockJDK/jre");
} }
@NotNull
public static Sdk fullJdk() { public static Sdk fullJdk() {
String javaHome = System.getProperty("java.home"); String javaHome = System.getProperty("java.home");
assert new File(javaHome).isDirectory(); assert new File(javaHome).isDirectory();
return getSdk(javaHome); return getSdk(javaHome);
} }
@NotNull
public static File getJdkAnnotationsJar() {
File jdkAnnotations = new File(JetTestUtils.getHomeDirectory(), "dist/kotlinc/lib/kotlin-jdk-annotations.jar");
if (!jdkAnnotations.exists()) {
throw new RuntimeException("Kotlin JDK annotations jar not found; please run 'ant dist' to build it");
}
return jdkAnnotations;
}
public static boolean isAllFilesPresentTest(@NotNull String testName) { public static boolean isAllFilesPresentTest(@NotNull String testName) {
return StringUtil.startsWithIgnoreCase(testName, "allFilesPresentIn"); return StringUtil.startsWithIgnoreCase(testName, "allFilesPresentIn");
} }