Save system properties in incremental jps tests

Original commit: d53cd3c70b
This commit is contained in:
Alexey Tsvetkov
2015-12-02 20:25:25 +03:00
parent a1c310812a
commit 1309da6996
3 changed files with 24 additions and 38 deletions
@@ -53,6 +53,7 @@ import org.jetbrains.kotlin.jps.incremental.getKotlinCache
import org.jetbrains.kotlin.test.KotlinTestUtils
import org.jetbrains.kotlin.utils.Printer
import org.jetbrains.kotlin.utils.keysToMap
import java.io.ByteArrayInputStream
import java.io.ByteArrayOutputStream
import java.io.File
import java.io.PrintStream
@@ -106,14 +107,25 @@ public abstract class AbstractIncrementalJpsTest(
Logger.getRootLogger().addAppender(console)
}
private val systemPropertiesBackup = run {
val props = System.getProperties()
val output = ByteArrayOutputStream()
props.store(output, "System properties backup")
output.toByteArray()
}
private fun restoreSystemProperties() {
val input = ByteArrayInputStream(systemPropertiesBackup)
val props = Properties()
props.load(input)
System.setProperties(props)
}
override fun setUp() {
super.setUp()
System.setProperty("kotlin.jps.tests", "true")
lookupsDuringTest = hashSetOf()
if (enableExperimentalIncrementalCompilation) {
IncrementalCompilation.enableExperimental()
}
IncrementalCompilation.setIsExperimental(enableExperimentalIncrementalCompilation)
if (DEBUG_LOGGING_ENABLED) {
enableDebugLogging()
@@ -121,12 +133,7 @@ public abstract class AbstractIncrementalJpsTest(
}
override fun tearDown() {
System.clearProperty("kotlin.jps.tests")
if (enableExperimentalIncrementalCompilation) {
IncrementalCompilation.disableExperimental()
}
restoreSystemProperties()
super.tearDown()
}
@@ -33,16 +33,11 @@ public abstract class AbstractIncrementalLazyCachesTest : AbstractIncrementalJps
get() = "expected-kotlin-caches.txt"
override fun doTest(testDataPath: String) {
try {
super.doTest(testDataPath)
super.doTest(testDataPath)
val actual = dumpKotlinCachesFileNames()
val expectedFile = File(testDataPath, expectedCachesFileName)
UsefulTestCase.assertSameLinesWithFile(expectedFile.canonicalPath, actual)
}
finally {
IncrementalCompilation.enableIncrementalCompilation()
}
val actual = dumpKotlinCachesFileNames()
val expectedFile = File(testDataPath, expectedCachesFileName)
UsefulTestCase.assertSameLinesWithFile(expectedFile.canonicalPath, actual)
}
override fun performAdditionalModifications(modifications: List<AbstractIncrementalJpsTest.Modification>) {
@@ -55,20 +50,10 @@ public abstract class AbstractIncrementalLazyCachesTest : AbstractIncrementalJps
when {
name.endsWith("incremental-compilation") -> {
if (modification.dataFile.readAsBool()) {
IncrementalCompilation.enableIncrementalCompilation()
}
else {
IncrementalCompilation.disableIncrementalCompilation()
}
IncrementalCompilation.setIsEnabled(modification.dataFile.readAsBool())
}
name.endsWith("experimental-compilation") -> {
if (modification.dataFile.readAsBool()) {
IncrementalCompilation.enableExperimental()
}
else {
IncrementalCompilation.disableExperimental()
}
IncrementalCompilation.setIsExperimental(modification.dataFile.readAsBool())
}
}
}
@@ -31,13 +31,7 @@ abstract class AbstractExperimentalIncrementalLazyCachesTest : AbstractIncrement
get() = "experimental-expected-kotlin-caches.txt"
}
abstract class AbstractExperimentalChangeIncrementalOptionTest : AbstractIncrementalLazyCachesTest() {
override fun setUp() {
super.setUp()
IncrementalCompilation.enableIncrementalCompilation()
IncrementalCompilation.disableExperimental()
}
}
abstract class AbstractExperimentalChangeIncrementalOptionTest : AbstractIncrementalLazyCachesTest()
abstract class AbstractExperimentalIncrementalCacheVersionChangedTest : AbstractIncrementalCacheVersionChangedTest() {
override val enableExperimentalIncrementalCompilation = true