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:
Jarek Kobus
2022-06-22 15:17:25 +02:00
parent 42ab928a27
commit b77645d133
3 changed files with 12 additions and 13 deletions

View File

@@ -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;

View File

@@ -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);

View File

@@ -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()