forked from qt-creator/qt-creator
Squish: Separate server handling
Change-Id: Ibcafe31bc8fd7dfaea165b95ed8898a7bff69d21 Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -83,6 +83,11 @@ static void logRunnerStateChange(RunnerState from, RunnerState to)
|
|||||||
qCInfo(LOG) << "Runner state change:" << runnerStateName(from) << ">" << runnerStateName(to);
|
qCInfo(LOG) << "Runner state change:" << runnerStateName(from) << ">" << runnerStateName(to);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void logToolsStateChange(SquishTools::State from, SquishTools::State to)
|
||||||
|
{
|
||||||
|
qCInfo(LOG) << "State change:" << toolsStateName(from) << ">" << toolsStateName(to);
|
||||||
|
}
|
||||||
|
|
||||||
class SquishLocationMark : public TextEditor::TextMark
|
class SquishLocationMark : public TextEditor::TextMark
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -327,19 +332,28 @@ void SquishTools::onServerStateChanged(SquishProcessState state)
|
|||||||
{
|
{
|
||||||
switch (state) {
|
switch (state) {
|
||||||
case Starting:
|
case Starting:
|
||||||
setState(SquishTools::ServerStarting);
|
logToolsStateChange(m_state, SquishTools::ServerStarting);
|
||||||
|
m_state = SquishTools::ServerStarting;
|
||||||
break;
|
break;
|
||||||
case Started:
|
case Started:
|
||||||
setState(SquishTools::ServerStarted);
|
logToolsStateChange(m_state, SquishTools::ServerStarted);
|
||||||
|
m_state = SquishTools::ServerStarted;
|
||||||
|
onServerStarted();
|
||||||
break;
|
break;
|
||||||
case StartFailed:
|
case StartFailed:
|
||||||
setState(SquishTools::ServerStartFailed);
|
logToolsStateChange(m_state, SquishTools::ServerStartFailed);
|
||||||
|
m_state = SquishTools::ServerStartFailed;
|
||||||
|
onServerStartFailed();
|
||||||
break;
|
break;
|
||||||
case Stopped:
|
case Stopped:
|
||||||
setState(SquishTools::ServerStopped);
|
logToolsStateChange(m_state, SquishTools::ServerStopped);
|
||||||
|
m_state = SquishTools::ServerStopped;
|
||||||
|
onServerStopped();
|
||||||
break;
|
break;
|
||||||
case StopFailed:
|
case StopFailed:
|
||||||
setState(SquishTools::ServerStopFailed);
|
logToolsStateChange(m_state, SquishTools::ServerStopFailed);
|
||||||
|
m_state = SquishTools::ServerStopFailed;
|
||||||
|
onServerStopFailed();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
// Idle currently unhandled / not needed?
|
// Idle currently unhandled / not needed?
|
||||||
@@ -347,17 +361,8 @@ void SquishTools::onServerStateChanged(SquishProcessState state)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SquishTools::setState(SquishTools::State state)
|
void SquishTools::onServerStarted()
|
||||||
{
|
{
|
||||||
qCInfo(LOG) << "State change:" << toolsStateName(m_state) << ">" << toolsStateName(state);
|
|
||||||
// TODO check whether state transition is legal
|
|
||||||
m_state = state;
|
|
||||||
|
|
||||||
switch (m_state) {
|
|
||||||
case Idle:
|
|
||||||
setIdle();
|
|
||||||
break;
|
|
||||||
case ServerStarted:
|
|
||||||
if (m_request == RunnerQueryRequested) {
|
if (m_request == RunnerQueryRequested) {
|
||||||
executeRunnerQuery();
|
executeRunnerQuery();
|
||||||
} else if (m_request == RunTestRequested || m_request == RecordTestRequested) {
|
} else if (m_request == RunTestRequested || m_request == RecordTestRequested) {
|
||||||
@@ -366,24 +371,16 @@ void SquishTools::setState(SquishTools::State state)
|
|||||||
} else {
|
} else {
|
||||||
QTC_ASSERT(false, qDebug() << m_state << m_request);
|
QTC_ASSERT(false, qDebug() << m_state << m_request);
|
||||||
}
|
}
|
||||||
break;
|
}
|
||||||
case ServerStartFailed:
|
|
||||||
m_state = Idle;
|
void SquishTools::onServerStopped()
|
||||||
if (m_request == RunTestRequested)
|
{
|
||||||
emit squishTestRunFinished();
|
|
||||||
m_perspective.setPerspectiveMode(SquishPerspective::NoMode);
|
|
||||||
m_request = None;
|
|
||||||
if (toolsSettings.minimizeIDE)
|
|
||||||
restoreQtCreatorWindows();
|
|
||||||
m_perspective.destroyControlBar();
|
|
||||||
break;
|
|
||||||
case ServerStopped:
|
|
||||||
m_state = Idle;
|
m_state = Idle;
|
||||||
emit shutdownFinished();
|
emit shutdownFinished();
|
||||||
if (m_request == ServerConfigChangeRequested) {
|
if (m_request == ServerConfigChangeRequested) {
|
||||||
if (m_serverProcess.result() == ProcessResult::FinishedWithError) {
|
if (m_serverProcess.result() == ProcessResult::FinishedWithError) {
|
||||||
emit configChangesFailed(m_serverProcess.error());
|
emit configChangesFailed(m_serverProcess.error());
|
||||||
break;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_serverConfigChanges.removeFirst();
|
m_serverConfigChanges.removeFirst();
|
||||||
@@ -407,15 +404,40 @@ void SquishTools::setState(SquishTools::State state)
|
|||||||
} else if (m_request == KillOldBeforeRecordRunner) {
|
} else if (m_request == KillOldBeforeRecordRunner) {
|
||||||
startSquishServer(RecordTestRequested);
|
startSquishServer(RecordTestRequested);
|
||||||
} else {
|
} else {
|
||||||
QTC_ASSERT(false, qDebug() << m_state << m_request);
|
QTC_ASSERT(false, qDebug() << m_request);
|
||||||
}
|
}
|
||||||
break;
|
}
|
||||||
case ServerStopFailed:
|
|
||||||
|
void SquishTools::onServerStartFailed()
|
||||||
|
{
|
||||||
|
m_state = Idle;
|
||||||
|
if (m_request == RunTestRequested)
|
||||||
|
emit squishTestRunFinished();
|
||||||
|
m_perspective.setPerspectiveMode(SquishPerspective::NoMode);
|
||||||
|
m_request = None;
|
||||||
|
if (toolsSettings.minimizeIDE)
|
||||||
|
restoreQtCreatorWindows();
|
||||||
|
m_perspective.destroyControlBar();
|
||||||
|
}
|
||||||
|
|
||||||
|
void SquishTools::onServerStopFailed()
|
||||||
|
{
|
||||||
m_serverProcess.closeProcess();
|
m_serverProcess.closeProcess();
|
||||||
if (toolsSettings.minimizeIDE)
|
if (toolsSettings.minimizeIDE)
|
||||||
restoreQtCreatorWindows();
|
restoreQtCreatorWindows();
|
||||||
m_perspective.destroyControlBar();
|
m_perspective.destroyControlBar();
|
||||||
m_state = Idle;
|
m_state = Idle;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SquishTools::setState(SquishTools::State state)
|
||||||
|
{
|
||||||
|
qCInfo(LOG) << "State change:" << toolsStateName(m_state) << ">" << toolsStateName(state);
|
||||||
|
// TODO check whether state transition is legal
|
||||||
|
m_state = state;
|
||||||
|
|
||||||
|
switch (m_state) {
|
||||||
|
case Idle:
|
||||||
|
setIdle();
|
||||||
break;
|
break;
|
||||||
case RunnerStartFailed:
|
case RunnerStartFailed:
|
||||||
case RunnerStopped:
|
case RunnerStopped:
|
||||||
@@ -1291,7 +1313,7 @@ bool SquishTools::isValidToStartRunner()
|
|||||||
.arg(m_state)
|
.arg(m_state)
|
||||||
.arg(m_request));
|
.arg(m_request));
|
||||||
// setting state to ServerStartFailed will terminate/kill the current unusable server
|
// setting state to ServerStartFailed will terminate/kill the current unusable server
|
||||||
setState(ServerStartFailed);
|
onServerStateChanged(StartFailed);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -90,6 +90,10 @@ private:
|
|||||||
enum RunnerQuery { ServerInfo, GetGlobalScriptDirs, SetGlobalScriptDirs };
|
enum RunnerQuery { ServerInfo, GetGlobalScriptDirs, SetGlobalScriptDirs };
|
||||||
|
|
||||||
void onServerStateChanged(SquishProcessState state);
|
void onServerStateChanged(SquishProcessState state);
|
||||||
|
void onServerStarted();
|
||||||
|
void onServerStopped();
|
||||||
|
void onServerStartFailed();
|
||||||
|
void onServerStopFailed();
|
||||||
void setState(State state);
|
void setState(State state);
|
||||||
void setIdle();
|
void setIdle();
|
||||||
void startSquishServer(Request request);
|
void startSquishServer(Request request);
|
||||||
|
Reference in New Issue
Block a user