aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quicktest
diff options
context:
space:
mode:
authorKirill Burtsev <kirill.burtsev@qt.io>2018-10-08 11:10:50 +0200
committerKirill Burtsev <kirill.burtsev@qt.io>2018-11-15 10:45:14 +0000
commit16e3859af180b28157f39ad5d1f77ff3571753a2 (patch)
tree82b30898bf5e84d922d9415280b91b14d4bcc08d /tests/auto/quicktest
parente12dc7910aaeb6e71275115c30a0eb227ac3b403 (diff)
Qt Quick Test: support tags filter on tests run
Implemented logic for filtering tests with 'case::function:tag' run syntax. Fixes: QTBUG-71645 Change-Id: I9243636b098b4e9ccb4c74d08679bbbb9f3e8a65 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'tests/auto/quicktest')
-rw-r--r--tests/auto/quicktest/testfiltering/tst_testfiltering.cpp60
1 files changed, 60 insertions, 0 deletions
diff --git a/tests/auto/quicktest/testfiltering/tst_testfiltering.cpp b/tests/auto/quicktest/testfiltering/tst_testfiltering.cpp
index 8817adb3bc..1db3d5be57 100644
--- a/tests/auto/quicktest/testfiltering/tst_testfiltering.cpp
+++ b/tests/auto/quicktest/testfiltering/tst_testfiltering.cpp
@@ -38,6 +38,10 @@ private slots:
void twoFilters();
void twoFiltersWithOneMatch();
void manyFilters();
+ void filterTestWithDefaultDataTags();
+ void filterTestWithDataTags();
+ void filterTestByDataTag();
+ void filterInvalidDataTag();
};
@@ -131,6 +135,62 @@ void tst_TestFiltering::manyFilters()
QCOMPARE(process.exitCode(), 0);
}
+void tst_TestFiltering::filterTestWithDefaultDataTags()
+{
+ QProcess process;
+ process.start(testExe, { QLatin1String("Third::test_default_tags"), });
+
+ QVERIFY(process.waitForFinished());
+
+ const QString output = process.readAll();
+ QVERIFY(output.contains(QLatin1String("Totals: 5 passed")));
+ QVERIFY(output.contains(QLatin1String(" 2 skipped")));
+ QCOMPARE(process.exitStatus(), QProcess::NormalExit);
+ QCOMPARE(process.exitCode(), 0);
+}
+
+void tst_TestFiltering::filterTestWithDataTags()
+{
+ QProcess process;
+ process.start(testExe, { QLatin1String("Third::test_tags"), });
+
+ QVERIFY(process.waitForFinished());
+
+ const QString output = process.readAll();
+ QVERIFY(output.contains(QLatin1String("Totals: 4 passed")));
+ QVERIFY(output.contains(QLatin1String(" 1 skipped")));
+ QCOMPARE(process.exitStatus(), QProcess::NormalExit);
+ QCOMPARE(process.exitCode(), 0);
+}
+
+void tst_TestFiltering::filterTestByDataTag()
+{
+ QProcess process;
+ process.start(testExe, { QLatin1String("Third::test_default_tags:init_2"),
+ QLatin1String("Third::test_default_tags:skip_3"),
+ QLatin1String("Third::test_tags:baz"),
+ QLatin1String("Third::test_tags:bar"), });
+
+ QVERIFY(process.waitForFinished());
+
+ const QString output = process.readAll();
+ QVERIFY(output.contains(QLatin1String("Totals: 4 passed")));
+ QVERIFY(output.contains(QLatin1String(" 2 skipped")));
+ QCOMPARE(process.exitStatus(), QProcess::NormalExit);
+ QCOMPARE(process.exitCode(), 0);
+}
+
+void tst_TestFiltering::filterInvalidDataTag()
+{
+ QProcess process;
+ process.start(testExe, { QLatin1String("Third::test_tags:invalid_tag") });
+
+ QVERIFY(process.waitForFinished());
+
+ QCOMPARE(process.exitStatus(), QProcess::NormalExit);
+ QCOMPARE(process.exitCode(), 1);
+}
+
QTEST_MAIN(tst_TestFiltering);
#include "tst_testfiltering.moc"