diff --git a/compiler/tests/org/jetbrains/kotlin/daemon/CompilerDaemonTest.kt b/compiler/tests/org/jetbrains/kotlin/daemon/CompilerDaemonTest.kt index 6c8c7433ed8..672aefed4ab 100644 --- a/compiler/tests/org/jetbrains/kotlin/daemon/CompilerDaemonTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/daemon/CompilerDaemonTest.kt @@ -75,7 +75,7 @@ public class CompilerDaemonTest : KotlinIntegrationTestBase() { val logFile = createTempFile("kotlin-daemon-test.", ".log") - val daemonJVMOptions = configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile.absolutePath}\"", + val daemonJVMOptions = configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile.loggerCompatiblePath}\"", inheritMemoryLimits = false, inheritAdditionalProperties = false) var daemonShotDown = false @@ -154,11 +154,11 @@ public class CompilerDaemonTest : KotlinIntegrationTestBase() { val logFile1 = createTempFile("kotlin-daemon1-test", ".log") val logFile2 = createTempFile("kotlin-daemon2-test", ".log") val daemonJVMOptions1 = - configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile1.absolutePath}\"", + configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile1.loggerCompatiblePath}\"", inheritMemoryLimits = false, inheritAdditionalProperties = false) val daemonJVMOptions2 = - configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile2.absolutePath}\"", + configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile2.loggerCompatiblePath}\"", inheritMemoryLimits = false, inheritAdditionalProperties = false) TestCase.assertTrue(logFile1.length() == 0L && logFile2.length() == 0L) @@ -191,7 +191,7 @@ public class CompilerDaemonTest : KotlinIntegrationTestBase() { val logFile = createTempFile("kotlin-daemon-test", ".log") val daemonJVMOptions = - configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile.absolutePath}\"", + configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile.loggerCompatiblePath}\"", inheritMemoryLimits = false, inheritAdditionalProperties = false) val daemon = KotlinCompilerClient.connectToCompileService(compilerId, flagFile, daemonJVMOptions, daemonOptions, DaemonReportingTargets(out = System.err), autostart = true) @@ -218,7 +218,7 @@ public class CompilerDaemonTest : KotlinIntegrationTestBase() { val logFile = createTempFile("kotlin-daemon-test", ".log") val daemonJVMOptions = - configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile.absolutePath}\"", + configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile.loggerCompatiblePath}\"", inheritMemoryLimits = false, inheritAdditionalProperties = false) val daemon = KotlinCompilerClient.connectToCompileService(compilerId, flagFile, daemonJVMOptions, daemonOptions, DaemonReportingTargets(out = System.err), autostart = true) @@ -249,7 +249,7 @@ public class CompilerDaemonTest : KotlinIntegrationTestBase() { val logFile = createTempFile("kotlin-daemon-test", ".log") val daemonJVMOptions = - configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile.absolutePath}\"", + configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile.loggerCompatiblePath}\"", inheritMemoryLimits = false, inheritAdditionalProperties = false) val daemon = KotlinCompilerClient.connectToCompileService(compilerId, flagFile, daemonJVMOptions, daemonOptions, DaemonReportingTargets(out = System.err), autostart = true) @@ -426,4 +426,12 @@ internal inline fun witFlagFile(prefix: String, suffix: String? = null, body: (F finally { file.delete() } -} \ No newline at end of file +} + +// java.util.logger used in the daemon silently forgets to log into a file specified in the config on Windows, +// if file path is given in windows form (using backslash as a separator); the reason is unknown +// this function makes a path with forward slashed, that works on windows too +internal val File.loggerCompatiblePath: String + get() = + if (OSKind.current == OSKind.Windows) absolutePath.replace('\\', '/') + else absolutePath \ No newline at end of file diff --git a/jps-plugin/test/org/jetbrains/kotlin/jps/build/SimpleKotlinJpsBuildTest.kt b/jps-plugin/test/org/jetbrains/kotlin/jps/build/SimpleKotlinJpsBuildTest.kt index 1ec16d5065e..c0458769bd8 100644 --- a/jps-plugin/test/org/jetbrains/kotlin/jps/build/SimpleKotlinJpsBuildTest.kt +++ b/jps-plugin/test/org/jetbrains/kotlin/jps/build/SimpleKotlinJpsBuildTest.kt @@ -18,10 +18,7 @@ package org.jetbrains.kotlin.jps.build import com.intellij.util.PathUtil import org.jetbrains.jps.model.java.JpsJavaExtensionService -import org.jetbrains.kotlin.rmi.COMPILE_DAEMON_CLIENT_ALIVE_PATH_PROPERTY -import org.jetbrains.kotlin.rmi.COMPILE_DAEMON_ENABLED_PROPERTY -import org.jetbrains.kotlin.rmi.COMPILE_DAEMON_LOG_PATH_PROPERTY -import org.jetbrains.kotlin.rmi.COMPILE_DAEMON_VERBOSE_REPORT_PROPERTY +import org.jetbrains.kotlin.rmi.* import org.jetbrains.kotlin.test.KotlinTestUtils import java.io.File @@ -75,7 +72,7 @@ public class SimpleKotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() { val flagFile = File.createTempFile("kotlin-jps - tests-", "-is-running"); val logFile = File.createTempFile("kotlin-daemon", ".log") System.setProperty(COMPILE_DAEMON_CLIENT_ALIVE_PATH_PROPERTY, flagFile.absolutePath) - System.setProperty(COMPILE_DAEMON_LOG_PATH_PROPERTY, logFile.absolutePath) + System.setProperty(COMPILE_DAEMON_LOG_PATH_PROPERTY, logFile.loggerCompatiblePath) try { testLoadingKotlinFromDifferentModules() } @@ -88,3 +85,13 @@ public class SimpleKotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() { } } } + +// copied from CompilerDaemonTest.kt +// TODO: find shared place for this function +// java.util.logger used in the daemon silently forgets to log into a file specified in the config on Windows, +// if file path is given in windows form (using backslash as a separator); the reason is unknown +// this function makes a path with forward slashed, that works on windows too +internal val File.loggerCompatiblePath: String + get() = + if (OSKind.current == OSKind.Windows) absolutePath.replace('\\', '/') + else absolutePath