Add assorted tests to exercise more QTest functions
Coverage analysis reveals some unexercised code. Task-number: QTPM-1385 Change-Id: Ib3fdbcf778e7af14ca6dfa1a11bcb4943276de69 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
This commit is contained in:
parent
4b1b9ad7b0
commit
f3de22b211
45
tests/auto/testlib/selftests/expected_testlib.lightxml
Normal file
45
tests/auto/testlib/selftests/expected_testlib.lightxml
Normal file
@ -0,0 +1,45 @@
|
||||
<Environment>
|
||||
<QtVersion>@INSERT_QT_VERSION_HERE@</QtVersion>
|
||||
<QtBuild/>
|
||||
<QTestVersion>@INSERT_QT_VERSION_HERE@</QTestVersion>
|
||||
</Environment>
|
||||
<TestFunction name="initTestCase">
|
||||
<Incident type="pass" file="" line="0" />
|
||||
<Duration msecs="0"/>
|
||||
</TestFunction>
|
||||
<TestFunction name="basics">
|
||||
<Incident type="fail" file="qtbase/tests/auto/testlib/selftests/testlib/tst_testlib.cpp" line="0">
|
||||
<Description><![CDATA[Compared pointers are not the same]]></Description>
|
||||
</Incident>
|
||||
<Duration msecs="0"/>
|
||||
</TestFunction>
|
||||
<TestFunction name="delays">
|
||||
<Incident type="pass" file="" line="0" />
|
||||
<Duration msecs="0"/>
|
||||
</TestFunction>
|
||||
<TestFunction name="reals">
|
||||
<Incident type="pass" file="" line="0">
|
||||
<DataTag><![CDATA[zero]]></DataTag>
|
||||
</Incident>
|
||||
<Incident type="pass" file="" line="0">
|
||||
<DataTag><![CDATA[self-qQNaN]]></DataTag>
|
||||
</Incident>
|
||||
<Incident type="pass" file="" line="0">
|
||||
<DataTag><![CDATA[self-qInf]]></DataTag>
|
||||
</Incident>
|
||||
<Incident type="pass" file="" line="0">
|
||||
<DataTag><![CDATA[infineg]]></DataTag>
|
||||
</Incident>
|
||||
<Incident type="pass" file="" line="0">
|
||||
<DataTag><![CDATA[Sin(turn/4)]]></DataTag>
|
||||
</Incident>
|
||||
<Incident type="pass" file="" line="0">
|
||||
<DataTag><![CDATA[Cos(turn/2)]]></DataTag>
|
||||
</Incident>
|
||||
<Duration msecs="0"/>
|
||||
</TestFunction>
|
||||
<TestFunction name="cleanupTestCase">
|
||||
<Incident type="pass" file="" line="0" />
|
||||
<Duration msecs="0"/>
|
||||
</TestFunction>
|
||||
<Duration msecs="0"/>
|
22
tests/auto/testlib/selftests/expected_testlib.tap
Normal file
22
tests/auto/testlib/selftests/expected_testlib.tap
Normal file
@ -0,0 +1,22 @@
|
||||
TAP version 13
|
||||
# tst_TestLib
|
||||
ok 1 - initTestCase()
|
||||
not ok 2 - basics()
|
||||
---
|
||||
# Compared pointers are not the same
|
||||
at: tst_TestLib::basics() (qtbase/tests/auto/testlib/selftests/testlib/tst_testlib.cpp:54)
|
||||
file: qtbase/tests/auto/testlib/selftests/testlib/tst_testlib.cpp
|
||||
line: 54
|
||||
...
|
||||
ok 3 - delays()
|
||||
ok 4 - reals(zero)
|
||||
ok 5 - reals(self-qQNaN)
|
||||
ok 6 - reals(self-qInf)
|
||||
ok 7 - reals(infineg)
|
||||
ok 8 - reals(Sin(turn/4))
|
||||
ok 9 - reals(Cos(turn/2))
|
||||
ok 10 - cleanupTestCase()
|
||||
1..10
|
||||
# tests 10
|
||||
# pass 9
|
||||
# fail 1
|
23
tests/auto/testlib/selftests/expected_testlib.teamcity
Normal file
23
tests/auto/testlib/selftests/expected_testlib.teamcity
Normal file
@ -0,0 +1,23 @@
|
||||
##teamcity[testSuiteStarted name='tst_TestLib' flowId='tst_TestLib']
|
||||
##teamcity[testStarted name='initTestCase()' flowId='tst_TestLib']
|
||||
##teamcity[testFinished name='initTestCase()' flowId='tst_TestLib']
|
||||
##teamcity[testStarted name='basics()' flowId='tst_TestLib']
|
||||
##teamcity[testFailed name='basics()' message='Failure! |[Loc: qtbase/tests/auto/testlib/selftests/testlib/tst_testlib.cpp(0)|]' details='Compared pointers are not the same' flowId='tst_TestLib']
|
||||
##teamcity[testFinished name='basics()' flowId='tst_TestLib']
|
||||
##teamcity[testStarted name='delays()' flowId='tst_TestLib']
|
||||
##teamcity[testFinished name='delays()' flowId='tst_TestLib']
|
||||
##teamcity[testStarted name='reals(zero)' flowId='tst_TestLib']
|
||||
##teamcity[testFinished name='reals(zero)' flowId='tst_TestLib']
|
||||
##teamcity[testStarted name='reals(self-qQNaN)' flowId='tst_TestLib']
|
||||
##teamcity[testFinished name='reals(self-qQNaN)' flowId='tst_TestLib']
|
||||
##teamcity[testStarted name='reals(self-qInf)' flowId='tst_TestLib']
|
||||
##teamcity[testFinished name='reals(self-qInf)' flowId='tst_TestLib']
|
||||
##teamcity[testStarted name='reals(infineg)' flowId='tst_TestLib']
|
||||
##teamcity[testFinished name='reals(infineg)' flowId='tst_TestLib']
|
||||
##teamcity[testStarted name='reals(Sin(turn/4))' flowId='tst_TestLib']
|
||||
##teamcity[testFinished name='reals(Sin(turn/4))' flowId='tst_TestLib']
|
||||
##teamcity[testStarted name='reals(Cos(turn/2))' flowId='tst_TestLib']
|
||||
##teamcity[testFinished name='reals(Cos(turn/2))' flowId='tst_TestLib']
|
||||
##teamcity[testStarted name='cleanupTestCase()' flowId='tst_TestLib']
|
||||
##teamcity[testFinished name='cleanupTestCase()' flowId='tst_TestLib']
|
||||
##teamcity[testSuiteFinished name='tst_TestLib' flowId='tst_TestLib']
|
15
tests/auto/testlib/selftests/expected_testlib.txt
Normal file
15
tests/auto/testlib/selftests/expected_testlib.txt
Normal file
@ -0,0 +1,15 @@
|
||||
********* Start testing of tst_TestLib *********
|
||||
Config: Using QtTest library
|
||||
PASS : tst_TestLib::initTestCase()
|
||||
FAIL! : tst_TestLib::basics() Compared pointers are not the same
|
||||
Loc: [qtbase/tests/auto/testlib/selftests/testlib/tst_testlib.cpp(0)]
|
||||
PASS : tst_TestLib::delays()
|
||||
PASS : tst_TestLib::reals(zero)
|
||||
PASS : tst_TestLib::reals(self-qQNaN)
|
||||
PASS : tst_TestLib::reals(self-qInf)
|
||||
PASS : tst_TestLib::reals(infineg)
|
||||
PASS : tst_TestLib::reals(Sin(turn/4))
|
||||
PASS : tst_TestLib::reals(Cos(turn/2))
|
||||
PASS : tst_TestLib::cleanupTestCase()
|
||||
Totals: 9 passed, 1 failed, 0 skipped, 0 blacklisted, 0ms
|
||||
********* Finished testing of tst_TestLib *********
|
48
tests/auto/testlib/selftests/expected_testlib.xml
Normal file
48
tests/auto/testlib/selftests/expected_testlib.xml
Normal file
@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<TestCase name="tst_TestLib">
|
||||
<Environment>
|
||||
<QtVersion>@INSERT_QT_VERSION_HERE@</QtVersion>
|
||||
<QtBuild/>
|
||||
<QTestVersion>@INSERT_QT_VERSION_HERE@</QTestVersion>
|
||||
</Environment>
|
||||
<TestFunction name="initTestCase">
|
||||
<Incident type="pass" file="" line="0" />
|
||||
<Duration msecs="0"/>
|
||||
</TestFunction>
|
||||
<TestFunction name="basics">
|
||||
<Incident type="fail" file="qtbase/tests/auto/testlib/selftests/testlib/tst_testlib.cpp" line="0">
|
||||
<Description><![CDATA[Compared pointers are not the same]]></Description>
|
||||
</Incident>
|
||||
<Duration msecs="0"/>
|
||||
</TestFunction>
|
||||
<TestFunction name="delays">
|
||||
<Incident type="pass" file="" line="0" />
|
||||
<Duration msecs="0"/>
|
||||
</TestFunction>
|
||||
<TestFunction name="reals">
|
||||
<Incident type="pass" file="" line="0">
|
||||
<DataTag><![CDATA[zero]]></DataTag>
|
||||
</Incident>
|
||||
<Incident type="pass" file="" line="0">
|
||||
<DataTag><![CDATA[self-qQNaN]]></DataTag>
|
||||
</Incident>
|
||||
<Incident type="pass" file="" line="0">
|
||||
<DataTag><![CDATA[self-qInf]]></DataTag>
|
||||
</Incident>
|
||||
<Incident type="pass" file="" line="0">
|
||||
<DataTag><![CDATA[infineg]]></DataTag>
|
||||
</Incident>
|
||||
<Incident type="pass" file="" line="0">
|
||||
<DataTag><![CDATA[Sin(turn/4)]]></DataTag>
|
||||
</Incident>
|
||||
<Incident type="pass" file="" line="0">
|
||||
<DataTag><![CDATA[Cos(turn/2)]]></DataTag>
|
||||
</Incident>
|
||||
<Duration msecs="0"/>
|
||||
</TestFunction>
|
||||
<TestFunction name="cleanupTestCase">
|
||||
<Incident type="pass" file="" line="0" />
|
||||
<Duration msecs="0"/>
|
||||
</TestFunction>
|
||||
<Duration msecs="0"/>
|
||||
</TestCase>
|
16
tests/auto/testlib/selftests/expected_testlib.xunitxml
Normal file
16
tests/auto/testlib/selftests/expected_testlib.xunitxml
Normal file
@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<testsuite errors="0" failures="1" tests="5" name="tst_TestLib">
|
||||
<properties>
|
||||
<property value="@INSERT_QT_VERSION_HERE@" name="QTestVersion"/>
|
||||
<property value="@INSERT_QT_VERSION_HERE@" name="QtVersion"/>
|
||||
<property value="" name="QtBuild"/>
|
||||
</properties>
|
||||
<testcase result="pass" name="initTestCase"/>
|
||||
<testcase result="fail" name="basics">
|
||||
<failure message="Compared pointers are not the same" result="fail"/>
|
||||
</testcase>
|
||||
<testcase result="pass" name="delays"/>
|
||||
<testcase result="pass" name="reals"/>
|
||||
<testcase result="pass" name="cleanupTestCase"/>
|
||||
<system-err/>
|
||||
</testsuite>
|
@ -45,6 +45,7 @@ SUBPROGRAMS = \
|
||||
sleep \
|
||||
strcmp \
|
||||
subtest \
|
||||
testlib \
|
||||
tuplediagnostics \
|
||||
verbose1 \
|
||||
verbose2 \
|
||||
|
7
tests/auto/testlib/selftests/testlib/testlib.pro
Normal file
7
tests/auto/testlib/selftests/testlib/testlib.pro
Normal file
@ -0,0 +1,7 @@
|
||||
SOURCES += tst_testlib.cpp
|
||||
QT = core testlib
|
||||
|
||||
darwin: CONFIG -= app_bundle
|
||||
CONFIG -= debug_and_release_target
|
||||
|
||||
TARGET = testlib
|
97
tests/auto/testlib/selftests/testlib/tst_testlib.cpp
Normal file
97
tests/auto/testlib/selftests/testlib/tst_testlib.cpp
Normal file
@ -0,0 +1,97 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2018 The Qt Company Ltd.
|
||||
** Contact: https://www.qt.io/licensing/
|
||||
**
|
||||
** This file is part of the test suite of the Qt Toolkit.
|
||||
**
|
||||
** $QT_BEGIN_LICENSE:GPL-EXCEPT$
|
||||
** 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 https://www.qt.io/terms-conditions. For further
|
||||
** information use the contact form at https://www.qt.io/contact-us.
|
||||
**
|
||||
** GNU General Public License Usage
|
||||
** Alternatively, this file may be used under the terms of the GNU
|
||||
** General Public License version 3 as published by the Free Software
|
||||
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
||||
** included in the packaging of this file. Please review the following
|
||||
** information to ensure the GNU General Public License requirements will
|
||||
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
||||
**
|
||||
** $QT_END_LICENSE$
|
||||
**
|
||||
****************************************************************************/
|
||||
|
||||
#include <QtTest/QtTest>
|
||||
#include <QtCore/QtMath>
|
||||
#include <QtCore/QtNumeric>
|
||||
|
||||
/* Test QTest functions not covered by other parts of the selftest. Tests that
|
||||
* involve crashing or exiting should be added as separate tests in their own
|
||||
* right. Tests that form a coherent group on a related theme should also go in
|
||||
* their own directory. Tests that fail in order to exercise QTest internals
|
||||
* are fine.
|
||||
*/
|
||||
|
||||
class tst_TestLib : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
private slots:
|
||||
void basics() const;
|
||||
void delays() const;
|
||||
void reals_data() const;
|
||||
void reals() const;
|
||||
};
|
||||
|
||||
void tst_TestLib::basics() const
|
||||
{
|
||||
QVERIFY(QByteArray(QTest::currentAppName()).contains("testlib"));
|
||||
|
||||
QCOMPARE(QTest::testObject(), nullptr); // last, because it should fail
|
||||
}
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
namespace QTest {
|
||||
// Defined; not declared in the public header, but used by qtdeclarative.
|
||||
int defaultKeyDelay();
|
||||
int defaultMouseDelay();
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
||||
void tst_TestLib::delays() const
|
||||
{
|
||||
QVERIFY(QTest::defaultMouseDelay() >= 0);
|
||||
QVERIFY(QTest::defaultKeyDelay() >= 0);
|
||||
}
|
||||
|
||||
void tst_TestLib::reals_data() const
|
||||
{
|
||||
QTest::addColumn<double>("actual");
|
||||
QTest::addColumn<double>("expected");
|
||||
|
||||
QTest::newRow("zero") << 0.0 << 0.0;
|
||||
#define ADDROW(func) QTest::addRow("self-%s", #func) << func() << func()
|
||||
ADDROW(qQNaN);
|
||||
ADDROW(qInf);
|
||||
#undef ADDROW // Just used so as to exercise addRow()
|
||||
QTest::newRow("infineg") << -qInf() << -qInf();
|
||||
QTest::newRow("Sin(turn/4)") << qSin(9 * M_PI_2) << 1.0;
|
||||
QTest::newRow("Cos(turn/2)") << qCos(15 * M_PI) << -1.0;
|
||||
}
|
||||
|
||||
void tst_TestLib::reals() const
|
||||
{
|
||||
QFETCH(double, actual);
|
||||
QFETCH(double, expected);
|
||||
QCOMPARE(actual, expected);
|
||||
}
|
||||
|
||||
QTEST_APPLESS_MAIN(tst_TestLib)
|
||||
|
||||
#include "tst_testlib.moc"
|
@ -497,6 +497,7 @@ void tst_Selftests::runSubTest_data()
|
||||
<< "sleep"
|
||||
<< "strcmp"
|
||||
<< "subtest"
|
||||
<< "testlib"
|
||||
<< "tuplediagnostics"
|
||||
<< "verbose1"
|
||||
<< "verbose2"
|
||||
|
Loading…
x
Reference in New Issue
Block a user