Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
src_qtestlib_qtestcase.cpp
Go to the documentation of this file.
1// Copyright (C) 2019 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
3#include <QTest>
4#include <QSqlDatabase>
5#include <QFontDatabase>
6
7#include <initializer_list>
8
9using namespace Qt::StringLiterals;
10
11// dummy
12class TestBenchmark : public QObject
13{
15private slots:
16 void simple();
17};
18
19// dummy
20class MyTestClass : public QObject
21{
22 public:
23 void cleanup();
25 void addMultStringRows();
26 void addDataRow();
27};
28// dummy
30{
31};
32
33class TestQString : public QObject
34{
35 public:
36 void toInt_data();
37 void toInt();
38 void toUpper();
39 void Compare();
40};
41
43{
45QVERIFY2(QFileInfo("file.txt").exists(), "file.txt does not exist.");
47
49QCOMPARE(QString("hello").toUpper(), QString("HELLO"));
51}
52
55{
56 QTest::addColumn<QString>("aString");
57 QTest::addColumn<int>("expected");
58
59 QTest::newRow("positive+value") << "42" << 42;
60 QTest::newRow("negative-value") << "-42" << -42;
61 QTest::newRow("zero") << "0" << 0;
62}
64
67{
68 QFETCH(QString, aString);
69 QFETCH(int, expected);
70
71 QCOMPARE(aString.toInt(), expected);
72}
74
75void testInt()
76{
77// dummy
78int i = 0, j = 0;
80if (sizeof(int) != 4)
81 QFAIL("This test has not been ported to this platform yet.");
83
85QFETCH(QString, myString);
86QCOMPARE(QString("hello").toUpper(), myString);
88
90QTEST(QString("hello").toUpper(), "myString");
92
94if (!QSqlDatabase::drivers().contains("SQLITE"))
95 QSKIP("This test requires the SQLITE database driver");
97
99QEXPECT_FAIL("", "Will fix in the next release", Continue);
100QCOMPARE(i, 42);
101QCOMPARE(j, 43);
103
105QEXPECT_FAIL("data27", "Oh my, this is soooo broken", Abort);
106QCOMPARE(i, 42);
108}
109
113
115{
116 class MyTestObject : public QObject
117 {
118 };
120MyTestObject test1;
121QTest::qExec(&test1);
123}
124
126{
128QDir dir;
129QTest::ignoreMessage(QtWarningMsg, "QDir::mkdir: Empty or null file name(s)");
130dir.mkdir("");
132}
133
136{
137 QTest::addColumn<QString>("aString");
138 QTest::newRow("just.hello") << QString("hello");
139 QTest::newRow("a.null.string") << QString();
140}
142
144{
146 QTest::addColumn<int>("input");
147 QTest::addColumn<QString>("output");
148 QTest::addRow("%d", 0) << 0 << QString("0");
149 QTest::addRow("%d", 1) << 1 << QString("1");
151}
152
154{
156 QTest::addColumn<int>("intval");
157 QTest::addColumn<QString>("str");
158 QTest::addColumn<double>("dbl");
159 QTest::newRow("row1") << 1 << "hello" << 1.5;
161}
162
165{
166 if (qstrcmp(QTest::currentTestFunction(), "myDatabaseTest") == 0) {
167 // clean up all database connections
169 }
170}
172
174{
176using namespace std::chrono_literals;
177QTest::qSleep(250ms);
179}
180
182void TestBenchmark::simple()
183{
184 QString str1 = u"This is a test string"_s;
185 QString str2 = u"This is a test string"_s;
186 QCOMPARE(str1.localeAwareCompare(str2), 0);
187 QBENCHMARK {
188 str1.localeAwareCompare(str2);
189 }
190}
192
194{
195QFile file;
197bool opened = file.open(QIODevice::WriteOnly);
198QVERIFY(opened);
202 qPrintable(QString("open %1: %2")
203 .arg(file.fileName()).arg(file.errorString())));
205}
206
208{
210 const int expected[] = {8, 10, 12, 16, 20, 24};
213}
214
216{
218 #define ARG(...) __VA_ARGS__
219 QCOMPARE(QFontDatabase::standardSizes(), ARG({8, 10, 12, 16, 20, 24}));
220 #undef ARG
222}
\inmodule QtCore
Definition qdir.h:20
\inmodule QtCore
Definition qfile.h:93
QFILE_MAYBE_NODISCARD bool open(OpenMode flags) override
Opens the file using OpenMode mode, returning true if successful; otherwise false.
Definition qfile.cpp:904
QString fileName() const override
Returns the name set by setFileName() or to the QFile constructors.
Definition qfile.cpp:277
static QList< int > standardSizes()
Returns a list of standard font sizes.
QString errorString() const
Returns a human-readable description of the last device error that occurred.
\inmodule QtCore
Definition qobject.h:103
static QStringList drivers()
Returns a list of all the available database drivers.
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
QJSValue expected
Definition qjsengine.cpp:12
Q_TESTLIB_EXPORT QTestData & newRow(const char *dataTag)
Appends a new row to the current test data.
Q_TESTLIB_EXPORT const char * currentTestFunction()
Returns the name of the test function that is currently executed.
Q_CORE_EXPORT void qSleep(int ms)
This is an overloaded member function, provided for convenience. It differs from the above function o...
Q_TESTLIB_EXPORT void ignoreMessage(QtMsgType type, const char *message)
Ignores messages created by qDebug(), qInfo() or qWarning().
Q_TESTLIB_EXPORT int qExec(QObject *testObject, int argc=0, char **argv=nullptr)
Executes tests declared in testObject.
Q_TESTLIB_EXPORT QTestData & addRow(const char *format,...) Q_ATTRIBUTE_FORMAT_PRINTF(1
#define QBENCHMARK
Definition qbenchmark.h:40
Q_CORE_EXPORT int qstrcmp(const char *str1, const char *str2)
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
@ QtWarningMsg
Definition qlogging.h:31
static bool contains(const QJsonArray &haystack, unsigned needle)
Definition qopengl.cpp:116
SSL_CTX int void * arg
#define qPrintable(string)
Definition qstring.h:1531
#define QTEST_MAIN(TestObject)
Definition qtest.h:309
#define QSKIP(statement,...)
Definition qtestcase.h:270
#define QFETCH(Type, name)
Definition qtestcase.h:278
#define QEXPECT_FAIL(dataIndex, comment, mode)
Definition qtestcase.h:272
#define QFAIL(message)
Definition qtestcase.h:64
#define QTEST(actual, testElement)
Definition qtestcase.h:284
#define QCOMPARE(actual, expected)
Definition qtestcase.h:81
#define QVERIFY(statement)
Definition qtestcase.h:58
#define QVERIFY2(statement, description)
Definition qtestcase.h:70
#define Q_OBJECT
#define slots
QFile file
[0]
QString dir
[11]
void compareListToInitializerList()
void closeAllDatabases()
void quarterSecondSleep()
[22]
#define ARG(...)
void tstQDir()
void testObject()
[11]
void wrapInFunction()
void compareListToArray()
void verifyString()
[27]
void testInt()
[4]