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);
|
||||
}
|
||||
|
||||
static void logToolsStateChange(SquishTools::State from, SquishTools::State to)
|
||||
{
|
||||
qCInfo(LOG) << "State change:" << toolsStateName(from) << ">" << toolsStateName(to);
|
||||
}
|
||||
|
||||
class SquishLocationMark : public TextEditor::TextMark
|
||||
{
|
||||
public:
|
||||
@@ -327,19 +332,28 @@ void SquishTools::onServerStateChanged(SquishProcessState state)
|
||||
{
|
||||
switch (state) {
|
||||
case Starting:
|
||||
setState(SquishTools::ServerStarting);
|
||||
logToolsStateChange(m_state, SquishTools::ServerStarting);
|
||||
m_state = SquishTools::ServerStarting;
|
||||
break;
|
||||
case Started:
|
||||
setState(SquishTools::ServerStarted);
|
||||
logToolsStateChange(m_state, SquishTools::ServerStarted);
|
||||
m_state = SquishTools::ServerStarted;
|
||||
onServerStarted();
|
||||
break;
|
||||
case StartFailed:
|
||||
setState(SquishTools::ServerStartFailed);
|
||||
logToolsStateChange(m_state, SquishTools::ServerStartFailed);
|
||||
m_state = SquishTools::ServerStartFailed;
|
||||
onServerStartFailed();
|
||||
break;
|
||||
case Stopped:
|
||||
setState(SquishTools::ServerStopped);
|
||||
logToolsStateChange(m_state, SquishTools::ServerStopped);
|
||||
m_state = SquishTools::ServerStopped;
|
||||
onServerStopped();
|
||||
break;
|
||||
case StopFailed:
|
||||
setState(SquishTools::ServerStopFailed);
|
||||
logToolsStateChange(m_state, SquishTools::ServerStopFailed);
|
||||
m_state = SquishTools::ServerStopFailed;
|
||||
onServerStopFailed();
|
||||
break;
|
||||
default:
|
||||
// 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) {
|
||||
executeRunnerQuery();
|
||||
} else if (m_request == RunTestRequested || m_request == RecordTestRequested) {
|
||||
@@ -366,24 +371,16 @@ void SquishTools::setState(SquishTools::State state)
|
||||
} else {
|
||||
QTC_ASSERT(false, qDebug() << m_state << m_request);
|
||||
}
|
||||
break;
|
||||
case ServerStartFailed:
|
||||
m_state = Idle;
|
||||
if (m_request == RunTestRequested)
|
||||
emit squishTestRunFinished();
|
||||
m_perspective.setPerspectiveMode(SquishPerspective::NoMode);
|
||||
m_request = None;
|
||||
if (toolsSettings.minimizeIDE)
|
||||
restoreQtCreatorWindows();
|
||||
m_perspective.destroyControlBar();
|
||||
break;
|
||||
case ServerStopped:
|
||||
}
|
||||
|
||||
void SquishTools::onServerStopped()
|
||||
{
|
||||
m_state = Idle;
|
||||
emit shutdownFinished();
|
||||
if (m_request == ServerConfigChangeRequested) {
|
||||
if (m_serverProcess.result() == ProcessResult::FinishedWithError) {
|
||||
emit configChangesFailed(m_serverProcess.error());
|
||||
break;
|
||||
return;
|
||||
}
|
||||
|
||||
m_serverConfigChanges.removeFirst();
|
||||
@@ -407,15 +404,40 @@ void SquishTools::setState(SquishTools::State state)
|
||||
} else if (m_request == KillOldBeforeRecordRunner) {
|
||||
startSquishServer(RecordTestRequested);
|
||||
} 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();
|
||||
if (toolsSettings.minimizeIDE)
|
||||
restoreQtCreatorWindows();
|
||||
m_perspective.destroyControlBar();
|
||||
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;
|
||||
case RunnerStartFailed:
|
||||
case RunnerStopped:
|
||||
@@ -1291,7 +1313,7 @@ bool SquishTools::isValidToStartRunner()
|
||||
.arg(m_state)
|
||||
.arg(m_request));
|
||||
// setting state to ServerStartFailed will terminate/kill the current unusable server
|
||||
setState(ServerStartFailed);
|
||||
onServerStateChanged(StartFailed);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@@ -90,6 +90,10 @@ private:
|
||||
enum RunnerQuery { ServerInfo, GetGlobalScriptDirs, SetGlobalScriptDirs };
|
||||
|
||||
void onServerStateChanged(SquishProcessState state);
|
||||
void onServerStarted();
|
||||
void onServerStopped();
|
||||
void onServerStartFailed();
|
||||
void onServerStopFailed();
|
||||
void setState(State state);
|
||||
void setIdle();
|
||||
void startSquishServer(Request request);
|
||||
|
Reference in New Issue
Block a user