summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/corelib')
-rw-r--r--tests/auto/corelib/animation/qpauseanimation/BLACKLIST2
-rw-r--r--tests/auto/corelib/io/io.pro5
-rw-r--r--tests/auto/corelib/io/qdir/tst_qdir.cpp65
-rw-r--r--tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp28
-rw-r--r--tests/auto/corelib/io/qurl/tst_qurl.cpp6
-rw-r--r--tests/auto/corelib/itemmodels/itemmodels.pro10
-rw-r--r--tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp2
-rw-r--r--tests/auto/corelib/json/tst_qtjson.cpp29
-rw-r--r--tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp11
-rw-r--r--tests/auto/corelib/mimetypes/qmimedatabase/qmimedatabase.pro6
-rw-r--r--tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp2
-rw-r--r--tests/auto/corelib/thread/thread.pro6
-rw-r--r--tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp1
-rw-r--r--tests/auto/corelib/tools/qchar/tst_qchar.cpp58
-rw-r--r--tests/auto/corelib/tools/qhash/tst_qhash.cpp4
-rw-r--r--tests/auto/corelib/tools/qmap/tst_qmap.cpp4
-rw-r--r--tests/auto/corelib/xml/xml.pro2
17 files changed, 168 insertions, 73 deletions
diff --git a/tests/auto/corelib/animation/qpauseanimation/BLACKLIST b/tests/auto/corelib/animation/qpauseanimation/BLACKLIST
index 3b2cd84749..8fc1b07502 100644
--- a/tests/auto/corelib/animation/qpauseanimation/BLACKLIST
+++ b/tests/auto/corelib/animation/qpauseanimation/BLACKLIST
@@ -2,3 +2,5 @@
osx-10.9
[pauseAndPropertyAnimations]
*
+[multipleSequentialGroups]
+osx
diff --git a/tests/auto/corelib/io/io.pro b/tests/auto/corelib/io/io.pro
index 470a1dde26..01ed84fda9 100644
--- a/tests/auto/corelib/io/io.pro
+++ b/tests/auto/corelib/io/io.pro
@@ -50,6 +50,11 @@ SUBDIRS=\
qprocess \
qtextstream
+!qtHaveModule(concurrent): SUBDIRS -= \
+ qdebug \
+ qlockfile \
+ qurl
+
!qtConfig(private_tests): SUBDIRS -= \
qabstractfileengine \
qfileinfo \
diff --git a/tests/auto/corelib/io/qdir/tst_qdir.cpp b/tests/auto/corelib/io/qdir/tst_qdir.cpp
index 762cb539e0..330ff9312d 100644
--- a/tests/auto/corelib/io/qdir/tst_qdir.cpp
+++ b/tests/auto/corelib/io/qdir/tst_qdir.cpp
@@ -99,14 +99,11 @@ private slots:
void entryListWithSymLinks();
- void mkdir_data();
- void mkdir();
+ void mkdirRmdir_data();
+ void mkdirRmdir();
void makedirReturnCode();
- void rmdir_data();
- void rmdir();
-
void removeRecursively_data();
void removeRecursively();
void removeRecursivelyFailure();
@@ -342,26 +339,29 @@ void tst_QDir::setPath()
QCOMPARE(shared.entryList(), entries2);
}
-void tst_QDir::mkdir_data()
+void tst_QDir::mkdirRmdir_data()
{
QTest::addColumn<QString>("path");
QTest::addColumn<bool>("recurse");
QStringList dirs;
- dirs << QDir::currentPath() + "/testdir/one/two/three"
- << QDir::currentPath() + "/testdir/two"
- << QDir::currentPath() + "/testdir/two/three";
- QTest::newRow("data0") << dirs.at(0) << true;
- QTest::newRow("data1") << dirs.at(1) << false;
- QTest::newRow("data2") << dirs.at(2) << false; // note: requires data1 to have been run!
+ dirs << "testdir/one"
+ << "testdir/two/three/four"
+ << "testdir/../testdir/three";
+ QTest::newRow("plain") << QDir::currentPath() + "/" + dirs.at(0) << false;
+ QTest::newRow("recursive") << QDir::currentPath() + "/" + dirs.at(1) << true;
+ QTest::newRow("with-..") << QDir::currentPath() + "/" + dirs.at(2) << false;
+
+ QTest::newRow("relative-plain") << dirs.at(0) << false;
+ QTest::newRow("relative-recursive") << dirs.at(1) << true;
+ QTest::newRow("relative-with-..") << dirs.at(2) << false;
// Ensure that none of these directories already exist
- QDir dir;
for (int i = 0; i < dirs.count(); ++i)
- dir.rmpath(dirs.at(i));
+ QVERIFY(!QFile::exists(dirs.at(i)));
}
-void tst_QDir::mkdir()
+void tst_QDir::mkdirRmdir()
{
QFETCH(QString, path);
QFETCH(bool, recurse);
@@ -376,6 +376,15 @@ void tst_QDir::mkdir()
//make sure it really exists (ie that mkdir returns the right value)
QFileInfo fi(path);
QVERIFY2(fi.exists() && fi.isDir(), msgDoesNotExist(path).constData());
+
+ if (recurse)
+ QVERIFY(dir.rmpath(path));
+ else
+ QVERIFY(dir.rmdir(path));
+
+ //make sure it really doesn't exist (ie that rmdir returns the right value)
+ fi.refresh();
+ QVERIFY(!fi.exists());
}
void tst_QDir::makedirReturnCode()
@@ -405,32 +414,6 @@ void tst_QDir::makedirReturnCode()
f.remove();
}
-void tst_QDir::rmdir_data()
-{
- QTest::addColumn<QString>("path");
- QTest::addColumn<bool>("recurse");
-
- QTest::newRow("data0") << QDir::currentPath() + "/testdir/one/two/three" << true;
- QTest::newRow("data1") << QDir::currentPath() + "/testdir/two/three" << false;
- QTest::newRow("data2") << QDir::currentPath() + "/testdir/two" << false;
-}
-
-void tst_QDir::rmdir()
-{
- QFETCH(QString, path);
- QFETCH(bool, recurse);
-
- QDir dir;
- if (recurse)
- QVERIFY(dir.rmpath(path));
- else
- QVERIFY(dir.rmdir(path));
-
- //make sure it really doesn't exist (ie that rmdir returns the right value)
- QFileInfo fi(path);
- QVERIFY(!fi.exists());
-}
-
void tst_QDir::removeRecursively_data()
{
QTest::addColumn<QString>("path");
diff --git a/tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp b/tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp
index a13ff0358a..d2f345feb5 100644
--- a/tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp
+++ b/tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp
@@ -34,6 +34,7 @@
#include <qsysinfo.h>
#if defined(Q_OS_UNIX) && !defined(Q_OS_VXWORKS)
#include <unistd.h>
+#include <sys/time.h>
#elif defined(Q_OS_WIN) && !defined(Q_OS_WINRT)
# include <qt_windows.h>
#endif
@@ -59,6 +60,7 @@ private slots:
void noPermissions();
void noPermissionsWindows();
void corruptedLockFile();
+ void corruptedLockFileInTheFuture();
private:
static bool overwritePidInLockFile(const QString &filePath, qint64 pid);
@@ -521,6 +523,32 @@ void tst_QLockFile::corruptedLockFile()
QCOMPARE(int(secondLock.error()), int(QLockFile::NoError));
}
+void tst_QLockFile::corruptedLockFileInTheFuture()
+{
+#if !defined(Q_OS_UNIX)
+ QSKIP("This tests needs utimes");
+#else
+ // This test is the same as the previous one, but the corruption was so there is a corrupted
+ // .rmlock whose timestamp is in the future
+
+ const QString fileName = dir.path() + "/corruptedLockFile.rmlock";
+
+ {
+ QFile file(fileName);
+ QVERIFY(file.open(QFile::WriteOnly));
+ }
+
+ struct timeval times[2];
+ gettimeofday(times, 0);
+ times[1].tv_sec = (times[0].tv_sec += 600);
+ times[1].tv_usec = times[0].tv_usec;
+ utimes(fileName.toLocal8Bit(), times);
+
+ QTest::ignoreMessage(QtInfoMsg, "QLockFile: Lock file '" + fileName.toUtf8() + "' has a modification time in the future");
+ corruptedLockFile();
+#endif
+}
+
bool tst_QLockFile::overwritePidInLockFile(const QString &filePath, qint64 pid)
{
QFile f(filePath);
diff --git a/tests/auto/corelib/io/qurl/tst_qurl.cpp b/tests/auto/corelib/io/qurl/tst_qurl.cpp
index e1a999abfb..1cbb7ad19c 100644
--- a/tests/auto/corelib/io/qurl/tst_qurl.cpp
+++ b/tests/auto/corelib/io/qurl/tst_qurl.cpp
@@ -3071,7 +3071,11 @@ void tst_QUrl::fromUserInputWithCwd_data()
}
// Existing files
- for (const char *fileName : {"file.txt", "file#a.txt", "file .txt", "file.txt "}) {
+ for (const char *fileName : {"file.txt", "file#a.txt", "file .txt", "file.txt "
+#ifndef Q_OS_WIN
+ , "file:colon.txt"
+#endif
+ }) {
const QString filePath = base + '/' + fileName;
QFile file(filePath);
QVERIFY2(file.open(QIODevice::WriteOnly), qPrintable(filePath));
diff --git a/tests/auto/corelib/itemmodels/itemmodels.pro b/tests/auto/corelib/itemmodels/itemmodels.pro
index 3552f30632..a09f03a7b4 100644
--- a/tests/auto/corelib/itemmodels/itemmodels.pro
+++ b/tests/auto/corelib/itemmodels/itemmodels.pro
@@ -9,6 +9,10 @@ qtHaveModule(gui): SUBDIRS += \
qitemselectionmodel \
qsortfilterproxymodel_recursive \
-qtHaveModule(widgets): SUBDIRS += \
- qitemmodel \
- qsortfilterproxymodel \
+qtHaveModule(widgets) {
+ SUBDIRS += \
+ qsortfilterproxymodel
+
+ qtHaveModule(sql): SUBDIRS += \
+ qitemmodel
+}
diff --git a/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp b/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp
index 2346ca6d30..54582ee4c3 100644
--- a/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp
+++ b/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp
@@ -4017,7 +4017,7 @@ public:
}
bool canDropMimeData(const QMimeData *, Qt::DropAction,
- int row, int column, const QModelIndex &parent) const Q_DECL_OVERRIDE
+ int row, int column, const QModelIndex &parent) const override
{
Q_UNUSED(row);
Q_UNUSED(column);
diff --git a/tests/auto/corelib/json/tst_qtjson.cpp b/tests/auto/corelib/json/tst_qtjson.cpp
index 6aa5165e24..b215364f0e 100644
--- a/tests/auto/corelib/json/tst_qtjson.cpp
+++ b/tests/auto/corelib/json/tst_qtjson.cpp
@@ -32,6 +32,7 @@
#include "qjsonobject.h"
#include "qjsonvalue.h"
#include "qjsondocument.h"
+#include "qregularexpression.h"
#include <limits>
#define INVALID_UNICODE "\xCE\xBA\xE1"
@@ -49,6 +50,7 @@ private Q_SLOTS:
void testNumbers();
void testNumbers_2();
void testNumbers_3();
+ void testNumbers_4();
void testObjectSimple();
void testObjectSmallKeys();
@@ -375,6 +377,33 @@ void tst_QtJson::testNumbers_3()
QVERIFY(d1_1 != d2_1);
}
+void tst_QtJson::testNumbers_4()
+{
+ // no exponent notation used to print numbers between -2^64 and 2^64
+ QJsonArray array;
+ array << QJsonValue(+1000000000000000.0);
+ array << QJsonValue(-1000000000000000.0);
+ array << QJsonValue(+9007199254740992.0);
+ array << QJsonValue(-9007199254740992.0);
+ array << QJsonValue(+9223372036854775808.0);
+ array << QJsonValue(-9223372036854775808.0);
+ array << QJsonValue(+18446744073709551616.0);
+ array << QJsonValue(-18446744073709551616.0);
+ const QByteArray json(QJsonDocument(array).toJson());
+ const QByteArray expected =
+ "[\n"
+ " 1000000000000000,\n"
+ " -1000000000000000,\n"
+ " 9007199254740992,\n"
+ " -9007199254740992,\n"
+ " 9223372036854776000,\n"
+ " -9223372036854776000,\n"
+ " 18446744073709552000,\n"
+ " -18446744073709552000\n"
+ "]\n";
+ QCOMPARE(json, expected);
+}
+
void tst_QtJson::testObjectSimple()
{
QJsonObject object;
diff --git a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
index 78833d08bd..28c5c53744 100644
--- a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
+++ b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
@@ -1566,7 +1566,6 @@ DECLARE_NONSTREAMABLE(QJsonArray)
DECLARE_NONSTREAMABLE(QJsonDocument)
DECLARE_NONSTREAMABLE(QObject*)
DECLARE_NONSTREAMABLE(QWidget*)
-DECLARE_NONSTREAMABLE(std::nullptr_t)
#define DECLARE_GUI_CLASS_NONSTREAMABLE(MetaTypeName, MetaTypeId, RealType) \
DECLARE_NONSTREAMABLE(RealType)
@@ -1605,7 +1604,10 @@ void tst_QMetaType::saveAndLoadBuiltin()
if (isStreamable) {
QVERIFY(QMetaType::load(stream, type, value)); // Hmmm, shouldn't it return false?
- QCOMPARE(stream.status(), QDataStream::ReadPastEnd);
+
+ // std::nullptr_t is nullary: it doesn't actually read anything
+ if (type != QMetaType::Nullptr)
+ QCOMPARE(stream.status(), QDataStream::ReadPastEnd);
}
stream.device()->seek(0);
@@ -1615,7 +1617,10 @@ void tst_QMetaType::saveAndLoadBuiltin()
if (isStreamable) {
QVERIFY(QMetaType::load(stream, type, value)); // Hmmm, shouldn't it return false?
- QCOMPARE(stream.status(), QDataStream::ReadPastEnd);
+
+ // std::nullptr_t is nullary: it doesn't actually read anything
+ if (type != QMetaType::Nullptr)
+ QCOMPARE(stream.status(), QDataStream::ReadPastEnd);
}
QMetaType::destroy(type, value);
diff --git a/tests/auto/corelib/mimetypes/qmimedatabase/qmimedatabase.pro b/tests/auto/corelib/mimetypes/qmimedatabase/qmimedatabase.pro
index 536a6b64de..f821702564 100644
--- a/tests/auto/corelib/mimetypes/qmimedatabase/qmimedatabase.pro
+++ b/tests/auto/corelib/mimetypes/qmimedatabase/qmimedatabase.pro
@@ -1,3 +1,5 @@
TEMPLATE = subdirs
-SUBDIRS = qmimedatabase-xml
-unix:!mac:!qnx: SUBDIRS += qmimedatabase-cache
+qtHaveModule(concurrent) {
+ SUBDIRS = qmimedatabase-xml
+ unix:!darwin:!qnx: SUBDIRS += qmimedatabase-cache
+}
diff --git a/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp b/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp
index 02ba987ccd..280e3f77a4 100644
--- a/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp
+++ b/tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp
@@ -861,7 +861,7 @@ void tst_QMimeDatabase::fromThreads()
#if QT_CONFIG(process)
enum {
- UpdateMimeDatabaseTimeout = 120 * 1000 // 2min
+ UpdateMimeDatabaseTimeout = 4 * 60 * 1000 // 4min
};
static bool runUpdateMimeDatabase(const QString &path) // TODO make it a QMimeDatabase method?
diff --git a/tests/auto/corelib/thread/thread.pro b/tests/auto/corelib/thread/thread.pro
index f18dad6a4c..d3c669859b 100644
--- a/tests/auto/corelib/thread/thread.pro
+++ b/tests/auto/corelib/thread/thread.pro
@@ -6,7 +6,6 @@ SUBDIRS=\
qresultstore \
qfuture \
qfuturesynchronizer \
- qfuturewatcher \
qmutex \
qmutexlocker \
qreadlocker \
@@ -18,3 +17,8 @@ SUBDIRS=\
qthreadstorage \
qwaitcondition \
qwritelocker
+
+qtHaveModule(concurrent) {
+ SUBDIRS += \
+ qfuturewatcher
+}
diff --git a/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp b/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp
index ba2adddca0..a00c962510 100644
--- a/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp
+++ b/tests/auto/corelib/tools/qarraydata/tst_qarraydata.cpp
@@ -750,7 +750,6 @@ void tst_QArrayData::reallocate()
QFETCH(size_t, alignment);
QFETCH(QArrayData::AllocationOptions, allocateOptions);
QFETCH(bool, isCapacityReserved);
- QFETCH(const QArrayData *, commonEmpty);
// Maximum alignment that can be requested is that of QArrayData,
// otherwise, we can't use reallocate().
diff --git a/tests/auto/corelib/tools/qchar/tst_qchar.cpp b/tests/auto/corelib/tools/qchar/tst_qchar.cpp
index dede56b4bf..76309d914b 100644
--- a/tests/auto/corelib/tools/qchar/tst_qchar.cpp
+++ b/tests/auto/corelib/tools/qchar/tst_qchar.cpp
@@ -38,7 +38,7 @@ class tst_QChar : public QObject
private slots:
void fromChar16_t();
void fromWchar_t();
- void operator_eqeq_int();
+ void operator_eqeq_null();
void operators_data();
void operators();
void toUpper();
@@ -101,32 +101,54 @@ void tst_QChar::fromWchar_t()
#endif
}
-void tst_QChar::operator_eqeq_int()
+void tst_QChar::operator_eqeq_null()
{
{
const QChar ch = QLatin1Char(' ');
- QVERIFY(ch != 0);
- QVERIFY(!(ch == 0));
-
- QVERIFY(ch == 0x20);
- QVERIFY(!(ch != 0x20));
- QVERIFY(0x20 == ch);
- QVERIFY(!(0x20 != ch));
+#define CHECK(NUL) \
+ do { \
+ QVERIFY(!(ch == NUL)); \
+ QVERIFY( ch != NUL ); \
+ QVERIFY(!(ch < NUL)); \
+ QVERIFY( ch > NUL ); \
+ QVERIFY(!(ch <= NUL)); \
+ QVERIFY( ch >= NUL ); \
+ QVERIFY(!(NUL == ch )); \
+ QVERIFY( NUL != ch ); \
+ QVERIFY( NUL < ch ); \
+ QVERIFY(!(NUL > ch )); \
+ QVERIFY( NUL <= ch ); \
+ QVERIFY(!(NUL >= ch )); \
+ } while (0)
+
+ CHECK(0);
+ CHECK('\0');
+#undef CHECK
}
{
const QChar ch = QLatin1Char('\0');
- QVERIFY(ch == 0);
- QVERIFY(!(ch != 0));
-
- QVERIFY(ch != 0x20);
- QVERIFY(!(ch == 0x20));
- QVERIFY(0x20 != ch);
- QVERIFY(!(0x20 == ch));
+#define CHECK(NUL) \
+ do { \
+ QVERIFY( ch == NUL ); \
+ QVERIFY(!(ch != NUL)); \
+ QVERIFY(!(ch < NUL)); \
+ QVERIFY(!(ch > NUL)); \
+ QVERIFY( ch <= NUL ); \
+ QVERIFY( ch >= NUL ); \
+ QVERIFY( NUL == ch ); \
+ QVERIFY(!(NUL != ch )); \
+ QVERIFY(!(NUL < ch )); \
+ QVERIFY(!(NUL > ch )); \
+ QVERIFY( NUL <= ch ); \
+ QVERIFY( NUL >= ch ); \
+ } while (0)
+
+ CHECK(0);
+ CHECK('\0');
+#undef CHECK
}
}
-QT_WARNING_POP
-
void tst_QChar::operators_data()
{
QTest::addColumn<QChar>("lhs");
diff --git a/tests/auto/corelib/tools/qhash/tst_qhash.cpp b/tests/auto/corelib/tools/qhash/tst_qhash.cpp
index 0b864e71d4..0c5f1a7afb 100644
--- a/tests/auto/corelib/tools/qhash/tst_qhash.cpp
+++ b/tests/auto/corelib/tools/qhash/tst_qhash.cpp
@@ -1053,6 +1053,10 @@ void tst_QHash::keyIterator()
QCOMPARE(*(--key_it), (--it).key());
QCOMPARE(std::count(hash.keyBegin(), hash.keyEnd(), 99), 1);
+
+ // DefaultConstructible test
+ typedef QHash<int, int>::key_iterator keyIterator;
+ Q_STATIC_ASSERT(std::is_default_constructible<keyIterator>::value);
}
void tst_QHash::rehash_isnt_quadratic()
diff --git a/tests/auto/corelib/tools/qmap/tst_qmap.cpp b/tests/auto/corelib/tools/qmap/tst_qmap.cpp
index 8aa7a3e518..f42ffc0471 100644
--- a/tests/auto/corelib/tools/qmap/tst_qmap.cpp
+++ b/tests/auto/corelib/tools/qmap/tst_qmap.cpp
@@ -857,6 +857,10 @@ void tst_QMap::keyIterator()
QCOMPARE(*(--key_it), (--it).key());
QCOMPARE(std::count(map.keyBegin(), map.keyEnd(), 99), 1);
+
+ // DefaultConstructible test
+ typedef QMap<int, int>::key_iterator keyIterator;
+ Q_STATIC_ASSERT(std::is_default_constructible<keyIterator>::value);
}
void tst_QMap::keys_values_uniqueKeys()
diff --git a/tests/auto/corelib/xml/xml.pro b/tests/auto/corelib/xml/xml.pro
index 20519edf1b..374e695aa7 100644
--- a/tests/auto/corelib/xml/xml.pro
+++ b/tests/auto/corelib/xml/xml.pro
@@ -1,3 +1,3 @@
TEMPLATE=subdirs
-qtHaveModule(network): SUBDIRS= \
+qtHaveModule(network):qtHaveModule(xml): SUBDIRS= \
qxmlstream