From 6bf82c1053126fdd0e61ce30e4ae48f6fe40e771 Mon Sep 17 00:00:00 2001 From: Sergey Rostov Date: Tue, 26 Mar 2019 16:17:50 +0300 Subject: [PATCH] Gradle, Kotlin/JS: fix failing tests on Windows --- .../kotlin/test/util/jetTestUtils.kt | 5 +++- .../build.gradle.kts | 3 ++ .../jetbrains/kotlin/gradle/BaseGradleIT.kt | 28 +++++++++++-------- .../tcsmc/TCServiceMessagesClientTest.kt | 23 +++++++-------- 4 files changed, 35 insertions(+), 24 deletions(-) diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/test/util/jetTestUtils.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/test/util/jetTestUtils.kt index 6f275f846f4..56dc826050e 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/test/util/jetTestUtils.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/test/util/jetTestUtils.kt @@ -25,8 +25,11 @@ import org.jetbrains.kotlin.psi.KtPackageDirective import org.jetbrains.kotlin.psi.KtTreeVisitorVoid import java.io.File +fun String.trimTrailingWhitespaces(): String = + this.split('\n').joinToString(separator = "\n") { it.trimEnd() } + fun String.trimTrailingWhitespacesAndAddNewlineAtEOF(): String = - this.split('\n').map { it.trimEnd() }.joinToString(separator = "\n").let { + this.trimTrailingWhitespaces().let { result -> if (result.endsWith("\n")) result else result + "\n" } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts index 4c601a111fe..52883ad9c8b 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/build.gradle.kts @@ -51,12 +51,15 @@ projectTest { dependsOn(":kotlin-gradle-plugin:validateTaskProperties") dependsOn( ":kotlin-allopen:install", + ":kotlin-allopen:plugin-marker:install", ":kotlin-noarg:install", + ":kotlin-allopen:plugin-marker:install", ":kotlin-sam-with-receiver:install", ":kotlin-android-extensions:install", ":kotlin-build-common:install", ":kotlin-compiler-embeddable:install", ":kotlin-gradle-plugin:install", + ":kotlin-gradle-plugin:plugin-marker:install", ":kotlin-reflect:install", ":kotlin-annotation-processing-gradle:install", ":kotlin-test:kotlin-test-jvm:install", diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt index e3b1e1913bb..fb4f342547a 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BaseGradleIT.kt @@ -11,6 +11,7 @@ import org.jdom.output.XMLOutputter import org.jetbrains.kotlin.gradle.model.ModelContainer import org.jetbrains.kotlin.gradle.model.ModelFetcherBuildAction import org.jetbrains.kotlin.gradle.util.* +import org.jetbrains.kotlin.test.util.trimTrailingWhitespaces import org.junit.After import org.junit.AfterClass import org.junit.Assert @@ -611,12 +612,9 @@ abstract class BaseGradleIT { } val actualTestResults = readAndCleanupTestResults(testReportDir, projectDir) - val expectedTestResults = resourcesRootFile.resolve(assertionFileName).readText() + val expectedTestResults = prettyPrintXml(resourcesRootFile.resolve(assertionFileName).readText()) - assertEquals( - prettyPrintXml(expectedTestResults), - prettyPrintXml(actualTestResults) - ) + assertEquals(expectedTestResults, actualTestResults) } private fun readAndCleanupTestResults(testReportDir: File, projectDir: File): String { @@ -628,14 +626,20 @@ abstract class BaseGradleIT { it.name.replace(".xml", ".A.xml") } - val xmlString = "\n\n" + - files.joinToString("") { + val xmlString = buildString { + appendln("") + appendln("") + files.forEach { + appendln( it.readText() - .replace(projectDir.absolutePath, "/\$PROJECT_DIR$") - .replace(projectDir.name, "\$PROJECT_NAME$") - .replace("\n", "") - } + - "" + .trimTrailingWhitespaces() + .replace(projectDir.absolutePath, "/\$PROJECT_DIR$") + .replace(projectDir.name, "\$PROJECT_NAME$") + .replace("\n", "") + ) + } + appendln("") + } val doc = SAXBuilder().build(xmlString.reader()) val skipAttrs = setOf("timestamp", "hostname", "time", "message") diff --git a/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/internal/testing/tcsmc/TCServiceMessagesClientTest.kt b/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/internal/testing/tcsmc/TCServiceMessagesClientTest.kt index f3abd228ba8..1c995b71401 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/internal/testing/tcsmc/TCServiceMessagesClientTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/internal/testing/tcsmc/TCServiceMessagesClientTest.kt @@ -4,6 +4,7 @@ import org.gradle.internal.operations.OperationIdentifier import org.jetbrains.kotlin.gradle.internal.testing.RecordingTestResultProcessor import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClient import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClientSettings +import org.jetbrains.kotlin.test.util.trimTrailingWhitespaces import org.slf4j.LoggerFactory import kotlin.test.assertEquals @@ -22,22 +23,22 @@ open class TCServiceMessagesClientTest { } assertEquals( - assertion.trim(), - results.output.toString().trim() + assertion.trimTrailingWhitespaces().trim(), + results.output.toString().trimTrailingWhitespaces().trim() ) } internal open fun createClient(results: RecordingTestResultProcessor): TCServiceMessagesClient { return TCServiceMessagesClient( - results, - TCServiceMessagesClientSettings( - "root", - nameOfRootSuiteToAppend, - nameOfRootSuiteToReplace, - nameOfLeafTestToAppend, - skipRoots - ), - LoggerFactory.getLogger("test") + results, + TCServiceMessagesClientSettings( + "root", + nameOfRootSuiteToAppend, + nameOfRootSuiteToReplace, + nameOfLeafTestToAppend, + skipRoots + ), + LoggerFactory.getLogger("test") ) } } \ No newline at end of file