diff --git a/compiler/util/src/org/jetbrains/kotlin/config/IncrementalCompilation.java b/compiler/util/src/org/jetbrains/kotlin/config/IncrementalCompilation.java index 67f00a7ce7a..fd93eeac0c0 100644 --- a/compiler/util/src/org/jetbrains/kotlin/config/IncrementalCompilation.java +++ b/compiler/util/src/org/jetbrains/kotlin/config/IncrementalCompilation.java @@ -31,22 +31,12 @@ public class IncrementalCompilation { } @TestOnly - public static void disableIncrementalCompilation() { - System.setProperty(INCREMENTAL_COMPILATION_PROPERTY, "false"); + public static void setIsEnabled(boolean value) { + System.setProperty(INCREMENTAL_COMPILATION_PROPERTY, String.valueOf(value)); } @TestOnly - public static void enableIncrementalCompilation() { - System.setProperty(INCREMENTAL_COMPILATION_PROPERTY, "true"); - } - - @TestOnly - public static void disableExperimental() { - System.setProperty(IS_EXPERIMENTAL_PROPERTY, "false"); - } - - @TestOnly - public static void enableExperimental() { - System.setProperty(IS_EXPERIMENTAL_PROPERTY, "true"); + public static void setIsExperimental(boolean value) { + System.setProperty(IS_EXPERIMENTAL_PROPERTY, String.valueOf(value)); } } \ No newline at end of file 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 a5b81e0b28e..ea41dcde371 100644 --- a/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractIncrementalJpsTest.kt +++ b/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractIncrementalJpsTest.kt @@ -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() } diff --git a/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractIncrementalLazyCachesTest.kt b/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractIncrementalLazyCachesTest.kt index e2b6e143e9c..f7c635517d5 100644 --- a/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractIncrementalLazyCachesTest.kt +++ b/jps-plugin/test/org/jetbrains/kotlin/jps/build/AbstractIncrementalLazyCachesTest.kt @@ -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) { @@ -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()) } } } diff --git a/jps-plugin/test/org/jetbrains/kotlin/jps/build/experimentalIncrementalCompilationTests.kt b/jps-plugin/test/org/jetbrains/kotlin/jps/build/experimentalIncrementalCompilationTests.kt index d958e835def..7959a7025df 100644 --- a/jps-plugin/test/org/jetbrains/kotlin/jps/build/experimentalIncrementalCompilationTests.kt +++ b/jps-plugin/test/org/jetbrains/kotlin/jps/build/experimentalIncrementalCompilationTests.kt @@ -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