summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/corelib/tools')
-rw-r--r--tests/auto/corelib/tools/qcommandlineparser/tst_qcommandlineparser.cpp12
-rw-r--r--tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp73
-rw-r--r--tests/auto/corelib/tools/qlocale/tst_qlocale.cpp22
-rw-r--r--tests/auto/corelib/tools/qsharedpointer/externaltests.cpp18
-rw-r--r--tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp4
-rw-r--r--tests/auto/corelib/tools/qversionnumber/tst_qversionnumber.cpp2
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()