diff --git a/jps-plugin/test/org/jetbrains/jet/jps/build/AbstractIncrementalJpsTest.kt b/jps-plugin/test/org/jetbrains/jet/jps/build/AbstractIncrementalJpsTest.kt index 627faaad056..107886f8ea1 100644 --- a/jps-plugin/test/org/jetbrains/jet/jps/build/AbstractIncrementalJpsTest.kt +++ b/jps-plugin/test/org/jetbrains/jet/jps/build/AbstractIncrementalJpsTest.kt @@ -174,15 +174,42 @@ public abstract class AbstractIncrementalJpsTest : JpsBuildTestCase() { testDataDir = File(testDataPath) workDir = FileUtil.createTempDirectory("jps-build", null) + val moduleNames = configureModules() + initialMake() + + val log = performModificationsAndMake(moduleNames) + UsefulTestCase.assertSameLinesWithFile(File(testDataDir, "build.log").getAbsolutePath(), log) + + rebuildAndCheckOutput() + clearCachesRebuildAndCheckOutput() + } + + private fun performModificationsAndMake(moduleNames: Set?): String { + val logs = ArrayList() + + val modifications = getModificationsToPerform(moduleNames) + for (step in modifications) { + step.forEach { it.perform(workDir) } + performAdditionalModifications() + + val log = make() + logs.add(log) + } + + return logs.join("\n\n") + } + + protected open fun performAdditionalModifications() { + } + + // null means one module + private fun configureModules(): Set? { + var moduleNames: Set? JpsJavaExtensionService.getInstance().getOrCreateProjectExtension(myProject) .setOutputUrl(JpsPathUtil.pathToUrl(getAbsolutePath("out"))) val jdk = addJdk("my jdk") - val moduleDependencies = readModuleDependencies() - - val moduleNames: Set? // null means one module - if (moduleDependencies == null) { addModule("module", array(getAbsolutePath("src")), null, null, jdk) @@ -211,23 +238,7 @@ public abstract class AbstractIncrementalJpsTest : JpsBuildTestCase() { moduleNames = nameToModule.keySet() } AbstractKotlinJpsBuildTestCase.addKotlinRuntimeDependency(myProject) - - initialMake() - - val modifications = getModificationsToPerform(moduleNames) - val logs = ArrayList() - - for (step in modifications) { - step.forEach { it.perform(workDir) } - - val log = make() - logs.add(log) - } - - UsefulTestCase.assertSameLinesWithFile(File(testDataDir, "build.log").getAbsolutePath(), logs.join("\n\n")) - - rebuildAndCheckOutput() - clearCachesRebuildAndCheckOutput() + return moduleNames } override fun doGetProjectDir(): File? = workDir