diff --git a/native/native.tests/build.gradle.kts b/native/native.tests/build.gradle.kts index 56798bd7fe5..81a87c2a0f3 100644 --- a/native/native.tests/build.gradle.kts +++ b/native/native.tests/build.gradle.kts @@ -1,3 +1,4 @@ +import org.gradle.internal.util.NumberUtil.formatBytes import org.jetbrains.kotlin.ideaExt.idea plugins { @@ -131,15 +132,32 @@ fun nativeTest(taskName: String, vararg tags: String) = projectTest(taskName, jU includeTags(*tags) } - logger.info( - buildString { - appendLine("$path parallel test execution parameters:") - append(" Available CPU cores = $availableCpuCores") - systemProperties.filterKeys { it.startsWith("junit.jupiter") }.toSortedMap().forEach { (key, value) -> - append("\n $key = $value") - } + fun formatExecutionParameters() = buildString { + appendLine("$path parallel test execution parameters:") + append(" Available CPU cores = $availableCpuCores") + systemProperties.filterKeys { it.startsWith("junit.jupiter") }.toSortedMap().forEach { (key, value) -> + append("\n $key = $value") } - ) + } + + fun formatMemoryUsage(before: Boolean) = buildString { + with(Runtime.getRuntime()) { + appendLine("$path (${if (before) "before" else "after"}) memory info:") + appendLine(" Max memory (-Xmx) = ${formatBytes(maxMemory())}") + appendLine(" Allocated memory = ${formatBytes(totalMemory())}") + appendLine(" Used memory = ${formatBytes(totalMemory() - freeMemory())}") + append(" Free memory = ${formatBytes(freeMemory())}") + } + } + + doFirst { + logger.info(formatExecutionParameters()) + logger.info(formatMemoryUsage(before = true)) + } + + doLast { + logger.info(formatMemoryUsage(before = false)) + } } else doFirst { throw GradleException(