diff --git a/process/command.cpp b/process/command.cpp index 574e2d5..c85c8ac 100644 --- a/process/command.cpp +++ b/process/command.cpp @@ -4,6 +4,7 @@ #include #include #include +#include Command::Command(QString const &command, int start_timeout, int finish_timeout) : m_command(command.trimmed()) @@ -65,6 +66,8 @@ bool Command::execute(QString workingDirectory, QStringList args) { p->start(m_command); } + qint64 const start = QDateTime::currentDateTime().toMSecsSinceEpoch(); + if (p->waitForStarted(m_waitForStartTimeout)) { qDebug() << "PROCESS" << m_command << "STARTED IN" << p->workingDirectory(); if (p->state() == QProcess::ProcessState::Running) { @@ -80,31 +83,41 @@ bool Command::execute(QString workingDirectory, QStringList args) { qDebug() << "PROCESS" << m_command << "FINISHED IN" << p->workingDirectory(); if (p->exitStatus() == QProcess::NormalExit) { if ((m_exitCode = p->exitCode()) == 0) { + qint64 const end = QDateTime::currentDateTime().toMSecsSinceEpoch(); qDebug() << "EXECUTED" << m_command + << QString("(runtime %1ms)").arg(end-start) << "with code" << m_exitCode << "IN" << p->workingDirectory(); return true; } else { + qint64 const end = QDateTime::currentDateTime().toMSecsSinceEpoch(); qCritical() << "EXECUTED" << m_command + << QString("(runtime %1ms)").arg(end-start) << "with code" << m_exitCode << "IN" << p->workingDirectory(); } } else { + qint64 const end = QDateTime::currentDateTime().toMSecsSinceEpoch(); qCritical() << "PROCESS" << m_command << "CRASHED with code" << p->exitCode() + << QString("(after %1ms)").arg(end-start) << "IN" << p->workingDirectory(); } } else { + qint64 const end = QDateTime::currentDateTime().toMSecsSinceEpoch(); qCritical() << "PROCESS" << m_command << "DID NOT FINISH WITH" << wait - << "MS IN" << p->workingDirectory(); + << "MS IN" << p->workingDirectory() + << QString("(runtime %1ms)").arg(end-start); } } else { qCritical() << "WRONG PROCESS STATE" << p->state() << "IN" << p->workingDirectory(); } } else { + qint64 const end = QDateTime::currentDateTime().toMSecsSinceEpoch(); qCritical() << "PROCESS" << m_command << "TIMEOUT AT START" + << QString("(runtime %1ms)").arg(end-start) << "IN" << p->workingDirectory(); } return false;