From d9bbec000c1506e0a7baeec942113b653e776bbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= <44814898+BruebachL@users.noreply.github.com> Date: Tue, 10 Nov 2026 12:07:46 +0100 Subject: [PATCH] [Tests] Tick the event loop while waiting for the port file The port-file wait loop slept with QThread::msleep and never reached the event dispatcher. QProcess fills its read buffers and flips its state only from its socket notifiers, so drainProcessOutput() was a no-op and a child that died before publishing its port went unnoticed until the full 15 s startup timeout, with empty stdout and stderr in the failure message. Pump the event loop instead, as the previous waitForReadyRead loop did. --- tests/server_dev_smoke_test.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/server_dev_smoke_test.cpp b/tests/server_dev_smoke_test.cpp index 7d89bcf9c..dd5d7d505 100644 --- a/tests/server_dev_smoke_test.cpp +++ b/tests/server_dev_smoke_test.cpp @@ -154,7 +154,10 @@ protected: drainProcessOutput(); return false; } - QThread::msleep(20); + // An event tick, not a bare sleep: QProcess fills its read buffers and flips its state + // only from its socket notifiers, so without this the drain below is a no-op and a dead + // child is not noticed until the full timeout has elapsed. + QCoreApplication::processEvents(QEventLoop::AllEvents, 20); } drainProcessOutput(); return false;