mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[gui-test] fix GUI-129; use correct testName with parameters instead of method name only
This commit is contained in:
+15
-12
@@ -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<Boolean>(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))
|
||||
}
|
||||
|
||||
|
||||
+12
-6
@@ -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<Clien
|
||||
inner class ClientReceiveThread(val connection: Socket, val objectInputStream: ObjectInputStream) : Thread(RECEIVE_THREAD) {
|
||||
override fun run() {
|
||||
LOG.info("Starting Client Receive Thread")
|
||||
try{
|
||||
try {
|
||||
while (connection.isConnected) {
|
||||
val obj = objectInputStream.readObject()
|
||||
LOG.info("Received message: $obj")
|
||||
@@ -108,9 +111,11 @@ class JUnitClientImpl(val host: String, val port: Int, initHandlers: Array<Clien
|
||||
.filter { it.accept(obj) }
|
||||
.forEach { it.handle(obj) }
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
}
|
||||
catch (e: Exception) {
|
||||
LOG.info("Transport receiving message exception", e)
|
||||
} finally {
|
||||
}
|
||||
finally {
|
||||
objectInputStream.close()
|
||||
}
|
||||
}
|
||||
@@ -127,7 +132,7 @@ class JUnitClientImpl(val host: String, val port: Int, initHandlers: Array<Clien
|
||||
objectOutputStream.writeObject(transportMessage)
|
||||
}
|
||||
}
|
||||
catch(e: InterruptedException) {
|
||||
catch (e: InterruptedException) {
|
||||
Thread.currentThread().interrupt()
|
||||
}
|
||||
finally {
|
||||
@@ -143,7 +148,8 @@ class JUnitClientImpl(val host: String, val port: Int, initHandlers: Array<Clien
|
||||
{
|
||||
if (connection.isConnected) {
|
||||
objectOutputStream.writeObject(TransportMessage(MessageType.KEEP_ALIVE))
|
||||
} else{
|
||||
}
|
||||
else {
|
||||
throw SocketException("Connection is broken")
|
||||
}
|
||||
}, 0L, 5, TimeUnit.SECONDS)
|
||||
|
||||
Reference in New Issue
Block a user