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
146 QVERIFY(!sm->isStopped());146 QVERIFY(!sm->isStopped());
147 QVERIFY(sm->isFinished());147 QVERIFY(sm->isFinished());
148 148
149 QVERIFY(printed.length() == expected.length());149 qDebug() << "Script printed :" << printed;
150 for(int i=0;i<printed.length();i++) {150 qDebug() << "Expected output:" << expected;
151 QString nomatch = QString("Result '%1' didn't match expected '%2'").arg(printed[i]).arg(expected[i]);151
152 QVERIFY2(printed[i] == expected[i], qPrintable(nomatch));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));
153 }155 }
154}156}
155 157
@@ -179,11 +181,11 @@ void ScriptEngineNetworkedTests::testRequire() { · 23 unmodified lines
179 QVERIFY(!sm->isStopped());181 QVERIFY(!sm->isStopped());
180 QVERIFY(sm->isFinished());182 QVERIFY(sm->isFinished());
181 183
182 QVERIFY(printed.length() == expected.length());184 for(const auto &str : expected) {
183 for(int i=0;i<printed.length();i++) {185 QString nomatch = QString("Result didn't contain expected string '%1'").arg(str);
184 QString nomatch = QString("Result '%1' didn't match expected '%2'").arg(printed[i]).arg(expected[i]);186 QVERIFY2(printed.contains(str), qPrintable(nomatch));
185 QVERIFY2(printed[i] == expected[i], qPrintable(nomatch));
186 }187 }
188
187}189}
188 190
189 191
@@ -194,6 +196,7 @@ void ScriptEngineNetworkedTests::testRequireInfinite() { · 4 unmodified lines
194 "print(\"Done\");"196 "print(\"Done\");"
195 "Script.stop(true);", "testRequireInf.js");197 "Script.stop(true);", "testRequireInf.js");
196 QString errors;198 QString errors;
199 QStringList printed;
197 200
198 201
199 202
@@ -204,6 +207,9 @@ void ScriptEngineNetworkedTests::testRequireInfinite() { · 4 unmodified lines
204 connect(sm.get(), &ScriptManager::errorMessage, [&errors](const QString& message, const QString& engineName){207 connect(sm.get(), &ScriptManager::errorMessage, [&errors](const QString& message, const QString& engineName){
205 errors.append(message);208 errors.append(message);
206 });209 });
210 connect(sm.get(), &ScriptManager::printedMessage, [&printed](const QString& message, const QString& engineName){
211 printed.append(message);
212 });
207 213
208 214
209 qInfo() << "About to run script";215 qInfo() << "About to run script";
@@ -213,5 +219,6 @@ void ScriptEngineNetworkedTests::testRequireInfinite() { · 3 unmodified lines
213 QVERIFY(!sm->isStopped());219 QVERIFY(!sm->isStopped());
214 QVERIFY(sm->isFinished());220 QVERIFY(sm->isFinished());
215 221
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") );
217}224}