diff options
author | Kirill Burtsev <kirill.burtsev@qt.io> | 2018-10-08 11:10:50 +0200 |
---|---|---|
committer | Kirill Burtsev <kirill.burtsev@qt.io> | 2018-11-15 10:45:14 +0000 |
commit | 16e3859af180b28157f39ad5d1f77ff3571753a2 (patch) | |
tree | 82b30898bf5e84d922d9415280b91b14d4bcc08d /tests/auto/quicktest | |
parent | e12dc7910aaeb6e71275115c30a0eb227ac3b403 (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.cpp | 60 |
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" |