diff options
Diffstat (limited to 'tests/auto/corelib/tools')
6 files changed, 110 insertions, 21 deletions
diff --git a/tests/auto/corelib/tools/qcommandlineparser/tst_qcommandlineparser.cpp b/tests/auto/corelib/tools/qcommandlineparser/tst_qcommandlineparser.cpp index a54ad3d9c9..10398f1a99 100644 --- a/tests/auto/corelib/tools/qcommandlineparser/tst_qcommandlineparser.cpp +++ b/tests/auto/corelib/tools/qcommandlineparser/tst_qcommandlineparser.cpp @@ -509,7 +509,7 @@ void tst_QCommandLineParser::testCpp11StyleInitialization() void tst_QCommandLineParser::testVersionOption() { -#ifdef QT_NO_PROCESS +#if !QT_CONFIG(process) QSKIP("This test requires QProcess support"); #else #if defined(Q_OS_ANDROID) @@ -526,7 +526,7 @@ void tst_QCommandLineParser::testVersionOption() output.replace(QStringLiteral("\r\n"), QStringLiteral("\n")); #endif QCOMPARE(output, QString("qcommandlineparser_test_helper 1.0\n")); -#endif // !QT_NO_PROCESS +#endif // QT_CONFIG(process) } static const char expectedOptionsHelp[] = @@ -575,7 +575,7 @@ void tst_QCommandLineParser::testHelpOption_data() void tst_QCommandLineParser::testHelpOption() { -#ifdef QT_NO_PROCESS +#if !QT_CONFIG(process) QSKIP("This test requires QProcess support"); #else #if defined(Q_OS_ANDROID) @@ -618,12 +618,12 @@ void tst_QCommandLineParser::testHelpOption() expectedResizeHelp.replace("testhelper/", "testhelper\\"); #endif QCOMPARE(output, QString(expectedResizeHelp)); -#endif // !QT_NO_PROCESS +#endif // QT_CONFIG(process) } void tst_QCommandLineParser::testQuoteEscaping() { -#ifdef QT_NO_PROCESS +#if !QT_CONFIG(process) QSKIP("This test requires QProcess support"); #elif defined(Q_OS_ANDROID) QSKIP("Deploying executable applications to file system on Android not supported."); @@ -644,7 +644,7 @@ void tst_QCommandLineParser::testQuoteEscaping() QVERIFY2(output.contains("KEY1=\"VALUE1\""), qPrintable(output)); QVERIFY2(output.contains("QTBUG-15379=C:\\path\\'file.ext"), qPrintable(output)); QVERIFY2(output.contains("QTBUG-30628=C:\\temp\\'file'.ext"), qPrintable(output)); -#endif // !QT_NO_PROCESS +#endif // QT_CONFIG(process) } QTEST_APPLESS_MAIN(tst_QCommandLineParser) diff --git a/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp b/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp index 5eec44dffd..28ad2d193c 100644 --- a/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp +++ b/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp @@ -119,6 +119,8 @@ private slots: void fromStringDateFormat(); void fromStringStringFormat_data(); void fromStringStringFormat(); + void fromStringStringFormatLocale_data(); + void fromStringStringFormatLocale(); #ifdef Q_OS_WIN void fromString_LOCALE_ILDATE(); #endif @@ -665,6 +667,29 @@ void tst_QDateTime::setMSecsSinceEpoch() QCOMPARE(dt.time(), utc.time()); QCOMPARE(dt.timeSpec(), Qt::UTC); + { + QDateTime dt1 = QDateTime::fromMSecsSinceEpoch(msecs, Qt::UTC); + QCOMPARE(dt1, utc); + QCOMPARE(dt1.date(), utc.date()); + QCOMPARE(dt1.time(), utc.time()); + QCOMPARE(dt1.timeSpec(), Qt::UTC); + } + { + QDateTime dt1(utc.date(), utc.time(), Qt::UTC); + QCOMPARE(dt1, utc); + QCOMPARE(dt1.date(), utc.date()); + QCOMPARE(dt1.time(), utc.time()); + QCOMPARE(dt1.timeSpec(), Qt::UTC); + } + { + // used to fail to clear the ShortData bit, causing corruption + QDateTime dt1 = dt.addDays(0); + QCOMPARE(dt1, utc); + QCOMPARE(dt1.date(), utc.date()); + QCOMPARE(dt1.time(), utc.time()); + QCOMPARE(dt1.timeSpec(), Qt::UTC); + } + if (zoneIsCET) { QCOMPARE(dt.toLocalTime(), cet); @@ -2377,6 +2402,54 @@ void tst_QDateTime::fromStringStringFormat() QCOMPARE(dt, expected); } +void tst_QDateTime::fromStringStringFormatLocale_data() +{ + QTest::addColumn<QString>("string"); + QTest::addColumn<QString>("format"); + QTest::addColumn<QLocale>("locale"); + QTest::addColumn<QDateTime>("expected"); + + QLocale c = QLocale::c(); + QDateTime dt(QDate(2017, 02, 25), QTime(17, 21, 25)); + + // The formats correspond to the locale formats, with the timezone removed. + // We hardcode them in case an update to the locale DB changes them. + + QTest::newRow("C:long") << "Saturday, 25 February 2017 17:21:25" << "dddd, d MMMM yyyy HH:mm:ss" << c << dt; + QTest::newRow("C:short") << "25 Feb 2017 17:21:25" << "d MMM yyyy HH:mm:ss" << c << dt; + QTest::newRow("C:narrow") << "25 Feb 2017 17:21:25" << "d MMM yyyy HH:mm:ss" << c << dt; + + QLocale fr(QLocale::French); + QTest::newRow("fr:long") << "Samedi 25 février 2017 17:21:25" << "dddd d MMMM yyyy HH:mm:ss" << fr << dt; + QTest::newRow("fr:short") << "25/02/2017 17:21" << "dd/MM/yyyy HH:mm" << fr << dt.addSecs(-25); + + // In Turkish, the word for Friday ("Cuma") is a prefix for the word for + // Saturday ("Cumartesi") + QLocale tr(QLocale::Turkish); + QTest::newRow("tr:long") << "25 Şubat 2017 Cumartesi 17:21:25" << "d MMMM yyyy dddd HH:mm:ss" << tr << dt; + QTest::newRow("tr:long2") << "24 Şubat 2017 Cuma 17:21:25" << "d MMMM yyyy dddd HH:mm:ss" << tr << dt.addDays(-1); + QTest::newRow("tr:mashed") << "25 Şubat2017 Cumartesi17:21:25" << "d MMMMyyyy ddddHH:mm:ss" << tr << dt; + QTest::newRow("tr:mashed2") << "24 Şubat2017 Cuma17:21:25" << "d MMMMyyyy ddddHH:mm:ss" << tr << dt.addDays(-1); + QTest::newRow("tr:short") << "25.02.2017 17:21" << "d.MM.yyyy HH:mm" << tr << dt.addSecs(-25); +} + +void tst_QDateTime::fromStringStringFormatLocale() +{ + QFETCH(QString, string); + QFETCH(QString, format); + QFETCH(QLocale, locale); + QFETCH(QDateTime, expected); + + QDateTime parsed = locale.toDateTime(string, format); + QCOMPARE(parsed, expected); + + parsed = locale.toDateTime(string.toLower(), format); + QCOMPARE(parsed, expected); + + parsed = locale.toDateTime(string.toUpper(), format); + QCOMPARE(parsed, expected); +} + #ifdef Q_OS_WIN // Windows only void tst_QDateTime::fromString_LOCALE_ILDATE() diff --git a/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp b/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp index 6f20e3db91..5d13d9e454 100644 --- a/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp +++ b/tests/auto/corelib/tools/qlocale/tst_qlocale.cpp @@ -35,7 +35,9 @@ #include <QScopedArrayPointer> #include <qtextcodec.h> #include <qdatetime.h> -#include <qprocess.h> +#if QT_CONFIG(process) +# include <qprocess.h> +#endif #include <float.h> #include <locale.h> @@ -78,6 +80,7 @@ private slots: void ctor(); void emptyCtor(); void legacyNames(); + void consistentC(); void unixLocaleName(); void matchingLocales(); void stringToDouble_data(); @@ -152,7 +155,7 @@ tst_QLocale::tst_QLocale() void tst_QLocale::initTestCase() { -#ifndef QT_NO_PROCESS +#if QT_CONFIG(process) const QString syslocaleapp_dir = QFINDTESTDATA("syslocaleapp"); QVERIFY2(!syslocaleapp_dir.isEmpty(), qPrintable(QStringLiteral("Cannot find 'syslocaleapp' starting from ") @@ -165,7 +168,7 @@ void tst_QLocale::initTestCase() QVERIFY2(fi.exists() && fi.isExecutable(), qPrintable(QDir::toNativeSeparators(m_sysapp) + QStringLiteral(" does not exist or is not executable."))); -#endif // QT_NO_PROCESS +#endif // QT_CONFIG(process) } void tst_QLocale::cleanupTestCase() @@ -420,7 +423,7 @@ void tst_QLocale::ctor() #undef TEST_CTOR } -#if !defined(QT_NO_PROCESS) +#if QT_CONFIG(process) static inline bool runSysApp(const QString &binary, const QStringList &env, QString *output, @@ -472,7 +475,7 @@ static inline bool runSysAppTest(const QString &binary, void tst_QLocale::emptyCtor() { -#ifdef QT_NO_PROCESS +#if !QT_CONFIG(process) QSKIP("No qprocess support", SkipAll); #else #define TEST_CTOR(req_lc, exp_str) \ @@ -577,6 +580,15 @@ void tst_QLocale::legacyNames() #undef TEST_CTOR } +void tst_QLocale::consistentC() +{ + const QLocale c(QLocale::C); + QCOMPARE(c, QLocale::c()); + QCOMPARE(c, QLocale(QLocale::C, QLocale::AnyScript, QLocale::AnyCountry)); + QVERIFY(QLocale::matchingLocales(QLocale::AnyLanguage, QLocale::AnyScript, + QLocale::AnyCountry).contains(c)); +} + void tst_QLocale::matchingLocales() { const QLocale c(QLocale::C); diff --git a/tests/auto/corelib/tools/qsharedpointer/externaltests.cpp b/tests/auto/corelib/tools/qsharedpointer/externaltests.cpp index 7bebe5e9e0..e8f56fc1d3 100644 --- a/tests/auto/corelib/tools/qsharedpointer/externaltests.cpp +++ b/tests/auto/corelib/tools/qsharedpointer/externaltests.cpp @@ -31,7 +31,9 @@ #include <QtCore/QTemporaryFile> #include <QtCore/QTemporaryDir> -#include <QtCore/QProcess> +#if QT_CONFIG(process) +# include <QtCore/QProcess> +#endif #include <QtCore/QByteArray> #include <QtCore/QString> #include <QtCore/QFileInfo> @@ -66,7 +68,7 @@ static QString makespec() QT_BEGIN_NAMESPACE namespace QTest { -#ifndef QT_NO_PROCESS +#if QT_CONFIG(process) class QExternalProcess: public QProcess { protected: @@ -87,7 +89,7 @@ namespace QTest { } #endif }; -#endif // !QT_NO_PROCESS +#endif // QT_CONFIG(process) class QExternalTestPrivate { @@ -554,7 +556,7 @@ namespace QTest { bool QExternalTestPrivate::runQmake() { -#ifndef QT_NO_PROCESS +#if QT_CONFIG(process) if (temporaryDirPath.isEmpty()) qWarning() << "Temporary directory is expected to be non-empty"; @@ -597,14 +599,14 @@ namespace QTest { } return ok && exitCode == 0; -#else // QT_NO_PROCESS +#else // QT_CONFIG(process) return false; -#endif // QT_NO_PROCESS +#endif // QT_CONFIG(process) } bool QExternalTestPrivate::runMake(Target target) { -#ifdef QT_NO_PROCESS +#if !QT_CONFIG(process) return false; #else if (temporaryDirPath.isEmpty()) @@ -663,7 +665,7 @@ namespace QTest { std_err += make.readAllStandardError(); return ok; -#endif // !QT_NO_PROCESS +#endif // QT_CONFIG(process) } bool QExternalTestPrivate::commonSetup(const QByteArray &body) diff --git a/tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp b/tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp index 4c9916cc52..5467d438a3 100644 --- a/tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp +++ b/tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp @@ -751,7 +751,9 @@ void tst_QTextBoundaryFinder::isAtSoftHyphen() doTestData(testString, expectedSoftHyphenPositions, QTextBoundaryFinder::Line, QTextBoundaryFinder::SoftHyphen); } +#if QT_CONFIG(library) #include <qlibrary.h> +#endif #define LIBTHAI_MAJOR 0 typedef int (*th_brk_def) (const unsigned char*, int*, size_t); @@ -759,7 +761,7 @@ static th_brk_def th_brk = 0; static bool init_libthai() { -#if !defined(QT_NO_LIBRARY) +#if QT_CONFIG(library) static bool triedResolve = false; if (!triedResolve) { th_brk = (th_brk_def) QLibrary::resolve("thai", (int)LIBTHAI_MAJOR, "th_brk"); diff --git a/tests/auto/corelib/tools/qversionnumber/tst_qversionnumber.cpp b/tests/auto/corelib/tools/qversionnumber/tst_qversionnumber.cpp index c37a15089a..2e34e82388 100644 --- a/tests/auto/corelib/tools/qversionnumber/tst_qversionnumber.cpp +++ b/tests/auto/corelib/tools/qversionnumber/tst_qversionnumber.cpp @@ -134,7 +134,7 @@ void tst_QVersionNumber::singleInstanceData() namespace UglyOperator { // ugh, but the alternative (operator <<) is even worse... -static inline QVector<int> operator+(QVector<int> v, int i) { v.push_back(i); return qMove(v); } +static inline QVector<int> operator+(QVector<int> v, int i) { v.push_back(i); return v; } } void tst_QVersionNumber::comparisonData() |