Passing a log file name in logger-compatible format on Windows in tests, fixes problems with daemon tests on Windows
This commit is contained in:
@@ -75,7 +75,7 @@ public class CompilerDaemonTest : KotlinIntegrationTestBase() {
|
|||||||
|
|
||||||
val logFile = createTempFile("kotlin-daemon-test.", ".log")
|
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)
|
inheritMemoryLimits = false, inheritAdditionalProperties = false)
|
||||||
var daemonShotDown = false
|
var daemonShotDown = false
|
||||||
|
|
||||||
@@ -154,11 +154,11 @@ public class CompilerDaemonTest : KotlinIntegrationTestBase() {
|
|||||||
val logFile1 = createTempFile("kotlin-daemon1-test", ".log")
|
val logFile1 = createTempFile("kotlin-daemon1-test", ".log")
|
||||||
val logFile2 = createTempFile("kotlin-daemon2-test", ".log")
|
val logFile2 = createTempFile("kotlin-daemon2-test", ".log")
|
||||||
val daemonJVMOptions1 =
|
val daemonJVMOptions1 =
|
||||||
configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile1.absolutePath}\"",
|
configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile1.loggerCompatiblePath}\"",
|
||||||
inheritMemoryLimits = false, inheritAdditionalProperties = false)
|
inheritMemoryLimits = false, inheritAdditionalProperties = false)
|
||||||
|
|
||||||
val daemonJVMOptions2 =
|
val daemonJVMOptions2 =
|
||||||
configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile2.absolutePath}\"",
|
configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile2.loggerCompatiblePath}\"",
|
||||||
inheritMemoryLimits = false, inheritAdditionalProperties = false)
|
inheritMemoryLimits = false, inheritAdditionalProperties = false)
|
||||||
|
|
||||||
TestCase.assertTrue(logFile1.length() == 0L && logFile2.length() == 0L)
|
TestCase.assertTrue(logFile1.length() == 0L && logFile2.length() == 0L)
|
||||||
@@ -191,7 +191,7 @@ public class CompilerDaemonTest : KotlinIntegrationTestBase() {
|
|||||||
|
|
||||||
val logFile = createTempFile("kotlin-daemon-test", ".log")
|
val logFile = createTempFile("kotlin-daemon-test", ".log")
|
||||||
val daemonJVMOptions =
|
val daemonJVMOptions =
|
||||||
configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile.absolutePath}\"",
|
configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile.loggerCompatiblePath}\"",
|
||||||
inheritMemoryLimits = false, inheritAdditionalProperties = false)
|
inheritMemoryLimits = false, inheritAdditionalProperties = false)
|
||||||
|
|
||||||
val daemon = KotlinCompilerClient.connectToCompileService(compilerId, flagFile, daemonJVMOptions, daemonOptions, DaemonReportingTargets(out = System.err), autostart = true)
|
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 logFile = createTempFile("kotlin-daemon-test", ".log")
|
||||||
val daemonJVMOptions =
|
val daemonJVMOptions =
|
||||||
configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile.absolutePath}\"",
|
configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile.loggerCompatiblePath}\"",
|
||||||
inheritMemoryLimits = false, inheritAdditionalProperties = false)
|
inheritMemoryLimits = false, inheritAdditionalProperties = false)
|
||||||
|
|
||||||
val daemon = KotlinCompilerClient.connectToCompileService(compilerId, flagFile, daemonJVMOptions, daemonOptions, DaemonReportingTargets(out = System.err), autostart = true)
|
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 logFile = createTempFile("kotlin-daemon-test", ".log")
|
||||||
val daemonJVMOptions =
|
val daemonJVMOptions =
|
||||||
configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile.absolutePath}\"",
|
configureDaemonJVMOptions("D$COMPILE_DAEMON_LOG_PATH_PROPERTY=\"${logFile.loggerCompatiblePath}\"",
|
||||||
inheritMemoryLimits = false, inheritAdditionalProperties = false)
|
inheritMemoryLimits = false, inheritAdditionalProperties = false)
|
||||||
|
|
||||||
val daemon = KotlinCompilerClient.connectToCompileService(compilerId, flagFile, daemonJVMOptions, daemonOptions, DaemonReportingTargets(out = System.err), autostart = true)
|
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 {
|
finally {
|
||||||
file.delete()
|
file.delete()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 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
|
||||||
@@ -18,10 +18,7 @@ package org.jetbrains.kotlin.jps.build
|
|||||||
|
|
||||||
import com.intellij.util.PathUtil
|
import com.intellij.util.PathUtil
|
||||||
import org.jetbrains.jps.model.java.JpsJavaExtensionService
|
import org.jetbrains.jps.model.java.JpsJavaExtensionService
|
||||||
import org.jetbrains.kotlin.rmi.COMPILE_DAEMON_CLIENT_ALIVE_PATH_PROPERTY
|
import org.jetbrains.kotlin.rmi.*
|
||||||
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.test.KotlinTestUtils
|
import org.jetbrains.kotlin.test.KotlinTestUtils
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
@@ -75,7 +72,7 @@ public class SimpleKotlinJpsBuildTest : AbstractKotlinJpsBuildTestCase() {
|
|||||||
val flagFile = File.createTempFile("kotlin-jps - tests-", "-is-running");
|
val flagFile = File.createTempFile("kotlin-jps - tests-", "-is-running");
|
||||||
val logFile = File.createTempFile("kotlin-daemon", ".log")
|
val logFile = File.createTempFile("kotlin-daemon", ".log")
|
||||||
System.setProperty(COMPILE_DAEMON_CLIENT_ALIVE_PATH_PROPERTY, flagFile.absolutePath)
|
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 {
|
try {
|
||||||
testLoadingKotlinFromDifferentModules()
|
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
|
||||||
|
|||||||
Reference in New Issue
Block a user