Fix daemon selection on the memory settings
This commit is contained in:
+1
-1
@@ -347,7 +347,7 @@ object KotlinCompilerClient {
|
|||||||
finally {
|
finally {
|
||||||
timestampMarker.delete()
|
timestampMarker.delete()
|
||||||
}
|
}
|
||||||
val comparator = compareByDescending<DaemonWithMetadata, DaemonJVMOptions>(DaemonJVMOptionsMemoryComparator(), { it.jvmOptions })
|
val comparator = compareBy<DaemonWithMetadata, DaemonJVMOptions>(DaemonJVMOptionsMemoryComparator(), { it.jvmOptions })
|
||||||
.thenBy(FileAgeComparator()) { it.runFile }
|
.thenBy(FileAgeComparator()) { it.runFile }
|
||||||
val optsCopy = daemonJVMOptions.copy()
|
val optsCopy = daemonJVMOptions.copy()
|
||||||
// if required options fit into fattest running daemon - return the daemon and required options with memory params set to actual ones in the daemon
|
// if required options fit into fattest running daemon - return the daemon and required options with memory params set to actual ones in the daemon
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ import org.jetbrains.kotlin.test.KotlinTestUtils
|
|||||||
import java.io.ByteArrayOutputStream
|
import java.io.ByteArrayOutputStream
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.PrintStream
|
import java.io.PrintStream
|
||||||
|
import java.lang.management.ManagementFactory
|
||||||
import java.net.URL
|
import java.net.URL
|
||||||
import java.net.URLClassLoader
|
import java.net.URLClassLoader
|
||||||
import java.rmi.server.UnicastRemoteObject
|
import java.rmi.server.UnicastRemoteObject
|
||||||
@@ -148,6 +149,20 @@ class CompilerDaemonTest : KotlinIntegrationTestBase() {
|
|||||||
assertEquals("10k", opts.maxPermSize)
|
assertEquals("10k", opts.maxPermSize)
|
||||||
assertEquals("100", opts.reservedCodeCacheSize)
|
assertEquals("100", opts.reservedCodeCacheSize)
|
||||||
assertEquals(arrayListOf("aaa", "bbb,ccc", "ddd", "xxx,yyy"), opts.jvmParams)
|
assertEquals(arrayListOf("aaa", "bbb,ccc", "ddd", "xxx,yyy"), opts.jvmParams)
|
||||||
|
|
||||||
|
System.setProperty(COMPILE_DAEMON_JVM_OPTIONS_PROPERTY, "-Xmx300m,-XX:MaxPermSize=10k,-XX:ReservedCodeCacheSize=100")
|
||||||
|
val opts2 = configureDaemonJVMOptions(inheritMemoryLimits = false, inheritAdditionalProperties = false)
|
||||||
|
assertEquals("300m", opts2.maxMemory)
|
||||||
|
assertEquals( -1, DaemonJVMOptionsMemoryComparator().compare(opts, opts2))
|
||||||
|
assertEquals("300m", listOf(opts, opts2).maxWith(DaemonJVMOptionsMemoryComparator())?.maxMemory)
|
||||||
|
|
||||||
|
val myXmxParam = ManagementFactory.getRuntimeMXBean().inputArguments.first { it.startsWith("-Xmx") }
|
||||||
|
TestCase.assertNotNull(myXmxParam)
|
||||||
|
val myXmxVal = myXmxParam.substring(4)
|
||||||
|
System.clearProperty(COMPILE_DAEMON_JVM_OPTIONS_PROPERTY)
|
||||||
|
val opts3 = configureDaemonJVMOptions(inheritMemoryLimits = true,
|
||||||
|
inheritAdditionalProperties = false)
|
||||||
|
assertEquals(myXmxVal, opts3.maxMemory)
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
restoreSystemProperty(COMPILE_DAEMON_JVM_OPTIONS_PROPERTY, backupJvmOptions)
|
restoreSystemProperty(COMPILE_DAEMON_JVM_OPTIONS_PROPERTY, backupJvmOptions)
|
||||||
|
|||||||
Reference in New Issue
Block a user