diff options
author | Christian Kandeler <[email protected]> | 2012-06-08 09:42:32 +0200 |
---|---|---|
committer | hjk <[email protected]> | 2012-06-08 10:15:43 +0200 |
commit | 79de09f2663f818bb07c24752e6520b19b28e6ec (patch) | |
tree | 4ee8e676e73646f42476f4f01df3756997836f48 /src/plugins/madde/maddedevicetester.cpp | |
parent | 303e67304e42cc419b735ca609104ad4ed386d54 (diff) |
SSH: Streamline SshRemoteProcessRunner's output handling.
Make it just like SshRemoteProcess (and QProcess). The current
implementation annoyingly forces client code to establish additional
signal/slot connections, even if they only want to evaluate the output
at the end.
Change-Id: Id8c30dd156574d7d26d848d8e0705856a16d3747
Reviewed-by: hjk <[email protected]>
Diffstat (limited to 'src/plugins/madde/maddedevicetester.cpp')
-rw-r--r-- | src/plugins/madde/maddedevicetester.cpp | 45 |
1 files changed, 10 insertions, 35 deletions
diff --git a/src/plugins/madde/maddedevicetester.cpp b/src/plugins/madde/maddedevicetester.cpp index 5c17b76a7be..914a3da4cc4 100644 --- a/src/plugins/madde/maddedevicetester.cpp +++ b/src/plugins/madde/maddedevicetester.cpp @@ -110,10 +110,6 @@ void MaddeDeviceTester::handleGenericTestFinished(TestResult result) if (!m_processRunner) m_processRunner = new SshRemoteProcessRunner(this); connect(m_processRunner, SIGNAL(connectionError()), SLOT(handleConnectionError())); - connect(m_processRunner, SIGNAL(processOutputAvailable(QByteArray)), - SLOT(handleStdout(QByteArray))); - connect(m_processRunner, SIGNAL(processErrorOutputAvailable(QByteArray)), - SLOT(handleStderr(QByteArray))); connect(m_processRunner, SIGNAL(processClosed(int)), SLOT(handleProcessFinished(int))); QString qtInfoCmd; @@ -125,8 +121,6 @@ void MaddeDeviceTester::handleGenericTestFinished(TestResult result) } emit progressMessage(tr("Checking for Qt libraries...")); - m_stdout.clear(); - m_stderr.clear(); m_state = QtTest; m_processRunner->run(qtInfoCmd.toUtf8(), m_deviceConfiguration->sshParameters()); } @@ -141,22 +135,6 @@ void MaddeDeviceTester::handleConnectionError() setFinished(); } -void MaddeDeviceTester::handleStdout(const QByteArray &data) -{ - QTC_ASSERT(m_state == QtTest || m_state == MadDeveloperTest || m_state == QmlToolingTest, - return); - - m_stdout += data; -} - -void MaddeDeviceTester::handleStderr(const QByteArray &data) -{ - QTC_ASSERT(m_state == QtTest || m_state == MadDeveloperTest || m_state == QmlToolingTest, - return); - - m_stderr += data; -} - void MaddeDeviceTester::handleProcessFinished(int exitStatus) { switch (m_state) { @@ -178,9 +156,10 @@ void MaddeDeviceTester::handleQtTestFinished(int exitStatus) { if (exitStatus != SshRemoteProcess::NormalExit || m_processRunner->processExitCode() != 0) { - if (!m_stderr.isEmpty()) { + const QByteArray stdErr = m_processRunner->readAllStandardError(); + if (!stdErr.isEmpty()) { emit errorMessage(tr("Error checking for Qt libraries: %1\n") - .arg(QString::fromUtf8(m_stderr))); + .arg(QString::fromUtf8(stdErr))); } else { emit errorMessage(tr("Error checking for Qt libraries.\n")); } @@ -190,9 +169,6 @@ void MaddeDeviceTester::handleQtTestFinished(int exitStatus) emit progressMessage(processedQtLibsList()); } - m_stdout.clear(); - m_stderr.clear(); - emit progressMessage(tr("Checking for connectivity support...")); m_state = MadDeveloperTest; m_processRunner->run(QString(QLatin1String("test -x") + MaemoGlobal::devrootshPath()).toUtf8(), @@ -202,9 +178,10 @@ void MaddeDeviceTester::handleQtTestFinished(int exitStatus) void MaddeDeviceTester::handleMadDeveloperTestFinished(int exitStatus) { if (exitStatus != SshRemoteProcess::NormalExit) { - if (!m_stderr.isEmpty()) { + const QByteArray stdErr = m_processRunner->readAllStandardError(); + if (!stdErr.isEmpty()) { emit errorMessage(tr("Error checking for connectivity tool: %1\n") - .arg(QString::fromUtf8(m_stderr))); + .arg(QString::fromUtf8(stdErr))); } else { emit errorMessage(tr("Error checking for connectivity tool.\n")); } @@ -227,9 +204,6 @@ void MaddeDeviceTester::handleMadDeveloperTestFinished(int exitStatus) return; } - m_stdout.clear(); - m_stderr.clear(); - emit progressMessage(tr("Checking for QML tooling support...")); m_state = QmlToolingTest; m_processRunner->run(QString(QLatin1String("test -d ") @@ -239,9 +213,10 @@ void MaddeDeviceTester::handleMadDeveloperTestFinished(int exitStatus) void MaddeDeviceTester::handleQmlToolingTestFinished(int exitStatus) { if (exitStatus != SshRemoteProcess::NormalExit) { - if (!m_stderr.isEmpty()) { + const QByteArray stdErr = m_processRunner->readAllStandardError(); + if (!stdErr.isEmpty()) { emit errorMessage(tr("Error checking for QML tooling support: %1\n") - .arg(QString::fromUtf8(m_stderr))); + .arg(QString::fromUtf8(stdErr))); } else { emit errorMessage(tr("Error checking for QML tooling support.\n")); } @@ -259,7 +234,7 @@ void MaddeDeviceTester::handleQmlToolingTestFinished(int exitStatus) QString MaddeDeviceTester::processedQtLibsList() { - QString unfilteredLibs = QString::fromUtf8(m_stdout); + QString unfilteredLibs = QString::fromUtf8(m_processRunner->readAllStandardOutput()); QString filteredLibs; QString patternString; if (m_deviceConfiguration->type() == Core::Id(MeeGoOsType)) |