diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp index d0f0e6b5638..93d604c62b6 100644 --- a/src/testlib/qtestcase.cpp +++ b/src/testlib/qtestcase.cpp @@ -420,7 +420,6 @@ static int eventDelay = -1; static int timeout = -1; #endif static int repetitions = 1; -static bool repeatForever = false; static bool skipBlacklisted = false; namespace Internal { @@ -604,7 +603,6 @@ Q_TESTLIB_EXPORT void qtest_qParseArgs(int argc, const char *const argv[], bool const char *logFilename = nullptr; repetitions = 1; - repeatForever = false; QTest::testFunctions.clear(); QTest::testTags.clear(); @@ -819,7 +817,6 @@ Q_TESTLIB_EXPORT void qtest_qParseArgs(int argc, const char *const argv[], bool exit(1); } else { repetitions = qToInt(argv[++i]); - repeatForever = repetitions < 0; } } else if (strcmp(argv[i], "-nocrashhandler") == 0) { QTest::Internal::noCrashHandler = true; @@ -1947,7 +1944,9 @@ int QTest::qRun() } TestMethods test(currentTestObject, std::move(commandLineMethods)); - while (QTestLog::failCount() == 0 && (repeatForever || repetitions-- > 0)) { + int remainingRepetitions = repetitions; + const bool repeatForever = repetitions < 0; + while (QTestLog::failCount() == 0 && (repeatForever || remainingRepetitions-- > 0)) { QTestTable::globalTestTable(); test.invokeTests(currentTestObject); QTestTable::clearGlobalTestTable();