Removing caches and rebuilding again in tests.
It helps to find cases when stuck data spoils compilation output.
This commit is contained in:
@@ -28,6 +28,7 @@ import org.jetbrains.jps.util.JpsPathUtil
|
|||||||
import com.intellij.testFramework.UsefulTestCase
|
import com.intellij.testFramework.UsefulTestCase
|
||||||
import org.jetbrains.jet.config.IncrementalCompilation
|
import org.jetbrains.jet.config.IncrementalCompilation
|
||||||
import java.util.ArrayList
|
import java.util.ArrayList
|
||||||
|
import org.jetbrains.jps.builders.impl.BuildDataPathsImpl
|
||||||
import kotlin.test.fail
|
import kotlin.test.fail
|
||||||
|
|
||||||
public abstract class AbstractIncrementalJpsTest : JpsBuildTestCase() {
|
public abstract class AbstractIncrementalJpsTest : JpsBuildTestCase() {
|
||||||
@@ -56,6 +57,14 @@ public abstract class AbstractIncrementalJpsTest : JpsBuildTestCase() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun make(): String {
|
||||||
|
return buildGetLog()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun rebuild() {
|
||||||
|
buildGetLog(CompileScopeTestBuilder.rebuild().allModules())
|
||||||
|
}
|
||||||
|
|
||||||
private fun getModificationsToPerform(): List<List<Modification>> {
|
private fun getModificationsToPerform(): List<List<Modification>> {
|
||||||
|
|
||||||
fun getModificationsForIteration(newSuffix: String, deleteSuffix: String): List<Modification> {
|
fun getModificationsForIteration(newSuffix: String, deleteSuffix: String): List<Modification> {
|
||||||
@@ -91,6 +100,24 @@ public abstract class AbstractIncrementalJpsTest : JpsBuildTestCase() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun rebuildAndCheckOutput() {
|
||||||
|
val outDir = File(getAbsolutePath("out"))
|
||||||
|
val outAfterMake = File(getAbsolutePath("out-after-make"))
|
||||||
|
FileUtil.copyDir(outDir, outAfterMake)
|
||||||
|
|
||||||
|
rebuild()
|
||||||
|
|
||||||
|
assertEqualDirectories(outDir, outAfterMake, { it.name == "script.xml" })
|
||||||
|
|
||||||
|
FileUtil.delete(outAfterMake)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun clearCachesRebuildAndCheckOutput() {
|
||||||
|
FileUtil.delete(BuildDataPathsImpl(myDataStorageRoot).getDataStorageRoot()!!)
|
||||||
|
|
||||||
|
rebuildAndCheckOutput()
|
||||||
|
}
|
||||||
|
|
||||||
protected fun doTest(testDataPath: String) {
|
protected fun doTest(testDataPath: String) {
|
||||||
if (!IncrementalCompilation.ENABLED) {
|
if (!IncrementalCompilation.ENABLED) {
|
||||||
return
|
return
|
||||||
@@ -107,7 +134,7 @@ public abstract class AbstractIncrementalJpsTest : JpsBuildTestCase() {
|
|||||||
addModule("module", array(getAbsolutePath("src")), null, null, addJdk("my jdk"))
|
addModule("module", array(getAbsolutePath("src")), null, null, addJdk("my jdk"))
|
||||||
AbstractKotlinJpsBuildTestCase.addKotlinRuntimeDependency(myProject!!)
|
AbstractKotlinJpsBuildTestCase.addKotlinRuntimeDependency(myProject!!)
|
||||||
|
|
||||||
buildGetLog()
|
make()
|
||||||
|
|
||||||
val modifications = getModificationsToPerform()
|
val modifications = getModificationsToPerform()
|
||||||
val logs = ArrayList<String>()
|
val logs = ArrayList<String>()
|
||||||
@@ -115,19 +142,14 @@ public abstract class AbstractIncrementalJpsTest : JpsBuildTestCase() {
|
|||||||
for (step in modifications) {
|
for (step in modifications) {
|
||||||
step.forEach { it.perform(workDir) }
|
step.forEach { it.perform(workDir) }
|
||||||
|
|
||||||
val log = buildGetLog()
|
val log = make()
|
||||||
logs.add(log)
|
logs.add(log)
|
||||||
}
|
}
|
||||||
|
|
||||||
UsefulTestCase.assertSameLinesWithFile(File(testDataDir, "build.log").getAbsolutePath(), logs.makeString("\n\n"))
|
UsefulTestCase.assertSameLinesWithFile(File(testDataDir, "build.log").getAbsolutePath(), logs.makeString("\n\n"))
|
||||||
|
|
||||||
val outDir = File(getAbsolutePath("out"))
|
rebuildAndCheckOutput()
|
||||||
val outAfterMake = File(getAbsolutePath("out-after-make"))
|
clearCachesRebuildAndCheckOutput()
|
||||||
FileUtil.copyDir(outDir, outAfterMake)
|
|
||||||
|
|
||||||
buildGetLog(CompileScopeTestBuilder.rebuild().allModules())
|
|
||||||
|
|
||||||
assertEqualDirectories(outDir, outAfterMake, { it.name == "script.xml" })
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun doGetProjectDir(): File? = workDir
|
override fun doGetProjectDir(): File? = workDir
|
||||||
|
|||||||
Reference in New Issue
Block a user