diff options
Diffstat (limited to 'tests/auto/corelib')
29 files changed, 217 insertions, 101 deletions
diff --git a/tests/auto/corelib/codecs/qtextcodec/tst_qtextcodec.cpp b/tests/auto/corelib/codecs/qtextcodec/tst_qtextcodec.cpp index c3b53a2fc0..f8f9387abb 100644 --- a/tests/auto/corelib/codecs/qtextcodec/tst_qtextcodec.cpp +++ b/tests/auto/corelib/codecs/qtextcodec/tst_qtextcodec.cpp @@ -2406,16 +2406,16 @@ void tst_QTextCodec::shiftJis() struct UserCodec : public QTextCodec { // implement pure virtuals - QByteArray name() const Q_DECL_OVERRIDE + QByteArray name() const override { return "UserCodec"; } - QList<QByteArray> aliases() const Q_DECL_OVERRIDE + QList<QByteArray> aliases() const override { return QList<QByteArray>() << "usercodec" << "user-codec"; } - int mibEnum() const Q_DECL_OVERRIDE + int mibEnum() const override { return 5000; } - virtual QString convertToUnicode(const char *, int, ConverterState *) const Q_DECL_OVERRIDE + virtual QString convertToUnicode(const char *, int, ConverterState *) const override { return QString(); } - virtual QByteArray convertFromUnicode(const QChar *, int, ConverterState *) const Q_DECL_OVERRIDE + virtual QByteArray convertFromUnicode(const QChar *, int, ConverterState *) const override { return QByteArray(); } }; diff --git a/tests/auto/corelib/io/qfile/tst_qfile.cpp b/tests/auto/corelib/io/qfile/tst_qfile.cpp index c173a87a41..06c3a9578f 100644 --- a/tests/auto/corelib/io/qfile/tst_qfile.cpp +++ b/tests/auto/corelib/io/qfile/tst_qfile.cpp @@ -68,8 +68,6 @@ QT_END_NAMESPACE #elif defined(Q_OS_FREEBSD) # include <sys/param.h> # include <sys/mount.h> -#elif defined(Q_OS_IRIX) -# include <sys/statfs.h> #elif defined(Q_OS_VXWORKS) # include <fcntl.h> #if defined(_WRS_KERNEL) @@ -1957,10 +1955,6 @@ void tst_QFile::largeFileSupport() if (::GetDiskFreeSpaceEx((wchar_t*)QDir::currentPath().utf16(), &free, 0, 0)) freespace = free.QuadPart; if (freespace != 0) { -#elif defined(Q_OS_IRIX) - struct statfs info; - if (statfs(QDir::currentPath().local8Bit(), &info, sizeof(struct statfs), 0) == 0) { - freespace = qlonglong(info.f_bfree * info.f_bsize); #else struct statfs info; if (statfs(const_cast<char *>(QDir::currentPath().toLocal8Bit().constData()), &info) == 0) { diff --git a/tests/auto/corelib/io/qiodevice/tst_qiodevice.cpp b/tests/auto/corelib/io/qiodevice/tst_qiodevice.cpp index a0188f8ba9..a485788ec2 100644 --- a/tests/auto/corelib/io/qiodevice/tst_qiodevice.cpp +++ b/tests/auto/corelib/io/qiodevice/tst_qiodevice.cpp @@ -551,18 +551,18 @@ public: : QIODevice(), buf(byteArray), offset(0), ownbuf(false) { } virtual ~SequentialReadBuffer() { if (ownbuf) delete buf; } - bool isSequential() const Q_DECL_OVERRIDE { return true; } + bool isSequential() const override { return true; } const QByteArray &buffer() const { return *buf; } protected: - qint64 readData(char *data, qint64 maxSize) Q_DECL_OVERRIDE + qint64 readData(char *data, qint64 maxSize) override { maxSize = qMin(maxSize, qint64(buf->size() - offset)); memcpy(data, buf->constData() + offset, maxSize); offset += maxSize; return maxSize; } - qint64 writeData(const char * /* data */, qint64 /* maxSize */) Q_DECL_OVERRIDE + qint64 writeData(const char * /* data */, qint64 /* maxSize */) override { return -1; } @@ -598,13 +598,13 @@ public: RandomAccessBuffer(const char *data) : QIODevice(), buf(data) { } protected: - qint64 readData(char *data, qint64 maxSize) Q_DECL_OVERRIDE + qint64 readData(char *data, qint64 maxSize) override { maxSize = qMin(maxSize, qint64(buf.size() - pos())); memcpy(data, buf.constData() + pos(), maxSize); return maxSize; } - qint64 writeData(const char *data, qint64 maxSize) Q_DECL_OVERRIDE + qint64 writeData(const char *data, qint64 maxSize) override { maxSize = qMin(maxSize, qint64(buf.size() - pos())); memcpy(buf.data() + pos(), data, maxSize); diff --git a/tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp b/tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp index 835c4a2778..fc7ab70d41 100644 --- a/tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp +++ b/tests/auto/corelib/io/qlockfile/tst_qlockfile.cpp @@ -39,6 +39,8 @@ # include <qt_windows.h> #endif +#include <private/qlockfile_p.h> // for getLockFileHandle() + class tst_QLockFile : public QObject { Q_OBJECT @@ -61,8 +63,12 @@ private slots: void noPermissionsWindows(); void corruptedLockFile(); void corruptedLockFileInTheFuture(); + void hostnameChange(); + void differentMachines(); + void reboot(); private: + static bool overwriteLineInLockFile(QFile &f, int line, const QString &newLine); static bool overwritePidInLockFile(const QString &filePath, qint64 pid); public: @@ -295,7 +301,7 @@ void tst_QLockFile::staleLockFromCrashedProcessReusedPid() QLockFile secondLock(fileName); qint64 pid = 0; - secondLock.getLockInfo(&pid, 0, 0); + QVERIFY(secondLock.getLockInfo(&pid, 0, 0)); QCOMPARE(pid, QCoreApplication::applicationPid()); secondLock.setStaleLockTime(0); QVERIFY(secondLock.tryLock()); @@ -549,22 +555,109 @@ void tst_QLockFile::corruptedLockFileInTheFuture() #endif } +void tst_QLockFile::hostnameChange() +{ + const QByteArray hostid = QSysInfo::machineUniqueId(); + if (hostid.isEmpty()) + QSKIP("Could not get a unique host ID on this machine"); + + QString lockFile = dir.path() + "/hostnameChangeLock"; + QLockFile lock1(lockFile); + QVERIFY(lock1.lock()); + + { + // now modify it + QFile f; + QVERIFY(f.open(QLockFilePrivate::getLockFileHandle(&lock1), + QIODevice::ReadWrite | QIODevice::Text, + QFile::DontCloseHandle)); + QVERIFY(overwriteLineInLockFile(f, 3, "this is not a hostname")); + } + + { + // we should fail to lock + QLockFile lock2(lockFile); + QVERIFY(!lock2.tryLock(1000)); + } +} + +void tst_QLockFile::differentMachines() +{ + const QByteArray hostid = QSysInfo::machineUniqueId(); + if (hostid.isEmpty()) + QSKIP("Could not get a unique host ID on this machine"); + + QString lockFile = dir.path() + "/differentMachinesLock"; + QLockFile lock1(lockFile); + QVERIFY(lock1.lock()); + + { + // now modify it + QFile f; + QVERIFY(f.open(QLockFilePrivate::getLockFileHandle(&lock1), + QIODevice::ReadWrite | QIODevice::Text, + QFile::DontCloseHandle)); + QVERIFY(overwriteLineInLockFile(f, 1, QT_STRINGIFY(INT_MAX))); + QVERIFY(overwriteLineInLockFile(f, 4, "this is not a UUID")); + } + + { + // we should fail to lock + QLockFile lock2(lockFile); + QVERIFY(!lock2.tryLock(1000)); + } +} + +void tst_QLockFile::reboot() +{ + const QByteArray bootid = QSysInfo::bootUniqueId(); + if (bootid.isEmpty()) + QSKIP("Could not get a unique boot ID on this machine"); + + // create a lock so we can get its contents + QString lockFile = dir.path() + "/rebootLock"; + QLockFile lock1(lockFile); + QVERIFY(lock1.lock()); + + QFile f(lockFile); + QVERIFY(f.open(QFile::ReadOnly | QFile::Text)); + auto lines = f.readAll().split('\n'); + f.close(); + + lock1.unlock(); + + // now recreate the file simulating a reboot + QVERIFY(f.open(QFile::WriteOnly | QFile::Text)); + lines[4] = "this is not a UUID"; + f.write(lines.join('\n')); + f.close(); + + // we should succeed in locking + QVERIFY(lock1.tryLock(0)); +} + bool tst_QLockFile::overwritePidInLockFile(const QString &filePath, qint64 pid) { QFile f(filePath); - if (!f.open(QFile::ReadWrite)) { - qWarning("Cannot open %s.", qPrintable(filePath)); + if (!f.open(QFile::ReadWrite | QFile::Text)) { + qErrnoWarning("Cannot open %s", qPrintable(filePath)); return false; } + return overwriteLineInLockFile(f, 1, QString::number(pid)); +} + +bool tst_QLockFile::overwriteLineInLockFile(QFile &f, int line, const QString &newLine) +{ + f.seek(0); QByteArray buf = f.readAll(); - int i = buf.indexOf('\n'); - if (i < 0) { + QStringList lines = QString::fromUtf8(buf).split('\n'); + if (lines.size() < 3 && lines.size() < line - 1) { qWarning("Unexpected lockfile content."); return false; } - buf.remove(0, i); - buf.prepend(QByteArray::number(pid)); + lines[line - 1] = newLine; f.seek(0); + buf = lines.join('\n').toUtf8(); f.resize(buf.size()); return f.write(buf) == buf.size(); } diff --git a/tests/auto/corelib/io/qlockfile/tst_qlockfile.pro b/tests/auto/corelib/io/qlockfile/tst_qlockfile.pro index 7a304fe779..da2660fd02 100644 --- a/tests/auto/corelib/io/qlockfile/tst_qlockfile.pro +++ b/tests/auto/corelib/io/qlockfile/tst_qlockfile.pro @@ -2,5 +2,5 @@ CONFIG += testcase TARGET = tst_qlockfile SOURCES += tst_qlockfile.cpp -QT = core testlib concurrent +QT = core-private testlib concurrent win32:!winrt:LIBS += -ladvapi32 diff --git a/tests/auto/corelib/io/qprocess/tst_qprocess.cpp b/tests/auto/corelib/io/qprocess/tst_qprocess.cpp index de6eb28503..6b4d292fe3 100644 --- a/tests/auto/corelib/io/qprocess/tst_qprocess.cpp +++ b/tests/auto/corelib/io/qprocess/tst_qprocess.cpp @@ -285,7 +285,7 @@ void tst_QProcess::startWithOldOpen() class OverriddenOpen : public QProcess { public: - virtual bool open(OpenMode mode) Q_DECL_OVERRIDE + virtual bool open(OpenMode mode) override { return QIODevice::open(mode); } }; @@ -708,7 +708,7 @@ void tst_QProcess::restartProcessDeadlock() QCOMPARE(process.write("", 1), qlonglong(1)); QVERIFY(process.waitForFinished(5000)); - QObject::disconnect(&process, static_cast<QProcessFinishedSignal1>(&QProcess::finished), Q_NULLPTR, Q_NULLPTR); + QObject::disconnect(&process, static_cast<QProcessFinishedSignal1>(&QProcess::finished), nullptr, nullptr); QCOMPARE(process.write("", 1), qlonglong(1)); QVERIFY(process.waitForFinished(5000)); @@ -847,7 +847,7 @@ void tst_QProcess::emitReadyReadOnlyWhenNewDataArrives() QVERIFY(QTestEventLoop::instance().timeout()); QVERIFY(!proc.waitForReadyRead(250)); - QObject::disconnect(&proc, &QIODevice::readyRead, Q_NULLPTR, Q_NULLPTR); + QObject::disconnect(&proc, &QIODevice::readyRead, nullptr, nullptr); proc.write("B"); QVERIFY(proc.waitForReadyRead(5000)); diff --git a/tests/auto/corelib/io/qsettings/tst_qsettings.cpp b/tests/auto/corelib/io/qsettings/tst_qsettings.cpp index 012ce5f2f5..db756ada39 100644 --- a/tests/auto/corelib/io/qsettings/tst_qsettings.cpp +++ b/tests/auto/corelib/io/qsettings/tst_qsettings.cpp @@ -207,7 +207,7 @@ void tst_QSettings::getSetCheck() QCOMPARE(true, obj1.fallbacksEnabled()); } -static QString settingsPath(const char *path = Q_NULLPTR) +static QString settingsPath(const char *path = nullptr) { // Temporary path for files that are specified explicitly in the constructor. #ifndef Q_OS_WINRT diff --git a/tests/auto/corelib/io/qtextstream/tst_qtextstream.cpp b/tests/auto/corelib/io/qtextstream/tst_qtextstream.cpp index 0e423a56ca..df8746e518 100644 --- a/tests/auto/corelib/io/qtextstream/tst_qtextstream.cpp +++ b/tests/auto/corelib/io/qtextstream/tst_qtextstream.cpp @@ -609,14 +609,14 @@ void tst_QTextStream::readLinesFromBufferCRCR() class ErrorDevice : public QIODevice { protected: - qint64 readData(char *data, qint64 maxlen) Q_DECL_OVERRIDE + qint64 readData(char *data, qint64 maxlen) override { Q_UNUSED(data) Q_UNUSED(maxlen) return -1; } - qint64 writeData(const char *data, qint64 len) Q_DECL_OVERRIDE + qint64 writeData(const char *data, qint64 len) override { Q_UNUSED(data) Q_UNUSED(len) @@ -634,7 +634,7 @@ void tst_QTextStream::readLineInto() ts.readLineInto(&line); QCOMPARE(line, QStringLiteral("1")); - ts.readLineInto(Q_NULLPTR, 0); // read the second line, but don't store it + ts.readLineInto(nullptr, 0); // read the second line, but don't store it ts.readLineInto(&line); QCOMPARE(line, QStringLiteral("3")); diff --git a/tests/auto/corelib/itemmodels/qidentityproxymodel/tst_qidentityproxymodel.cpp b/tests/auto/corelib/itemmodels/qidentityproxymodel/tst_qidentityproxymodel.cpp index 564b8547b1..f8c5c92677 100644 --- a/tests/auto/corelib/itemmodels/qidentityproxymodel/tst_qidentityproxymodel.cpp +++ b/tests/auto/corelib/itemmodels/qidentityproxymodel/tst_qidentityproxymodel.cpp @@ -360,7 +360,7 @@ class AppendStringProxy : public QIdentityProxyModel public: QVariant data(const QModelIndex &index, int role) const { - const QVariant result = sourceModel()->data(index, role); + const QVariant result = QIdentityProxyModel::data(index, role); if (role != Qt::DisplayRole) return result; return result.toString() + "_appended"; diff --git a/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp b/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp index 1fb51490db..8333809c40 100644 --- a/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp +++ b/tests/auto/corelib/itemmodels/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp @@ -1873,9 +1873,6 @@ void tst_QSortFilterProxyModel::changeFilter() QCOMPARE(args.at(2).toInt(), finalRemoveIntervals.at(i).second); } -#ifdef Q_OS_IRIX - QEXPECT_FAIL("filter (2)", "Not reliable on IRIX", Abort); -#endif QCOMPARE(finalInsertSpy.count(), insertIntervals.count()); for (int i = 0; i < finalInsertSpy.count(); ++i) { QList<QVariant> args = finalInsertSpy.at(i); @@ -4072,11 +4069,11 @@ 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 { return row == 1; } bool dropMimeData(const QMimeData *, Qt::DropAction, - int row, int /* column */, const QModelIndex & /* parent */) Q_DECL_OVERRIDE + int row, int /* column */, const QModelIndex & /* parent */) override { return row == 1; } }; diff --git a/tests/auto/corelib/kernel/qcoreapplication/tst_qcoreapplication.cpp b/tests/auto/corelib/kernel/qcoreapplication/tst_qcoreapplication.cpp index 22f0d8ecaa..5e9dbdd226 100644 --- a/tests/auto/corelib/kernel/qcoreapplication/tst_qcoreapplication.cpp +++ b/tests/auto/corelib/kernel/qcoreapplication/tst_qcoreapplication.cpp @@ -56,7 +56,7 @@ class ThreadedEventReceiver : public QObject Q_OBJECT public: QList<int> recordedEvents; - bool event(QEvent *event) Q_DECL_OVERRIDE + bool event(QEvent *event) override { if (event->type() != QEvent::Type(QEvent::User + 1)) return QObject::event(event); @@ -70,7 +70,7 @@ public: class Thread : public QDaemonThread { - void run() Q_DECL_OVERRIDE + void run() override { QThreadData *data = QThreadData::current(); QVERIFY(!data->requiresCoreApplication); // daemon thread diff --git a/tests/auto/corelib/kernel/qmetamethod/tst_qmetamethod.cpp b/tests/auto/corelib/kernel/qmetamethod/tst_qmetamethod.cpp index 87196eaef1..4584b6ce31 100644 --- a/tests/auto/corelib/kernel/qmetamethod/tst_qmetamethod.cpp +++ b/tests/auto/corelib/kernel/qmetamethod/tst_qmetamethod.cpp @@ -763,7 +763,7 @@ void tst_QMetaMethod::gadget() { // Call with null should not crash - MyGadget *gadget = Q_NULLPTR; + MyGadget *gadget = nullptr; QString string; QVERIFY(!setValueMethod.invokeOnGadget(gadget, Q_ARG(QString, QLatin1String("hi")))); QVERIFY(!getValueMethod.invokeOnGadget(gadget, Q_RETURN_ARG(QString, string))); diff --git a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp index 5ecdd92228..f6feac29dc 100644 --- a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp +++ b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp @@ -6015,7 +6015,7 @@ public: struct SlotArgFunctor { - SlotArgFunctor(int *s) : status(s), context(Q_NULLPTR), sender(Q_NULLPTR) {} + SlotArgFunctor(int *s) : status(s), context(nullptr), sender(nullptr) {} SlotArgFunctor(ContextObject *context, QObject *sender, int *s) : status(s), context(context), sender(sender) {} void operator()() { *status = 2; if (context) context->compareSender(sender); } @@ -6453,7 +6453,7 @@ Q_SIGNALS: static int countedStructObjectsCount = 0; struct CountedStruct { - CountedStruct() : sender(Q_NULLPTR) { ++countedStructObjectsCount; } + CountedStruct() : sender(nullptr) { ++countedStructObjectsCount; } CountedStruct(GetSenderObject *sender) : sender(sender) { ++countedStructObjectsCount; } CountedStruct(const CountedStruct &o) : sender(o.sender) { ++countedStructObjectsCount; } CountedStruct &operator=(const CountedStruct &) { return *this; } @@ -6769,7 +6769,7 @@ class CountedExceptionThrower : public QObject Q_OBJECT public: - explicit CountedExceptionThrower(bool throwException, QObject *parent = Q_NULLPTR) + explicit CountedExceptionThrower(bool throwException, QObject *parent = nullptr) : QObject(parent) { if (throwException) @@ -6855,7 +6855,7 @@ void tst_QObject::exceptions() try { class ParentObject : public QObject { public: - explicit ParentObject(QObject *parent = Q_NULLPTR) + explicit ParentObject(QObject *parent = nullptr) : QObject(parent) { new CountedExceptionThrower(false, this); diff --git a/tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp b/tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp index b921c0f13d..2c6d9ea7c0 100644 --- a/tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp +++ b/tests/auto/corelib/kernel/qtimer/tst_qtimer.cpp @@ -754,7 +754,7 @@ void tst_QTimer::recurseOnTimeoutAndStopTimer() struct CountedStruct { - CountedStruct(int *count, QThread *t = Q_NULLPTR) : count(count), thread(t) { } + CountedStruct(int *count, QThread *t = nullptr) : count(count), thread(t) { } ~CountedStruct() { } void operator()() const { ++(*count); if (thread) QCOMPARE(QThread::currentThread(), thread); } @@ -763,7 +763,7 @@ struct CountedStruct }; static QScopedPointer<QEventLoop> _e; -static QThread *_t = Q_NULLPTR; +static QThread *_t = nullptr; class StaticEventLoop { @@ -827,7 +827,7 @@ void tst_QTimer::singleShotToFunctors() _t->quit(); _t->wait(); _t->deleteLater(); - _t = Q_NULLPTR; + _t = nullptr; { QObject c3; @@ -865,7 +865,7 @@ void tst_QTimer::singleShotToFunctors() QCOMPARE(count, 5); _e.reset(); - _t = Q_NULLPTR; + _t = nullptr; } void tst_QTimer::singleShot_chrono() diff --git a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp index 0d45159d09..5d19cb8428 100644 --- a/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp +++ b/tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp @@ -4927,7 +4927,7 @@ void tst_QVariant::accessSequentialContainerKey() { QMap<QString, QObject*> mapping; QString name = QString::fromLatin1("Seven"); - mapping.insert(name, Q_NULLPTR); + mapping.insert(name, nullptr); QVariant variant = QVariant::fromValue(mapping); diff --git a/tests/auto/corelib/statemachine/qstatemachine/tst_qstatemachine.cpp b/tests/auto/corelib/statemachine/qstatemachine/tst_qstatemachine.cpp index 8f0d83ce32..c30efe4e3b 100644 --- a/tests/auto/corelib/statemachine/qstatemachine/tst_qstatemachine.cpp +++ b/tests/auto/corelib/statemachine/qstatemachine/tst_qstatemachine.cpp @@ -6634,7 +6634,7 @@ void tst_QStateMachine::postEventFromBeginSelectTransitions() { class StateMachine : public QStateMachine { protected: - void beginSelectTransitions(QEvent* e) Q_DECL_OVERRIDE { + void beginSelectTransitions(QEvent* e) override { if (e->type() == QEvent::Type(QEvent::User + 2)) postEvent(new QEvent(QEvent::Type(QEvent::User + 1)), QStateMachine::HighPriority); } diff --git a/tests/auto/corelib/thread/qfuture/tst_qfuture.cpp b/tests/auto/corelib/thread/qfuture/tst_qfuture.cpp index 58bebe19ac..d4a3ee6054 100644 --- a/tests/auto/corelib/thread/qfuture/tst_qfuture.cpp +++ b/tests/auto/corelib/thread/qfuture/tst_qfuture.cpp @@ -1304,8 +1304,8 @@ QFuture<int> createExceptionResultFuture() class DerivedException : public QException { public: - void raise() const Q_DECL_OVERRIDE { throw *this; } - DerivedException *clone() const Q_DECL_OVERRIDE { return new DerivedException(*this); } + void raise() const override { throw *this; } + DerivedException *clone() const override { return new DerivedException(*this); } }; QFuture<void> createDerivedExceptionFuture() @@ -1455,7 +1455,7 @@ void tst_QFuture::nonGlobalThreadPool() return f; } - void run() Q_DECL_OVERRIDE + void run() override { const int ms = 100 + (QRandomGenerator::global()->bounded(100) - 100/2); QThread::msleep(ms); diff --git a/tests/auto/corelib/thread/qwaitcondition/tst_qwaitcondition.cpp b/tests/auto/corelib/thread/qwaitcondition/tst_qwaitcondition.cpp index 4ef3bab87f..126cb6b180 100644 --- a/tests/auto/corelib/thread/qwaitcondition/tst_qwaitcondition.cpp +++ b/tests/auto/corelib/thread/qwaitcondition/tst_qwaitcondition.cpp @@ -379,7 +379,7 @@ class WakeThreadBase : public TerminatingThread public: QAtomicInt *count; - WakeThreadBase() : count(Q_NULLPTR) {} + WakeThreadBase() : count(nullptr) {} }; class wake_Thread : public WakeThreadBase diff --git a/tests/auto/corelib/tools/qbytearray/tst_qbytearray.cpp b/tests/auto/corelib/tools/qbytearray/tst_qbytearray.cpp index 93c10d78db..338adaabf7 100644 --- a/tests/auto/corelib/tools/qbytearray/tst_qbytearray.cpp +++ b/tests/auto/corelib/tools/qbytearray/tst_qbytearray.cpp @@ -756,13 +756,7 @@ void tst_QByteArray::qvsnprintf() QCOMPARE(static_cast<const char *>(buf), "bub****************"); # endif #else -#ifdef Q_OS_IRIX - // Irix reports back the amount of characters written without the \0 - QCOMPARE(::qsnprintf(buf, 3, "%s", "bubu"), 2); -#else - // Every other system in this world reports the amount of data that could have been written QCOMPARE(::qsnprintf(buf, 3, "%s", "bubu"), 4); -#endif QCOMPARE(static_cast<const char*>(buf), "bu"); #endif QCOMPARE(buf[4], char(42)); diff --git a/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp b/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp index c0ed88e154..7e1e2f1345 100644 --- a/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp +++ b/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp @@ -1263,9 +1263,6 @@ void tst_QDateTime::addSecs() QFETCH(QDateTime, dt); QFETCH(int, nsecs); QFETCH(QDateTime, result); -#ifdef Q_OS_IRIX - QEXPECT_FAIL("cet4", "IRIX databases say 1970 had DST", Abort); -#endif QDateTime test = dt.addSecs(nsecs); QCOMPARE(test, result); QCOMPARE(test.timeSpec(), dt.timeSpec()); @@ -1285,9 +1282,6 @@ void tst_QDateTime::addMSecs() QFETCH(int, nsecs); QFETCH(QDateTime, result); -#ifdef Q_OS_IRIX - QEXPECT_FAIL("cet4", "IRIX databases say 1970 had DST", Abort); -#endif QDateTime test = dt.addMSecs(qint64(nsecs) * 1000); QCOMPARE(test, result); QCOMPARE(test.timeSpec(), dt.timeSpec()); @@ -1373,9 +1367,6 @@ void tst_QDateTime::toTimeSpec() QCOMPARE(localToLocal.time(), fromLocal.time()); QCOMPARE(localToLocal.timeSpec(), Qt::LocalTime); -#ifdef Q_OS_IRIX - QEXPECT_FAIL("summer2", "IRIX databases say 1970 had DST", Abort); -#endif QCOMPARE(utcToLocal, fromLocal); QCOMPARE(utcToLocal.date(), fromLocal.date()); QCOMPARE(utcToLocal.time(), fromLocal.time()); @@ -1427,9 +1418,6 @@ void tst_QDateTime::toLocalTime() QFETCH(QDateTime, fromLocal); QCOMPARE(fromLocal.toLocalTime(), fromLocal); -#ifdef Q_OS_IRIX - QEXPECT_FAIL("summer2", "IRIX databases say 1970 had DST", Abort); -#endif QCOMPARE(fromUtc.toLocalTime(), fromLocal); QCOMPARE(fromUtc.toLocalTime(), fromLocal.toLocalTime()); } else { @@ -1449,9 +1437,6 @@ void tst_QDateTime::toUTC() QFETCH(QDateTime, fromLocal); QCOMPARE(fromUtc.toUTC(), fromUtc); -#ifdef Q_OS_IRIX - QEXPECT_FAIL("summer2", "IRIX databases say 1970 had DST", Abort); -#endif QCOMPARE(fromLocal.toUTC(), fromUtc); QCOMPARE(fromUtc.toUTC(), fromLocal.toUTC()); } else { @@ -1512,9 +1497,6 @@ void tst_QDateTime::secsTo() QFETCH(QDateTime, result); if (dt.isValid()) { - #ifdef Q_OS_IRIX - QEXPECT_FAIL("cet4", "IRIX databases say 1970 had DST", Abort); - #endif QCOMPARE(dt.secsTo(result), (qint64)nsecs); QCOMPARE(result.secsTo(dt), (qint64)-nsecs); QVERIFY((dt == result) == (0 == nsecs)); @@ -1541,9 +1523,6 @@ void tst_QDateTime::msecsTo() QFETCH(QDateTime, result); if (dt.isValid()) { - #ifdef Q_OS_IRIX - QEXPECT_FAIL("cet4", "IRIX databases say 1970 had DST", Abort); - #endif QCOMPARE(dt.msecsTo(result), qint64(nsecs) * 1000); QCOMPARE(result.msecsTo(dt), -qint64(nsecs) * 1000); QVERIFY((dt == result) == (0 == (qint64(nsecs) * 1000))); diff --git a/tests/auto/corelib/tools/qlatin1string/tst_qlatin1string.cpp b/tests/auto/corelib/tools/qlatin1string/tst_qlatin1string.cpp index c8373b6ae9..dcfb0aa042 100644 --- a/tests/auto/corelib/tools/qlatin1string/tst_qlatin1string.cpp +++ b/tests/auto/corelib/tools/qlatin1string/tst_qlatin1string.cpp @@ -86,7 +86,7 @@ void tst_QLatin1String::nullString() // default ctor { QLatin1String l1; - QCOMPARE(static_cast<const void*>(l1.data()), static_cast<const void*>(Q_NULLPTR)); + QCOMPARE(static_cast<const void*>(l1.data()), static_cast<const void*>(nullptr)); QCOMPARE(l1.size(), 0); QString s = l1; @@ -95,9 +95,9 @@ void tst_QLatin1String::nullString() // from nullptr { - const char *null = Q_NULLPTR; + const char *null = nullptr; QLatin1String l1(null); - QCOMPARE(static_cast<const void*>(l1.data()), static_cast<const void*>(Q_NULLPTR)); + QCOMPARE(static_cast<const void*>(l1.data()), static_cast<const void*>(nullptr)); QCOMPARE(l1.size(), 0); QString s = l1; @@ -111,7 +111,7 @@ void tst_QLatin1String::nullString() QLatin1String l1(null); QEXPECT_FAIL("", "null QByteArrays become non-null QLatin1Strings...", Continue); - QCOMPARE(static_cast<const void*>(l1.data()), static_cast<const void*>(Q_NULLPTR)); + QCOMPARE(static_cast<const void*>(l1.data()), static_cast<const void*>(nullptr)); QCOMPARE(l1.size(), 0); QString s = l1; diff --git a/tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp b/tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp index 145ba7ff72..deee7171b1 100644 --- a/tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp +++ b/tests/auto/corelib/tools/qringbuffer/tst_qringbuffer.cpp @@ -68,7 +68,7 @@ void tst_QRingBuffer::constructing() QCOMPARE(ringBuffer.size(), Q_INT64_C(0)); QVERIFY(ringBuffer.isEmpty()); QCOMPARE(ringBuffer.nextDataBlockSize(), Q_INT64_C(0)); - QVERIFY(ringBuffer.readPointer() == Q_NULLPTR); + QVERIFY(ringBuffer.readPointer() == nullptr); QCOMPARE(ringBuffer.skip(5), Q_INT64_C(0)); QCOMPARE(ringBuffer.read(), QByteArray()); QCOMPARE(ringBuffer.getChar(), -1); diff --git a/tests/auto/corelib/tools/qscopedpointer/tst_qscopedpointer.cpp b/tests/auto/corelib/tools/qscopedpointer/tst_qscopedpointer.cpp index a4b06d1b3b..b943b04e23 100644 --- a/tests/auto/corelib/tools/qscopedpointer/tst_qscopedpointer.cpp +++ b/tests/auto/corelib/tools/qscopedpointer/tst_qscopedpointer.cpp @@ -68,6 +68,7 @@ void tst_QScopedPointer::defaultConstructor() /* Check that the members, one, is correctly initialized. */ QScopedPointer<int> p; QCOMPARE(p.data(), static_cast<int *>(0)); + QCOMPARE(p.get(), static_cast<int *>(0)); } void tst_QScopedPointer::dataOnDefaultConstructed() @@ -75,6 +76,7 @@ void tst_QScopedPointer::dataOnDefaultConstructed() QScopedPointer<int> p; QCOMPARE(p.data(), static_cast<int *>(0)); + QCOMPARE(p.get(), static_cast<int *>(0)); } class MyClass @@ -113,6 +115,7 @@ void tst_QScopedPointer::reset() QScopedPointer<int> p; p.reset(); QCOMPARE(p.data(), static_cast<int *>(0)); + QCOMPARE(p.get(), static_cast<int *>(0)); } /* Call reset() on an active value. */ @@ -120,6 +123,7 @@ void tst_QScopedPointer::reset() QScopedPointer<int> p(new int(3)); p.reset(); QCOMPARE(p.data(), static_cast<int *>(0)); + QCOMPARE(p.get(), static_cast<int *>(0)); } /* Call reset() with a value, on an active value. */ @@ -129,6 +133,7 @@ void tst_QScopedPointer::reset() int *const value = new int(9); p.reset(value); QCOMPARE(*p.data(), 9); + QCOMPARE(*p.get(), 9); } /* Call reset() with a value, on default constructed value. */ @@ -138,6 +143,7 @@ void tst_QScopedPointer::reset() int *const value = new int(9); p.reset(value); QCOMPARE(*p.data(), 9); + QCOMPARE(*p.get(), 9); } } diff --git a/tests/auto/corelib/tools/qsharedpointer/tst_qsharedpointer.cpp b/tests/auto/corelib/tools/qsharedpointer/tst_qsharedpointer.cpp index e1dcdb8407..203d9d8683 100644 --- a/tests/auto/corelib/tools/qsharedpointer/tst_qsharedpointer.cpp +++ b/tests/auto/corelib/tools/qsharedpointer/tst_qsharedpointer.cpp @@ -272,6 +272,7 @@ void tst_QSharedPointer::basics() QCOMPARE(!ptr, isNull); QCOMPARE(ptr.data(), aData); + QCOMPARE(ptr.get(), aData); QCOMPARE(ptr.operator->(), aData); if (!isNull) { Data &dataReference = *ptr; @@ -316,6 +317,7 @@ void tst_QSharedPointer::basics() QCOMPARE(copy.isNull(), isNull); QCOMPARE(copy.data(), aData); + QCOMPARE(copy.get(), aData); QVERIFY(copy == aData); } QVERIFY(!refCountData(ptr) || refCountData(ptr)->weakref.load() == 1); @@ -349,6 +351,7 @@ void tst_QSharedPointer::basics() QVERIFY(strong == weak); QVERIFY(strong == ptr); QCOMPARE(strong.data(), aData); + QCOMPARE(strong.get(), aData); } QVERIFY(!refCountData(ptr) || refCountData(ptr)->weakref.load() == 1); QVERIFY(!refCountData(ptr) || refCountData(ptr)->strongref.load() == 1); @@ -362,11 +365,14 @@ void tst_QSharedPointer::operators() QSharedPointer<char> p2(new char); qptrdiff diff = p2.data() - p1.data(); QVERIFY(p1.data() != p2.data()); + QVERIFY(p1.get() != p2.get()); QVERIFY(diff != 0); // operator- QCOMPARE(p2 - p1.data(), diff); + QCOMPARE(p2 - p1.get(), diff); QCOMPARE(p2.data() - p1, diff); + QCOMPARE(p2.get() - p1, diff); QCOMPARE(p2 - p1, diff); QCOMPARE(p1 - p2, -diff); QCOMPARE(p1 - p1, qptrdiff(0)); @@ -374,7 +380,9 @@ void tst_QSharedPointer::operators() // operator< QVERIFY(p1 < p2.data()); + QVERIFY(p1 < p2.get()); QVERIFY(p1.data() < p2); + QVERIFY(p1.get() < p2); QVERIFY(p1 < p2); QVERIFY(!(p2 < p1)); QVERIFY(!(p2 < p2)); @@ -382,7 +390,9 @@ void tst_QSharedPointer::operators() // qHash QCOMPARE(qHash(p1), qHash(p1.data())); + QCOMPARE(qHash(p1), qHash(p1.get())); QCOMPARE(qHash(p2), qHash(p2.data())); + QCOMPARE(qHash(p2), qHash(p2.get())); } void tst_QSharedPointer::nullptrOps() @@ -396,11 +406,13 @@ void tst_QSharedPointer::nullptrOps() QVERIFY(nullptr == p1); QVERIFY(!p1); QVERIFY(!p1.data()); + QVERIFY(!p1.get()); QVERIFY(p2 == null); QVERIFY(p2 == nullptr); QVERIFY(nullptr == p2); QVERIFY(!p2); QVERIFY(!p2.data()); + QVERIFY(!p2.get()); QVERIFY(p1 == p2); QSharedPointer<char> p3 = p1; @@ -409,6 +421,7 @@ void tst_QSharedPointer::nullptrOps() QVERIFY(p3 == nullptr); QVERIFY(nullptr == p3); QVERIFY(!p3.data()); + QVERIFY(!p3.get()); p3 = nullptr; @@ -421,6 +434,7 @@ void tst_QSharedPointer::nullptrOps() QSharedPointer<char> p4(new char); QVERIFY(p4); QVERIFY(p4.data()); + QVERIFY(p4.get()); QVERIFY(p4 != nullptr); QVERIFY(nullptr != p4); QVERIFY(p4 != p1); diff --git a/tests/auto/corelib/tools/qstring/tst_qstring.cpp b/tests/auto/corelib/tools/qstring/tst_qstring.cpp index 70ccc72630..f6840e60a8 100644 --- a/tests/auto/corelib/tools/qstring/tst_qstring.cpp +++ b/tests/auto/corelib/tools/qstring/tst_qstring.cpp @@ -249,7 +249,7 @@ class CharStarContainer { const char *str; public: - explicit Q_DECL_CONSTEXPR CharStarContainer(const char *s = Q_NULLPTR) : str(s) {} + explicit Q_DECL_CONSTEXPR CharStarContainer(const char *s = nullptr) : str(s) {} Q_DECL_CONSTEXPR operator const char *() const { return str; } }; @@ -1483,7 +1483,7 @@ void tst_QString::indexOf() QRegularExpression re(QRegularExpression::escape(needle), options); QCOMPARE( haystack.indexOf(re, startpos), resultpos ); - QCOMPARE(haystack.indexOf(re, startpos, Q_NULLPTR), resultpos); + QCOMPARE(haystack.indexOf(re, startpos, nullptr), resultpos); QRegularExpressionMatch match; QVERIFY(!match.hasMatch()); @@ -1608,7 +1608,7 @@ void tst_QString::indexOfInvalidRegex() QTest::ignoreMessage(QtWarningMsg, "QString::indexOf: invalid QRegularExpression object"); QCOMPARE(QString("invalid regex\\").indexOf(QRegularExpression("invalid regex\\")), -1); QTest::ignoreMessage(QtWarningMsg, "QString::indexOf: invalid QRegularExpression object"); - QCOMPARE(QString("invalid regex\\").indexOf(QRegularExpression("invalid regex\\"), -1, Q_NULLPTR), -1); + QCOMPARE(QString("invalid regex\\").indexOf(QRegularExpression("invalid regex\\"), -1, nullptr), -1); QRegularExpressionMatch match; QVERIFY(!match.hasMatch()); @@ -1706,7 +1706,7 @@ void tst_QString::lastIndexOf() QRegularExpression re(QRegularExpression::escape(needle), options); QCOMPARE(haystack.lastIndexOf(re, from), expected); - QCOMPARE(haystack.lastIndexOf(re, from, Q_NULLPTR), expected); + QCOMPARE(haystack.lastIndexOf(re, from, nullptr), expected); QRegularExpressionMatch match; QVERIFY(!match.hasMatch()); QCOMPARE(haystack.lastIndexOf(re, from, &match), expected); @@ -1743,7 +1743,7 @@ void tst_QString::lastIndexOfInvalidRegex() QTest::ignoreMessage(QtWarningMsg, "QString::lastIndexOf: invalid QRegularExpression object"); QCOMPARE(QString("invalid regex\\").lastIndexOf(QRegularExpression("invalid regex\\"), 0), -1); QTest::ignoreMessage(QtWarningMsg, "QString::lastIndexOf: invalid QRegularExpression object"); - QCOMPARE(QString("invalid regex\\").lastIndexOf(QRegularExpression("invalid regex\\"), -1, Q_NULLPTR), -1); + QCOMPARE(QString("invalid regex\\").lastIndexOf(QRegularExpression("invalid regex\\"), -1, nullptr), -1); QRegularExpressionMatch match; QVERIFY(!match.hasMatch()); diff --git a/tests/auto/corelib/tools/qstringref/tst_qstringref.cpp b/tests/auto/corelib/tools/qstringref/tst_qstringref.cpp index 473f563f9b..581e9152e6 100644 --- a/tests/auto/corelib/tools/qstringref/tst_qstringref.cpp +++ b/tests/auto/corelib/tools/qstringref/tst_qstringref.cpp @@ -121,14 +121,6 @@ typedef QList<int> IntList; #if defined(Q_OS_SOLARIS) # include <ieeefp.h> #endif -#if defined(Q_OS_OSF) && (defined(__DECC) || defined(__DECCXX)) -# define INFINITY DBL_INFINITY -# define NAN DBL_QNAN -#endif -#if defined(Q_OS_IRIX) && defined(Q_CC_GNU) -# include <ieeefp.h> -# define isnan(d) isnand(d) -#endif enum { LittleEndian, diff --git a/tests/auto/corelib/tools/qtimezone/tst_qtimezone.cpp b/tests/auto/corelib/tools/qtimezone/tst_qtimezone.cpp index 9f22c3d51d..6b103d355a 100644 --- a/tests/auto/corelib/tools/qtimezone/tst_qtimezone.cpp +++ b/tests/auto/corelib/tools/qtimezone/tst_qtimezone.cpp @@ -1177,7 +1177,8 @@ void tst_QTimeZone::testEpochTranPrivate(const QTimeZonePrivate &tzp) // Pre-epoch time-zones might not be supported at all: tran = tzp.nextTransition(QDateTime(QDate(1601, 1, 1), QTime(0, 0), Qt::UTC).toMSecsSinceEpoch()); - if (tran.atMSecsSinceEpoch != QTimeZonePrivate::invalidSeconds() + if (tran.atMSecsSinceEpoch != QTimeZonePrivate::invalidMSecs() + // Toronto *did* have a transition before 1970 (DST since 1918): && tran.atMSecsSinceEpoch < 0) { // ... but, if they are, we should be able to search back to them: tran = tzp.previousTransition(0); // i.e. last before epoch diff --git a/tests/auto/corelib/tools/qvector/tst_qvector.cpp b/tests/auto/corelib/tools/qvector/tst_qvector.cpp index 374fec221e..56daea31fe 100644 --- a/tests/auto/corelib/tools/qvector/tst_qvector.cpp +++ b/tests/auto/corelib/tools/qvector/tst_qvector.cpp @@ -2803,7 +2803,7 @@ void tst_QVector::detachThreadSafety() const static const uint threadsCount = 5; struct : QThread { - void run() Q_DECL_OVERRIDE + void run() override { QVector<T> copy(*detachThreadSafetyData<T>()->load()); QVERIFY(!copy.isDetached()); diff --git a/tests/auto/corelib/xml/qxmlstream/tst_qxmlstream.cpp b/tests/auto/corelib/xml/qxmlstream/tst_qxmlstream.cpp index 79cd17b5b3..16a4200b5d 100644 --- a/tests/auto/corelib/xml/qxmlstream/tst_qxmlstream.cpp +++ b/tests/auto/corelib/xml/qxmlstream/tst_qxmlstream.cpp @@ -576,6 +576,7 @@ private slots: void invalidStringCharacters_data() const; void invalidStringCharacters() const; void hasError() const; + void readBack() const; private: static QByteArray readFile(const QString &filename); @@ -1695,5 +1696,50 @@ void tst_QXmlStream::invalidStringCharacters_data() const // } +static bool isValidSingleTextChar(const ushort c) +{ + // Conforms to https://www.w3.org/TR/REC-xml/#NT-Char - except for the high range, which is done + // with surrogates. + // Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] + static const QPair<ushort, ushort> validRanges[] = { + QPair<ushort, ushort>(0x9, 0xb), + QPair<ushort, ushort>(0xd, 0xe), + QPair<ushort, ushort>(0x20, 0xd800), + QPair<ushort, ushort>(0xe000, 0xfffe) + }; + + for (const QPair<ushort, ushort> &range : validRanges) { + if (c >= range.first && c < range.second) + return true; + } + return false; +} + +void tst_QXmlStream::readBack() const +{ + for (ushort c = 0; c < std::numeric_limits<ushort>::max(); ++c) { + QBuffer buffer; + + QVERIFY(buffer.open(QIODevice::WriteOnly)); + QXmlStreamWriter writer(&buffer); + writer.writeStartDocument(); + writer.writeTextElement("a", QString(QChar(c))); + writer.writeEndDocument(); + buffer.close(); + + if (writer.hasError()) { + QVERIFY2(!isValidSingleTextChar(c), QByteArray::number(c)); + } else { + QVERIFY2(isValidSingleTextChar(c), QByteArray::number(c)); + QVERIFY(buffer.open(QIODevice::ReadOnly)); + QXmlStreamReader reader(&buffer); + do { + reader.readNext(); + } while (!reader.atEnd()); + QVERIFY2(!reader.hasError(), QByteArray::number(c)); + } + } +} + #include "tst_qxmlstream.moc" // vim: et:ts=4:sw=4:sts=4 |