From b57d2ff702f0051be390532ec8d045d7dd3dfe66 Mon Sep 17 00:00:00 2001 From: Sergey Mashkov Date: Tue, 24 Nov 2015 16:01:52 +0300 Subject: [PATCH] Add kotlin.test library to build distribution and provide for tests --- .../codegen/forTestCompile/ForTestCompileRuntime.java | 5 +++++ .../tests/org/jetbrains/kotlin/test/KotlinTestUtils.java | 1 + .../util/src/org/jetbrains/kotlin/utils/KotlinPaths.java | 3 +++ .../org/jetbrains/kotlin/utils/KotlinPathsFromHomeDir.java | 6 ++++++ compiler/util/src/org/jetbrains/kotlin/utils/PathUtil.java | 1 + .../org/jetbrains/kotlin/idea/test/ConfigLibraryUtil.java | 4 ++++ .../kotlin/jps/build/AbstractIncrementalJpsTest.kt | 1 + .../kotlin/jps/build/AbstractKotlinJpsBuildTestCase.java | 4 ++++ resources/kotlinManifest.properties | 2 ++ 9 files changed, 27 insertions(+) diff --git a/compiler/tests/org/jetbrains/kotlin/codegen/forTestCompile/ForTestCompileRuntime.java b/compiler/tests/org/jetbrains/kotlin/codegen/forTestCompile/ForTestCompileRuntime.java index 2531beddf54..f6c4c8cbb18 100644 --- a/compiler/tests/org/jetbrains/kotlin/codegen/forTestCompile/ForTestCompileRuntime.java +++ b/compiler/tests/org/jetbrains/kotlin/codegen/forTestCompile/ForTestCompileRuntime.java @@ -36,6 +36,11 @@ public class ForTestCompileRuntime { return assertExists(new File("dist/kotlinc/lib/kotlin-runtime.jar")); } + @NotNull + public static File kotlinTestJarForTests() { + return assertExists(new File("dist/kotlinc/lib/kotlin-test.jar")); + } + @NotNull public static File reflectJarForTests() { return assertExists(new File("dist/kotlinc/lib/kotlin-reflect.jar")); diff --git a/compiler/tests/org/jetbrains/kotlin/test/KotlinTestUtils.java b/compiler/tests/org/jetbrains/kotlin/test/KotlinTestUtils.java index 68b11c97bc4..2b6d388d740 100644 --- a/compiler/tests/org/jetbrains/kotlin/test/KotlinTestUtils.java +++ b/compiler/tests/org/jetbrains/kotlin/test/KotlinTestUtils.java @@ -446,6 +446,7 @@ public class KotlinTestUtils { if (configurationKind.getWithRuntime()) { JvmContentRootsKt.addJvmClasspathRoot(configuration, ForTestCompileRuntime.runtimeJarForTests()); + JvmContentRootsKt.addJvmClasspathRoot(configuration, ForTestCompileRuntime.kotlinTestJarForTests()); } if (configurationKind.getWithReflection()) { JvmContentRootsKt.addJvmClasspathRoot(configuration, ForTestCompileRuntime.reflectJarForTests()); diff --git a/compiler/util/src/org/jetbrains/kotlin/utils/KotlinPaths.java b/compiler/util/src/org/jetbrains/kotlin/utils/KotlinPaths.java index 29c0245baa5..de731ac7ef8 100644 --- a/compiler/util/src/org/jetbrains/kotlin/utils/KotlinPaths.java +++ b/compiler/util/src/org/jetbrains/kotlin/utils/KotlinPaths.java @@ -33,6 +33,9 @@ public interface KotlinPaths { @NotNull File getReflectPath(); + @NotNull + File getKotlinTestPath(); + @NotNull File getRuntimeSourcesPath(); diff --git a/compiler/util/src/org/jetbrains/kotlin/utils/KotlinPathsFromHomeDir.java b/compiler/util/src/org/jetbrains/kotlin/utils/KotlinPathsFromHomeDir.java index 6ba4985fe20..3b51076ab80 100644 --- a/compiler/util/src/org/jetbrains/kotlin/utils/KotlinPathsFromHomeDir.java +++ b/compiler/util/src/org/jetbrains/kotlin/utils/KotlinPathsFromHomeDir.java @@ -52,6 +52,12 @@ public class KotlinPathsFromHomeDir implements KotlinPaths { return getLibraryFile(PathUtil.KOTLIN_JAVA_REFLECT_JAR); } + @NotNull + @Override + public File getKotlinTestPath() { + return getLibraryFile(PathUtil.KOTLIN_TEST_JAR); + } + @NotNull @Override public File getRuntimeSourcesPath() { diff --git a/compiler/util/src/org/jetbrains/kotlin/utils/PathUtil.java b/compiler/util/src/org/jetbrains/kotlin/utils/PathUtil.java index 31b0913d4d8..6e103d584f0 100644 --- a/compiler/util/src/org/jetbrains/kotlin/utils/PathUtil.java +++ b/compiler/util/src/org/jetbrains/kotlin/utils/PathUtil.java @@ -34,6 +34,7 @@ public class PathUtil { public static final String ANDROID_SDK_ANNOTATIONS_JAR = "kotlin-android-sdk-annotations.jar"; public static final String KOTLIN_JAVA_RUNTIME_JAR = "kotlin-runtime.jar"; public static final String KOTLIN_JAVA_REFLECT_JAR = "kotlin-reflect.jar"; + public static final String KOTLIN_TEST_JAR = "kotlin-test.jar"; public static final String KOTLIN_JAVA_RUNTIME_SRC_JAR = "kotlin-runtime-sources.jar"; public static final String KOTLIN_COMPILER_JAR = "kotlin-compiler.jar"; diff --git a/idea/idea-test-framework/src/org/jetbrains/kotlin/idea/test/ConfigLibraryUtil.java b/idea/idea-test-framework/src/org/jetbrains/kotlin/idea/test/ConfigLibraryUtil.java index 748d35bcf1f..5ed2fcc71ad 100644 --- a/idea/idea-test-framework/src/org/jetbrains/kotlin/idea/test/ConfigLibraryUtil.java +++ b/idea/idea-test-framework/src/org/jetbrains/kotlin/idea/test/ConfigLibraryUtil.java @@ -41,6 +41,7 @@ import java.util.List; */ public class ConfigLibraryUtil { private static final String DEFAULT_JAVA_RUNTIME_LIB_NAME = "JAVA_RUNTIME_LIB_NAME"; + private static final String DEFAULT_KOTLIN_TEST_LIB_NAME = "KOTLIN_TEST_LIB_NAME"; private static final String DEFAULT_KOTLIN_JS_STDLIB_NAME = "KOTLIN_JS_STDLIB_NAME"; private ConfigLibraryUtil() { @@ -67,6 +68,8 @@ public class ConfigLibraryUtil { public static void configureKotlinRuntime(Module module) { addLibrary(getKotlinRuntimeLibEditor(DEFAULT_JAVA_RUNTIME_LIB_NAME, PathUtil.getKotlinPathsForDistDirectory().getRuntimePath()), module); + addLibrary(getKotlinRuntimeLibEditor(DEFAULT_KOTLIN_TEST_LIB_NAME, PathUtil.getKotlinPathsForDistDirectory().getKotlinTestPath()), + module); } public static void configureKotlinJsRuntime(Module module) { @@ -76,6 +79,7 @@ public class ConfigLibraryUtil { public static void unConfigureKotlinRuntime(Module module) { removeLibrary(module, DEFAULT_JAVA_RUNTIME_LIB_NAME); + removeLibrary(module, DEFAULT_KOTLIN_TEST_LIB_NAME); } public static void unConfigureKotlinRuntimeAndSdk(Module module, Sdk sdk) { diff --git a/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractIncrementalJpsTest.kt b/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractIncrementalJpsTest.kt index ea41dcde371..11d72201d7c 100644 --- a/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractIncrementalJpsTest.kt +++ b/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractIncrementalJpsTest.kt @@ -500,6 +500,7 @@ public abstract class AbstractIncrementalJpsTest( moduleNames = nameToModule.keySet() } AbstractKotlinJpsBuildTestCase.addKotlinRuntimeDependency(myProject) + AbstractKotlinJpsBuildTestCase.addKotlinTestRuntimeDependency(myProject) return moduleNames } diff --git a/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractKotlinJpsBuildTestCase.java b/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractKotlinJpsBuildTestCase.java index b633b033098..ede371c900a 100644 --- a/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractKotlinJpsBuildTestCase.java +++ b/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractKotlinJpsBuildTestCase.java @@ -91,6 +91,10 @@ public abstract class AbstractKotlinJpsBuildTestCase extends JpsBuildTestCase { return addKotlinRuntimeDependency(JpsJavaDependencyScope.COMPILE, project.getModules(), false); } + static JpsLibrary addKotlinTestRuntimeDependency(@NotNull JpsProject project) { + return addDependency(JpsJavaDependencyScope.COMPILE, project.getModules(), false, "kotlin-test", PathUtil.getKotlinPathsForDistDirectory().getKotlinTestPath()); + } + static JpsLibrary addKotlinJavaScriptStdlibDependency(@NotNull JpsProject project) { return addKotlinJavaScriptStdlibDependency(JpsJavaDependencyScope.COMPILE, project.getModules(), false); } diff --git a/resources/kotlinManifest.properties b/resources/kotlinManifest.properties index a8fc38a8d65..dee49b889c9 100644 --- a/resources/kotlinManifest.properties +++ b/resources/kotlinManifest.properties @@ -18,5 +18,7 @@ manifest.impl.title.kotlin.preloader=Kotlin Preloader manifest.impl.title.kotlin.runner=Kotlin Runner +manifest.impl.title.kotlin.test=Kotlin Reflect Sources + manifest.impl.title.kotlin.jdk.annotations=Kotlin Compiler JDK Annotations manifest.impl.title.kotlin.android.sdk.annotations=Kotlin Compiler Android SDK Annotations