From 641818cc75d0d77b8bc00cc353ead070a7af83f2 Mon Sep 17 00:00:00 2001 From: Sergey Karashevich Date: Tue, 10 Jul 2018 12:54:28 +0300 Subject: [PATCH] [gui-test] fix GUI-129; use correct testName with parameters instead of method name only --- .../framework/GuiTestRunner.kt | 27 ++++++++++--------- .../remote/client/JUnitClientImpl.kt | 18 ++++++++----- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/platform/testGuiFramework/src/com/intellij/testGuiFramework/framework/GuiTestRunner.kt b/platform/testGuiFramework/src/com/intellij/testGuiFramework/framework/GuiTestRunner.kt index 671154b0d85f..7aab12e8d7f9 100755 --- a/platform/testGuiFramework/src/com/intellij/testGuiFramework/framework/GuiTestRunner.kt +++ b/platform/testGuiFramework/src/com/intellij/testGuiFramework/framework/GuiTestRunner.kt @@ -41,7 +41,7 @@ import java.util.concurrent.TimeUnit class GuiTestRunner internal constructor(val runner: GuiTestRunnerInterface) { private val SERVER_LOG = org.apache.log4j.Logger.getLogger("#com.intellij.testGuiFramework.framework.GuiTestRunner")!! - private val criticalError = Ref(false) + private val criticalError = Ref(false) fun runChild(method: FrameworkMethod, notifier: RunNotifier) { @@ -75,9 +75,7 @@ class GuiTestRunner internal constructor(val runner: GuiTestRunnerInterface) { val localIde = runner.ide ?: getIdeFromAnnotation(method.declaringClass) SERVER_LOG.info("Starting IDE ($localIde) with port for running tests: ${server.getPort()}") runIde(port = server.getPort(), ide = localIde) - if (!server.isStarted()) { - server.start() - } + if (!server.isStarted()) server.start() } val jUnitTestContainer = JUnitTestContainer(method.declaringClass, testName) server.send(TransportMessage(MessageType.RUN_TEST, jUnitTestContainer)) @@ -107,16 +105,17 @@ class GuiTestRunner internal constructor(val runner: GuiTestRunnerInterface) { } } if (message.type == MessageType.RESTART_IDE) { - restartIdeAndStartTestAgain(server, method) - sendRunTestCommand(method, server) + restartIde(server, getIdeFromMethod(method)) + sendRunTestCommand(method, testName, server) } if (message.type == MessageType.RESTART_IDE_AND_RESUME) { val additionalInfoLabel = message.content if (additionalInfoLabel !is String) throw Exception("Additional info for a resuming test should have a String type!") - restartIdeAndStartTestAgain(server, method) + restartIde(server, getIdeFromMethod(method)) sendResumeTestCommand(method, server, additionalInfoLabel) } - } catch (se: SocketException) { + } + catch (se: SocketException) { //let's fail this test and move to the next one test SERVER_LOG.warn("Server client connection is dead. Going to kill IDE process.") stopServerAndKillIde(server) @@ -127,7 +126,11 @@ class GuiTestRunner internal constructor(val runner: GuiTestRunnerInterface) { } } - private fun restartIdeAndStartTestAgain(server: JUnitServer, method: FrameworkMethod) { + private fun getIdeFromMethod(method: FrameworkMethod): Ide { + return runner.ide ?: getIdeFromAnnotation(method.declaringClass) + } + + private fun restartIde(server: JUnitServer, ide: Ide) { //close previous IDE server.send(TransportMessage(MessageType.CLOSE_IDE)) //await to close previous process @@ -136,8 +139,7 @@ class GuiTestRunner internal constructor(val runner: GuiTestRunnerInterface) { //restart JUnitServer to let accept a new connection server.stopServer() //start a new one IDE - val localIde = runner.ide ?: getIdeFromAnnotation(method.declaringClass) - runIde(port = server.getPort(), ide = localIde) + runIde(port = server.getPort(), ide = ide) server.start() } @@ -147,8 +149,9 @@ class GuiTestRunner internal constructor(val runner: GuiTestRunnerInterface) { } private fun sendRunTestCommand(method: FrameworkMethod, + testName: String, server: JUnitServer) { - val jUnitTestContainer = JUnitTestContainer(method.declaringClass, method.name) + val jUnitTestContainer = JUnitTestContainer(method.declaringClass, testName) server.send(TransportMessage(MessageType.RUN_TEST, jUnitTestContainer)) } diff --git a/platform/testGuiFramework/src/com/intellij/testGuiFramework/remote/client/JUnitClientImpl.kt b/platform/testGuiFramework/src/com/intellij/testGuiFramework/remote/client/JUnitClientImpl.kt index 02a6137b7735..397b7f21c5ae 100644 --- a/platform/testGuiFramework/src/com/intellij/testGuiFramework/remote/client/JUnitClientImpl.kt +++ b/platform/testGuiFramework/src/com/intellij/testGuiFramework/remote/client/JUnitClientImpl.kt @@ -20,7 +20,10 @@ import com.intellij.testGuiFramework.remote.transport.MessageType import com.intellij.testGuiFramework.remote.transport.TransportMessage import java.io.ObjectInputStream import java.io.ObjectOutputStream -import java.net.* +import java.net.InetAddress +import java.net.InetSocketAddress +import java.net.Socket +import java.net.SocketException import java.util.* import java.util.concurrent.BlockingQueue import java.util.concurrent.Executors @@ -99,7 +102,7 @@ class JUnitClientImpl(val host: String, val port: Int, initHandlers: Array