summaryrefslogtreecommitdiffstats
path: root/tests/auto/testlib/selftests
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/testlib/selftests')
-rw-r--r--tests/auto/testlib/selftests/blacklisted/BLACKLIST12
-rw-r--r--tests/auto/testlib/selftests/blacklisted/blacklisted.pro7
-rw-r--r--tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp94
-rw-r--r--tests/auto/testlib/selftests/expected_blacklisted.txt26
-rw-r--r--tests/auto/testlib/selftests/selftests.pri1
-rw-r--r--tests/auto/testlib/selftests/selftests.qrc1
-rw-r--r--tests/auto/testlib/selftests/tst_selftests.cpp8
7 files changed, 148 insertions, 1 deletions
diff --git a/tests/auto/testlib/selftests/blacklisted/BLACKLIST b/tests/auto/testlib/selftests/blacklisted/BLACKLIST
new file mode 100644
index 0000000000..36b7699cbd
--- /dev/null
+++ b/tests/auto/testlib/selftests/blacklisted/BLACKLIST
@@ -0,0 +1,12 @@
+[pass]
+*
+[skip]
+*
+[fail]
+*
+[xpass]
+*
+[xfail]
+*
+[messages]
+*
diff --git a/tests/auto/testlib/selftests/blacklisted/blacklisted.pro b/tests/auto/testlib/selftests/blacklisted/blacklisted.pro
new file mode 100644
index 0000000000..5bd22910b1
--- /dev/null
+++ b/tests/auto/testlib/selftests/blacklisted/blacklisted.pro
@@ -0,0 +1,7 @@
+SOURCES += tst_blacklisted.cpp
+QT = core testlib-private
+
+mac: CONFIG -= app_bundle
+CONFIG -= debug_and_release_target
+
+TARGET = blacklisted
diff --git a/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp b/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
new file mode 100644
index 0000000000..f1df285a51
--- /dev/null
+++ b/tests/auto/testlib/selftests/blacklisted/tst_blacklisted.cpp
@@ -0,0 +1,94 @@
+/****************************************************************************
+**
+** Copyright (C) 2015 The Qt Company Ltd.
+** Contact: http://www.qt.io/licensing/
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL21$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and The Qt Company. For licensing terms
+** and conditions see http://www.qt.io/terms-conditions. For further
+** information use the contact form at http://www.qt.io/contact-us.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 or version 3 as published by the Free
+** Software Foundation and appearing in the file LICENSE.LGPLv21 and
+** LICENSE.LGPLv3 included in the packaging of this file. Please review the
+** following information to ensure the GNU Lesser General Public License
+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** As a special exception, The Qt Company gives you certain additional
+** rights. These rights are described in The Qt Company LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtCore/QCoreApplication>
+#include <QtTest/QtTest>
+#include <private/qtestlog_p.h>
+
+class tst_Blacklisted : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void pass();
+ void skip();
+ void fail();
+ void xfail();
+ void xpass();
+
+ // This test function must be last, as it calls qFatal().
+ void messages();
+};
+
+// All the tests below have been blacklisted in blacklisted/BLACKLIST
+
+void tst_Blacklisted::pass()
+{
+ QVERIFY(true);
+}
+
+void tst_Blacklisted::skip()
+{
+ QSKIP("This test should SKIP");
+}
+
+void tst_Blacklisted::fail()
+{
+ QVERIFY2(false, "This test should BFAIL");
+}
+
+void tst_Blacklisted::xfail()
+{
+ QEXPECT_FAIL("", "This test should XFAIL then BFAIL", Abort);
+ QVERIFY(false);
+}
+
+void tst_Blacklisted::xpass()
+{
+ QEXPECT_FAIL("", "This test should XPASS", Abort);
+ QVERIFY2(true, "This test should XPASS, blacklist ignored for XPASS");
+}
+
+void tst_Blacklisted::messages()
+{
+ qWarning("This is a warning that should not appear in silent test output");
+ QWARN("This is an internal testlib warning that should not appear in silent test output");
+ qDebug("This is a debug message that should not appear in silent test output");
+ qCritical("This is a critical message that should not appear in silent test output");
+ qInfo("This is an info message that should not appear in silent test output");
+ QTestLog::info("This is an internal testlib info message that should not appear in silent test output", __FILE__, __LINE__);
+ qFatal("This is a fatal error message that should still appear in silent test output");
+}
+
+QTEST_MAIN(tst_Blacklisted)
+#include "tst_blacklisted.moc"
diff --git a/tests/auto/testlib/selftests/expected_blacklisted.txt b/tests/auto/testlib/selftests/expected_blacklisted.txt
new file mode 100644
index 0000000000..3afd93b0cc
--- /dev/null
+++ b/tests/auto/testlib/selftests/expected_blacklisted.txt
@@ -0,0 +1,26 @@
+********* Start testing of tst_Blacklisted *********
+Config: Using QtTest library @INSERT_QT_VERSION_HERE@, Qt @INSERT_QT_VERSION_HERE@
+PASS : tst_Blacklisted::initTestCase()
+BPASS : tst_Blacklisted::pass()
+SKIP : tst_Blacklisted::skip() This test should SKIP
+ Loc: [tst_blacklisted.cpp(62)]
+BFAIL : tst_Blacklisted::fail() 'false' returned FALSE. (This test should BFAIL)
+ Loc: [tst_blacklisted.cpp(67)]
+XFAIL : tst_Blacklisted::xfail() This test should XFAIL then BFAIL
+ Loc: [tst_blacklisted.cpp(73)]
+BPASS : tst_Blacklisted::xfail()
+XPASS : tst_Blacklisted::xpass() 'true' returned TRUE unexpectedly. (This test should XPASS, blacklist ignored for XPASS)
+ Loc: [tst_blacklisted.cpp(79)]
+QWARN : tst_Blacklisted::messages() This is a warning that should not appear in silent test output
+WARNING: tst_Blacklisted::messages() This is an internal testlib warning that should not appear in silent test output
+ Loc: [tst_blacklisted.cpp(85)]
+QDEBUG : tst_Blacklisted::messages() This is a debug message that should not appear in silent test output
+QSYSTEM: tst_Blacklisted::messages() This is a critical message that should not appear in silent test output
+QINFO : tst_Blacklisted::messages() This is an info message that should not appear in silent test output
+INFO : tst_Blacklisted::messages() This is an internal testlib info message that should not appear in silent test output
+ Loc: [tst_blacklisted.cpp(89)]
+QFATAL : tst_Blacklisted::messages() This is a fatal error message that should still appear in silent test output
+BFAIL : tst_Blacklisted::messages() Received a fatal error.
+ Loc: [Unknown file(0)]
+Totals: 1 passed, 1 failed, 1 skipped, 4 blacklisted
+********* Finished testing of tst_Blacklisted *********
diff --git a/tests/auto/testlib/selftests/selftests.pri b/tests/auto/testlib/selftests/selftests.pri
index 7b706735a9..7404a1c49b 100644
--- a/tests/auto/testlib/selftests/selftests.pri
+++ b/tests/auto/testlib/selftests/selftests.pri
@@ -8,6 +8,7 @@ SUBPROGRAMS = \
benchliboptions \
benchlibtickcounter \
benchlibwalltime \
+ blacklisted \
cmptest \
commandlinedata \
counting \
diff --git a/tests/auto/testlib/selftests/selftests.qrc b/tests/auto/testlib/selftests/selftests.qrc
index ba567f1fb4..715e255e76 100644
--- a/tests/auto/testlib/selftests/selftests.qrc
+++ b/tests/auto/testlib/selftests/selftests.qrc
@@ -151,5 +151,6 @@
<file>expected_xunit.txt</file>
<file>expected_xunit.xml</file>
<file>expected_xunit.xunitxml</file>
+ <file>expected_blacklisted.txt</file>
</qresource>
</RCC>
diff --git a/tests/auto/testlib/selftests/tst_selftests.cpp b/tests/auto/testlib/selftests/tst_selftests.cpp
index a5840d16d2..5e97a9cfe4 100644
--- a/tests/auto/testlib/selftests/tst_selftests.cpp
+++ b/tests/auto/testlib/selftests/tst_selftests.cpp
@@ -352,6 +352,7 @@ void tst_Selftests::runSubTest_data()
<< "benchlibcounting"
<< "benchlibeventcounter"
<< "benchliboptions"
+ << "blacklisted"
<< "cmptest"
<< "commandlinedata"
<< "counting"
@@ -470,6 +471,9 @@ void tst_Selftests::runSubTest_data()
if (subtest == "benchliboptions") {
continue;
}
+ if (subtest == "blacklisted") {
+ continue;
+ }
if (subtest == "printdatatags") {
continue;
}
@@ -503,7 +507,8 @@ void tst_Selftests::runSubTest_data()
const bool crashes = subtest == QLatin1String("assert") || subtest == QLatin1String("exceptionthrow")
|| subtest == QLatin1String("fetchbogus") || subtest == QLatin1String("crashedterminate")
- || subtest == QLatin1String("crashes") || subtest == QLatin1String("silent");
+ || subtest == QLatin1String("crashes") || subtest == QLatin1String("silent")
+ || subtest == QLatin1String("blacklisted");
QTest::newRow(qPrintable(QString("%1 %2").arg(subtest).arg(loggerSet.name)))
<< subtest
<< loggers
@@ -612,6 +617,7 @@ void tst_Selftests::doRunSubTest(QString const& subdir, QStringList const& logge
&& subdir != QLatin1String("fetchbogus")
&& subdir != QLatin1String("xunit")
#ifdef Q_CC_MINGW
+ && subdir != QLatin1String("blacklisted") // calls qFatal()
&& subdir != QLatin1String("silent") // calls qFatal()
#endif
&& subdir != QLatin1String("benchlibcallgrind"))