History

Fix script tests, parse results better

Dale Glass committed 6 months ago

Commit 7d1e78e1 parent ddb5c8b1 file · +16 −9Browse files

Showing the changes to tests/script-engine/src/ScriptEngineNetworkedTests.cpp (1 of 1 file). Show all

Unified · Split

tests/script-engine/src/ScriptEngineNetworkedTests.cpp+16−9
@@ -146,10 +146,12 @@ void ScriptEngineNetworkedTests::testScriptRequire() { · 145 unmodified lines
146146 QVERIFY(!sm->isStopped());
147147 QVERIFY(sm->isFinished());
148148
149− QVERIFY(printed.length() == expected.length());
150− for(int i=0;i<printed.length();i++) {
151− QString nomatch = QString("Result '%1' didn't match expected '%2'").arg(printed[i]).arg(expected[i]);
152− QVERIFY2(printed[i] == expected[i], qPrintable(nomatch));
149+ qDebug() << "Script printed :" << printed;
150+ qDebug() << "Expected output:" << expected;
151+
152+ for(const auto &str : expected) {
153+ QString nomatch = QString("Result didn't contain expected string '%1'").arg(str);
154+ QVERIFY2(printed.contains(str), qPrintable(nomatch));
153155 }
154156 }
155157
@@ -179,11 +181,11 @@ void ScriptEngineNetworkedTests::testRequire() { · 23 unmodified lines
179181 QVERIFY(!sm->isStopped());
180182 QVERIFY(sm->isFinished());
181183
182− QVERIFY(printed.length() == expected.length());
183− for(int i=0;i<printed.length();i++) {
184− QString nomatch = QString("Result '%1' didn't match expected '%2'").arg(printed[i]).arg(expected[i]);
185− QVERIFY2(printed[i] == expected[i], qPrintable(nomatch));
184+ for(const auto &str : expected) {
185+ QString nomatch = QString("Result didn't contain expected string '%1'").arg(str);
186+ QVERIFY2(printed.contains(str), qPrintable(nomatch));
186187 }
188+
187189 }
188190
189191
@@ -194,6 +196,7 @@ void ScriptEngineNetworkedTests::testRequireInfinite() { · 4 unmodified lines
194196 "print(\"Done\");"
195197 "Script.stop(true);", "testRequireInf.js");
196198 QString errors;
199+ QStringList printed;
197200
198201
199202
@@ -204,6 +207,9 @@ void ScriptEngineNetworkedTests::testRequireInfinite() { · 4 unmodified lines
204207 connect(sm.get(), &ScriptManager::errorMessage, [&errors](const QString& message, const QString& engineName){
205208 errors.append(message);
206209 });
210+ connect(sm.get(), &ScriptManager::printedMessage, [&printed](const QString& message, const QString& engineName){
211+ printed.append(message);
212+ });
207213
208214
209215 qInfo() << "About to run script";
@@ -213,5 +219,6 @@ void ScriptEngineNetworkedTests::testRequireInfinite() { · 3 unmodified lines
213219 QVERIFY(!sm->isStopped());
214220 QVERIFY(sm->isFinished());
215221
216− QVERIFY(errors.contains("Maximum call stack size exceeded"));
222+ // Acceptable results: either failing, or realizing a prior module is already included
223+ QVERIFY(errors.contains("Maximum call stack size exceeded") || printed.contains("Done") );
217224 }