forked from qt-creator/qt-creator
tst_QtcProcess: Don't use errorOccurred() in tests
Change-Id: I71657e111ab09b599480874ed22e714142697c19 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -207,7 +207,7 @@ int ProcessTestApp::BlockingProcess::main()
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ProcessTestApp::EmitOneErrorOnCrash::main()
|
int ProcessTestApp::Crash::main()
|
||||||
{
|
{
|
||||||
doCrash();
|
doCrash();
|
||||||
return 1;
|
return 1;
|
||||||
|
@@ -72,7 +72,7 @@ public:
|
|||||||
SUB_PROCESS(StandardOutputAndErrorWriter);
|
SUB_PROCESS(StandardOutputAndErrorWriter);
|
||||||
SUB_PROCESS(ChannelForwarding);
|
SUB_PROCESS(ChannelForwarding);
|
||||||
SUB_PROCESS(BlockingProcess);
|
SUB_PROCESS(BlockingProcess);
|
||||||
SUB_PROCESS(EmitOneErrorOnCrash);
|
SUB_PROCESS(Crash);
|
||||||
SUB_PROCESS(CrashAfterOneSecond);
|
SUB_PROCESS(CrashAfterOneSecond);
|
||||||
SUB_PROCESS(RecursiveCrashingProcess);
|
SUB_PROCESS(RecursiveCrashingProcess);
|
||||||
SUB_PROCESS(RecursiveBlockingProcess);
|
SUB_PROCESS(RecursiveBlockingProcess);
|
||||||
|
@@ -144,7 +144,7 @@ private slots:
|
|||||||
void destroyBlockingProcess_data();
|
void destroyBlockingProcess_data();
|
||||||
void destroyBlockingProcess();
|
void destroyBlockingProcess();
|
||||||
void flushFinishedWhileWaitingForReadyRead();
|
void flushFinishedWhileWaitingForReadyRead();
|
||||||
void emitOneErrorOnCrash();
|
void crash();
|
||||||
void crashAfterOneSecond();
|
void crashAfterOneSecond();
|
||||||
void recursiveCrashingProcess();
|
void recursiveCrashingProcess();
|
||||||
void recursiveBlockingProcess();
|
void recursiveBlockingProcess();
|
||||||
@@ -1012,11 +1012,10 @@ void tst_QtcProcess::notRunningAfterStartingNonExistingProgram()
|
|||||||
process.setCommand({ FilePath::fromString(
|
process.setCommand({ FilePath::fromString(
|
||||||
"there_is_a_big_chance_that_executable_with_that_name_does_not_exists"), {} });
|
"there_is_a_big_chance_that_executable_with_that_name_does_not_exists"), {} });
|
||||||
|
|
||||||
int errorCount = 0;
|
int doneCount = 0;
|
||||||
QObject::connect(&process, &QtcProcess::errorOccurred,
|
QObject::connect(&process, &QtcProcess::done, [&process, &doneCount]() {
|
||||||
[&errorCount](QProcess::ProcessError error) {
|
++doneCount;
|
||||||
++errorCount;
|
QCOMPARE(process.error(), QProcess::FailedToStart);
|
||||||
QCOMPARE(error, QProcess::FailedToStart);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const int loopCount = 2;
|
const int loopCount = 2;
|
||||||
@@ -1036,6 +1035,7 @@ void tst_QtcProcess::notRunningAfterStartingNonExistingProgram()
|
|||||||
QVERIFY(process.exitCode() != 0);
|
QVERIFY(process.exitCode() != 0);
|
||||||
QCOMPARE(process.result(), ProcessResult::StartFailed);
|
QCOMPARE(process.result(), ProcessResult::StartFailed);
|
||||||
}
|
}
|
||||||
|
QCOMPARE(doneCount, loopCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Since we want to test whether the process forwards its channels or not, we can't just create
|
// Since we want to test whether the process forwards its channels or not, we can't just create
|
||||||
@@ -1178,23 +1178,22 @@ void tst_QtcProcess::flushFinishedWhileWaitingForReadyRead()
|
|||||||
QVERIFY(reply.contains(s_simpleTestData));
|
QVERIFY(reply.contains(s_simpleTestData));
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_QtcProcess::emitOneErrorOnCrash()
|
void tst_QtcProcess::crash()
|
||||||
{
|
{
|
||||||
SubProcessConfig subConfig(ProcessTestApp::EmitOneErrorOnCrash::envVar(), {});
|
SubProcessConfig subConfig(ProcessTestApp::Crash::envVar(), {});
|
||||||
QtcProcess process;
|
QtcProcess process;
|
||||||
subConfig.setupSubProcess(&process);
|
subConfig.setupSubProcess(&process);
|
||||||
|
|
||||||
int errorCount = 0;
|
|
||||||
connect(&process, &QtcProcess::errorOccurred, this, [&errorCount] { ++errorCount; });
|
|
||||||
process.start();
|
process.start();
|
||||||
QVERIFY(process.waitForStarted(1000));
|
QVERIFY(process.waitForStarted(1000));
|
||||||
|
QVERIFY(process.isRunning());
|
||||||
|
|
||||||
QEventLoop loop;
|
QEventLoop loop;
|
||||||
connect(&process, &QtcProcess::done, &loop, &QEventLoop::quit);
|
connect(&process, &QtcProcess::done, &loop, &QEventLoop::quit);
|
||||||
loop.exec();
|
loop.exec();
|
||||||
|
|
||||||
QCOMPARE(errorCount, 1);
|
|
||||||
QCOMPARE(process.error(), QProcess::Crashed);
|
QCOMPARE(process.error(), QProcess::Crashed);
|
||||||
|
QCOMPARE(process.exitStatus(), QProcess::CrashExit);
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_QtcProcess::crashAfterOneSecond()
|
void tst_QtcProcess::crashAfterOneSecond()
|
||||||
|
Reference in New Issue
Block a user