Refactor utilities in AbstractKotlinJpsBuildTestCase

Original commit: b988582531
This commit is contained in:
Alexander Udalov
2017-07-27 12:03:14 +03:00
parent 9332bd3b97
commit ddb863f4a6
5 changed files with 28 additions and 39 deletions
@@ -419,8 +419,8 @@ abstract class AbstractIncrementalJpsTest(
moduleNames = nameToModule.keys moduleNames = nameToModule.keys
} }
AbstractKotlinJpsBuildTestCase.addKotlinRuntimeDependency(myProject) AbstractKotlinJpsBuildTestCase.addKotlinStdlibDependency(myProject)
AbstractKotlinJpsBuildTestCase.addKotlinTestRuntimeDependency(myProject) AbstractKotlinJpsBuildTestCase.addKotlinTestDependency(myProject)
return moduleNames return moduleNames
} }
@@ -18,7 +18,6 @@ package org.jetbrains.kotlin.jps.build;
import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.io.FileUtil;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.jps.builders.JpsBuildTestCase;
import org.jetbrains.jps.model.JpsDummyElement; import org.jetbrains.jps.model.JpsDummyElement;
import org.jetbrains.jps.model.JpsModuleRootModificationUtil; import org.jetbrains.jps.model.JpsModuleRootModificationUtil;
import org.jetbrains.jps.model.JpsProject; import org.jetbrains.jps.model.JpsProject;
@@ -65,39 +64,35 @@ public abstract class AbstractKotlinJpsBuildTestCase extends BaseKotlinJpsBuildT
} }
protected JpsLibrary addKotlinMockRuntimeDependency() { protected JpsLibrary addKotlinMockRuntimeDependency() {
return addDependency(JpsJavaDependencyScope.COMPILE, myProject.getModules(), false, "kotlin-mock-runtime", ForTestCompileRuntime.mockRuntimeJarForTests()); return addDependency("kotlin-mock-runtime", ForTestCompileRuntime.mockRuntimeJarForTests());
} }
protected JpsLibrary addKotlinRuntimeDependency() { protected JpsLibrary addKotlinStdlibDependency() {
return addKotlinRuntimeDependency(myProject); return addKotlinStdlibDependency(myProject);
} }
protected JpsLibrary addKotlinJavaScriptStdlibDependency() { protected JpsLibrary addKotlinJavaScriptStdlibDependency() {
return addKotlinJavaScriptStdlibDependency(myProject); return addDependency("KotlinJavaScript", PathUtil.getKotlinPathsForDistDirectory().getJsStdLibJarPath());
} }
protected JpsLibrary addKotlinJavaScriptDependency(String libraryName, File libraryFile) { static JpsLibrary addKotlinStdlibDependency(@NotNull JpsProject project) {
return addDependency(JpsJavaDependencyScope.COMPILE, myProject.getModules(), false, libraryName, libraryFile); return addKotlinStdlibDependency(project.getModules(), false);
} }
static JpsLibrary addKotlinRuntimeDependency(@NotNull JpsProject project) { static JpsLibrary addKotlinTestDependency(@NotNull JpsProject project) {
return addKotlinRuntimeDependency(JpsJavaDependencyScope.COMPILE, project.getModules(), false); return addDependency(project, "kotlin-test", PathUtil.getKotlinPathsForDistDirectory().getKotlinTestPath());
} }
static JpsLibrary addKotlinTestRuntimeDependency(@NotNull JpsProject project) { protected static JpsLibrary addKotlinStdlibDependency(@NotNull Collection<JpsModule> modules, boolean exported) {
return addDependency(JpsJavaDependencyScope.COMPILE, project.getModules(), false, "kotlin-test", PathUtil.getKotlinPathsForDistDirectory().getKotlinTestPath()); return addDependency(JpsJavaDependencyScope.COMPILE, modules, exported, "kotlin-stdlib", PathUtil.getKotlinPathsForDistDirectory().getStdlibPath());
} }
static JpsLibrary addKotlinJavaScriptStdlibDependency(@NotNull JpsProject project) { protected JpsLibrary addDependency(@NotNull String libraryName, @NotNull File libraryFile) {
return addKotlinJavaScriptStdlibDependency(JpsJavaDependencyScope.COMPILE, project.getModules(), false); return addDependency(myProject, libraryName, libraryFile);
} }
protected static JpsLibrary addKotlinRuntimeDependency(JpsJavaDependencyScope type, Collection<JpsModule> modules, boolean exported) { private static JpsLibrary addDependency(@NotNull JpsProject project, @NotNull String libraryName, @NotNull File libraryFile) {
return addDependency(type, modules, exported, "kotlin-runtime", PathUtil.getKotlinPathsForDistDirectory().getRuntimePath()); return addDependency(JpsJavaDependencyScope.COMPILE, project.getModules(), false, libraryName, libraryFile);
}
protected static JpsLibrary addKotlinJavaScriptStdlibDependency(JpsJavaDependencyScope type, Collection<JpsModule> modules, boolean exported) {
return addDependency(type, modules, exported, "KotlinJavaScript", PathUtil.getKotlinPathsForDistDirectory().getJsStdLibJarPath());
} }
protected static JpsLibrary addDependency(JpsJavaDependencyScope type, Collection<JpsModule> modules, boolean exported, String libraryName, File... file) { protected static JpsLibrary addDependency(JpsJavaDependencyScope type, Collection<JpsModule> modules, boolean exported, String libraryName, File... file) {
@@ -17,7 +17,6 @@
package org.jetbrains.kotlin.jps.build package org.jetbrains.kotlin.jps.build
import com.google.common.collect.Lists import com.google.common.collect.Lists
import com.intellij.openapi.util.Condition
import com.intellij.openapi.util.io.FileUtil import com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.util.io.FileUtil.toSystemIndependentName import com.intellij.openapi.util.io.FileUtil.toSystemIndependentName
import com.intellij.openapi.util.io.FileUtilRt import com.intellij.openapi.util.io.FileUtilRt
@@ -26,7 +25,6 @@ import com.intellij.openapi.vfs.StandardFileSystems
import com.intellij.testFramework.LightVirtualFile import com.intellij.testFramework.LightVirtualFile
import com.intellij.testFramework.UsefulTestCase import com.intellij.testFramework.UsefulTestCase
import com.intellij.util.ArrayUtil import com.intellij.util.ArrayUtil
import com.intellij.util.containers.ContainerUtil
import com.intellij.util.io.URLUtil import com.intellij.util.io.URLUtil
import com.intellij.util.io.ZipUtil import com.intellij.util.io.ZipUtil
import org.jetbrains.jps.ModuleChunk import org.jetbrains.jps.ModuleChunk
@@ -244,7 +242,7 @@ class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() {
when (libraryDependency) { when (libraryDependency) {
NONE -> {} NONE -> {}
JVM_MOCK_RUNTIME -> addKotlinMockRuntimeDependency() JVM_MOCK_RUNTIME -> addKotlinMockRuntimeDependency()
JVM_FULL_RUNTIME -> addKotlinRuntimeDependency() JVM_FULL_RUNTIME -> addKotlinStdlibDependency()
JS_STDLIB -> addKotlinJavaScriptStdlibDependency() JS_STDLIB -> addKotlinJavaScriptStdlibDependency()
} }
} }
@@ -262,7 +260,7 @@ class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() {
fun doTestWithKotlinJavaScriptLibrary() { fun doTestWithKotlinJavaScriptLibrary() {
initProject(JS_STDLIB) initProject(JS_STDLIB)
createKotlinJavaScriptLibraryArchive() createKotlinJavaScriptLibraryArchive()
addKotlinJavaScriptDependency(KOTLIN_JS_LIBRARY, File(workDir, KOTLIN_JS_LIBRARY_JAR)) addDependency(KOTLIN_JS_LIBRARY, File(workDir, KOTLIN_JS_LIBRARY_JAR))
buildAllModules().assertSuccessful() buildAllModules().assertSuccessful()
} }
@@ -326,7 +324,7 @@ class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() {
fun testKotlinJavaScriptProjectWithTwoModulesAndWithLibrary() { fun testKotlinJavaScriptProjectWithTwoModulesAndWithLibrary() {
initProject() initProject()
createKotlinJavaScriptLibraryArchive() createKotlinJavaScriptLibraryArchive()
addKotlinJavaScriptDependency(KOTLIN_JS_LIBRARY, File(workDir, KOTLIN_JS_LIBRARY_JAR)) addDependency(KOTLIN_JS_LIBRARY, File(workDir, KOTLIN_JS_LIBRARY_JAR))
addKotlinJavaScriptStdlibDependency() addKotlinJavaScriptStdlibDependency()
buildAllModules().assertSuccessful() buildAllModules().assertSuccessful()
} }
@@ -342,7 +340,7 @@ class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() {
throw IllegalStateException(ex.message) throw IllegalStateException(ex.message)
} }
addKotlinJavaScriptDependency("KotlinJavaScript", jslibDir) addDependency("KotlinJavaScript", jslibDir)
buildAllModules().assertSuccessful() buildAllModules().assertSuccessful()
assertEquals(EXPECTED_JS_FILES_IN_OUTPUT_FOR_STDLIB_ONLY, contentOfOutputDir(PROJECT_NAME)) assertEquals(EXPECTED_JS_FILES_IN_OUTPUT_FOR_STDLIB_ONLY, contentOfOutputDir(PROJECT_NAME))
@@ -351,7 +349,7 @@ class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() {
fun testKotlinJavaScriptProjectWithDirectoryAsLibrary() { fun testKotlinJavaScriptProjectWithDirectoryAsLibrary() {
initProject(JS_STDLIB) initProject(JS_STDLIB)
addKotlinJavaScriptDependency(KOTLIN_JS_LIBRARY, File(workDir, KOTLIN_JS_LIBRARY)) addDependency(KOTLIN_JS_LIBRARY, File(workDir, KOTLIN_JS_LIBRARY))
buildAllModules().assertSuccessful() buildAllModules().assertSuccessful()
assertEquals(EXPECTED_JS_FILES_IN_OUTPUT_WITH_ADDITIONAL_LIB_AND_DEFAULT_DIR, contentOfOutputDir(PROJECT_NAME)) assertEquals(EXPECTED_JS_FILES_IN_OUTPUT_WITH_ADDITIONAL_LIB_AND_DEFAULT_DIR, contentOfOutputDir(PROJECT_NAME))
@@ -382,7 +380,7 @@ class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() {
fun testKotlinJavaScriptProjectWithLibraryAndErrors() { fun testKotlinJavaScriptProjectWithLibraryAndErrors() {
initProject(JS_STDLIB) initProject(JS_STDLIB)
createKotlinJavaScriptLibraryArchive() createKotlinJavaScriptLibraryArchive()
addKotlinJavaScriptDependency(KOTLIN_JS_LIBRARY, File(workDir, KOTLIN_JS_LIBRARY_JAR)) addDependency(KOTLIN_JS_LIBRARY, File(workDir, KOTLIN_JS_LIBRARY_JAR))
buildAllModules().assertFailed() buildAllModules().assertFailed()
assertEquals(Collections.EMPTY_SET, contentOfOutputDir(PROJECT_NAME)) assertEquals(Collections.EMPTY_SET, contentOfOutputDir(PROJECT_NAME))
@@ -673,7 +671,7 @@ class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() {
AbstractKotlinJpsBuildTestCase.addDependency(JpsJavaDependencyScope.COMPILE, Lists.newArrayList(findModule("module")), false, "module-lib", libraryJar) AbstractKotlinJpsBuildTestCase.addDependency(JpsJavaDependencyScope.COMPILE, Lists.newArrayList(findModule("module")), false, "module-lib", libraryJar)
addKotlinRuntimeDependency() addKotlinStdlibDependency()
val result = buildAllModules() val result = buildAllModules()
result.assertSuccessful() result.assertSuccessful()
@@ -717,11 +715,7 @@ class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() {
fun testReexportedDependency() { fun testReexportedDependency() {
initProject() initProject()
AbstractKotlinJpsBuildTestCase.addKotlinRuntimeDependency(JpsJavaDependencyScope.COMPILE, ContainerUtil.filter(myProject.modules, object : Condition<JpsModule> { AbstractKotlinJpsBuildTestCase.addKotlinStdlibDependency(myProject.modules.filter { module -> module.name == "module2" }, true)
override fun value(module: JpsModule): Boolean {
return module.name == "module2"
}
}), true)
buildAllModules().assertSuccessful() buildAllModules().assertSuccessful()
} }
@@ -948,14 +942,14 @@ class KotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() {
jdk.addRoot(StandardFileSystems.JRT_PROTOCOL_PREFIX + path + URLUtil.JAR_SEPARATOR + "java.base", JpsOrderRootType.COMPILED) jdk.addRoot(StandardFileSystems.JRT_PROTOCOL_PREFIX + path + URLUtil.JAR_SEPARATOR + "java.base", JpsOrderRootType.COMPILED)
loadProject(workDir.absolutePath + File.separator + PROJECT_NAME + ".ipr") loadProject(workDir.absolutePath + File.separator + PROJECT_NAME + ".ipr")
addKotlinRuntimeDependency() addKotlinStdlibDependency()
buildAllModules().assertSuccessful() buildAllModules().assertSuccessful()
} }
fun testCustomDestination() { fun testCustomDestination() {
loadProject(workDir.absolutePath + File.separator + PROJECT_NAME + ".ipr") loadProject(workDir.absolutePath + File.separator + PROJECT_NAME + ".ipr")
addKotlinRuntimeDependency() addKotlinStdlibDependency()
buildAllModules().apply { buildAllModules().apply {
assertSuccessful() assertSuccessful()
@@ -60,7 +60,7 @@ class SimpleKotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() {
b.dependenciesList.addModuleDependency(a) b.dependenciesList.addModuleDependency(a)
).isExported = false ).isExported = false
addKotlinRuntimeDependency() addKotlinStdlibDependency()
rebuildAllModules() rebuildAllModules()
} }
@@ -104,7 +104,7 @@ public class KannotatorJpsTest extends AbstractKotlinJpsBuildTestCase {
private void initProject() { private void initProject() {
addJdk(JDK_NAME); addJdk(JDK_NAME);
loadProject(workDir.getAbsolutePath()); loadProject(workDir.getAbsolutePath());
addKotlinRuntimeDependency(); addKotlinStdlibDependency();
} }
@Override @Override