From b2607b47e2015b0a807554a4fd370eb5236f93fb Mon Sep 17 00:00:00 2001 From: Sergey Rostov Date: Wed, 12 Jun 2019 11:02:15 +0300 Subject: [PATCH] Gradle, tests runner, output stream handler: don't treat flush as new line #KT-31931 Fixed --- .../TCServiceMessageOutputStreamHandler.kt | 6 +----- .../TCServiceMessageOutputStreamHandlerTest.kt | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/testing/TCServiceMessageOutputStreamHandler.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/testing/TCServiceMessageOutputStreamHandler.kt index 2dbcb379b2b..0684732ba8f 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/testing/TCServiceMessageOutputStreamHandler.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/internal/testing/TCServiceMessageOutputStreamHandler.kt @@ -33,7 +33,7 @@ internal class TCServiceMessageOutputStreamHandler( @Throws(IOException::class) override fun close() { closed = true - flush() + flushLine() } override fun write(b: ByteArray, off: Int, len: Int) { @@ -77,10 +77,6 @@ internal class TCServiceMessageOutputStreamHandler( } } - override fun flush() { - flushLine() - } - private fun overflow() { val text = buffer.toString("utf-8") diff --git a/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/internal/testing/TCServiceMessageOutputStreamHandlerTest.kt b/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/internal/testing/TCServiceMessageOutputStreamHandlerTest.kt index 3eb6b4b18ed..ca4258542ff 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/internal/testing/TCServiceMessageOutputStreamHandlerTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/internal/testing/TCServiceMessageOutputStreamHandlerTest.kt @@ -64,6 +64,24 @@ class TCServiceMessageOutputStreamHandlerTest { assertEquals("[]", logString) } + @Test + fun testFlush() { + handler.write("xxx##teamc".toByteArray()) + handler.flush() + handler.write("ity[testStarted]\n".toByteArray()) + handler.write("yyy##teamcity[testStarted]".toByteArray()) + handler.close() + assertEquals( + "TEXT: `xxx`\n" + + "MESSAGE: `##teamcity[testStarted]`\n" + + "TEXT: `\n`\n" + // this will be ignore in org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClient.regularText + "TEXT: `yyy`\n" + + "MESSAGE: `##teamcity[testStarted]`\n", + clientCalls + ) + assertEquals("[]", logString) + } + @Test fun testMessage() { handler.write("xxx##teamcity[testStarted]\n".toByteArray())