summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2016-06-10 23:27:10 +0200
committerLiang Qi <liang.qi@qt.io>2016-06-10 23:27:10 +0200
commitcbe332405aa22257d432f1797b325f5e57007c20 (patch)
tree0d817dc7ed2f3a2f6035f924a824d351420910c5 /tests/auto
parentd2c6294bd5cc3c2e61aaa0c83bfd74941ced150e (diff)
parent67ca72796e23269451795baf9adde02a184a7b9e (diff)
Merge remote-tracking branch 'origin/5.6' into 5.7
Conflicts: configure mkspecs/macx-ios-clang/features/default_pre.prf mkspecs/macx-ios-clang/features/sdk.prf mkspecs/unsupported/freebsd-g++46/qplatformdefs.h src/widgets/styles/qgtkstyle.cpp tests/auto/corelib/io/qdiriterator/qdiriterator.pro tests/auto/corelib/io/qfileinfo/qfileinfo.pro Change-Id: Ia943555d1e59234a66f7dc65bdfda838e40001b5
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/corelib/io/qdebug/tst_qdebug.cpp6
-rw-r--r--tests/auto/corelib/io/qdir/qdir.pro2
-rw-r--r--tests/auto/corelib/io/qdir/tst_qdir.cpp63
-rw-r--r--tests/auto/corelib/io/qdiriterator/qdiriterator.pro2
-rw-r--r--tests/auto/corelib/io/qfileinfo/qfileinfo.pro2
-rw-r--r--tests/auto/corelib/plugin/qplugin/qplugin.pro34
-rw-r--r--tests/auto/corelib/xml/qxmlstream/tst_qxmlstream.cpp39
-rw-r--r--tests/auto/dbus/qdbusconnection/tst_qdbusconnection.cpp39
-rw-r--r--tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp18
-rw-r--r--tests/auto/widgets/styles/qstyle/tst_qstyle.cpp9
10 files changed, 122 insertions, 92 deletions
diff --git a/tests/auto/corelib/io/qdebug/tst_qdebug.cpp b/tests/auto/corelib/io/qdebug/tst_qdebug.cpp
index abec4e7aba..7147405f3b 100644
--- a/tests/auto/corelib/io/qdebug/tst_qdebug.cpp
+++ b/tests/auto/corelib/io/qdebug/tst_qdebug.cpp
@@ -359,14 +359,14 @@ void tst_QDebug::qDebugQChar() const
MessageHandlerSetter mhs(myMessageHandler);
{
QDebug d = qDebug();
- d << QChar('f');
- d.nospace().noquote() << QChar('o') << QChar('o');
+ d << QChar('f') << QChar(QLatin1Char('\xE4')); // f, ä
+ d.nospace().noquote() << QChar('o') << QChar('o') << QChar(QLatin1Char('\xC4')); // o, o, Ä
}
#ifndef QT_NO_MESSAGELOGCONTEXT
file = __FILE__; line = __LINE__ - 5; function = Q_FUNC_INFO;
#endif
QCOMPARE(s_msgType, QtDebugMsg);
- QCOMPARE(s_msg, QString::fromLatin1("'f' oo"));
+ QCOMPARE(s_msg, QString::fromLatin1("'f' '\\u00e4' oo\\u00c4"));
QCOMPARE(QString::fromLatin1(s_file), file);
QCOMPARE(s_line, line);
QCOMPARE(QString::fromLatin1(s_function), function);
diff --git a/tests/auto/corelib/io/qdir/qdir.pro b/tests/auto/corelib/io/qdir/qdir.pro
index e5739f7e0a..4870922312 100644
--- a/tests/auto/corelib/io/qdir/qdir.pro
+++ b/tests/auto/corelib/io/qdir/qdir.pro
@@ -11,5 +11,3 @@ contains(CONFIG, builtin_testdata): DEFINES += BUILTIN_TESTDATA
android {
RESOURCES += android_testdata.qrc
}
-
-win32: CONFIG += insignificant_test # Crashes on Windows in release builds
diff --git a/tests/auto/corelib/io/qdir/tst_qdir.cpp b/tests/auto/corelib/io/qdir/tst_qdir.cpp
index 703e9c5b07..48b8db949f 100644
--- a/tests/auto/corelib/io/qdir/tst_qdir.cpp
+++ b/tests/auto/corelib/io/qdir/tst_qdir.cpp
@@ -208,6 +208,7 @@ private slots:
void cdNonreadable();
+ void cdBelowRoot_data();
void cdBelowRoot();
private:
@@ -2259,31 +2260,37 @@ void tst_QDir::cdNonreadable()
#endif
}
+void tst_QDir::cdBelowRoot_data()
+{
+ QTest::addColumn<QString>("rootPath");
+ QTest::addColumn<QString>("cdInto");
+ QTest::addColumn<QString>("targetPath");
+
+#if defined(Q_OS_ANDROID)
+ QTest::newRow("android") << "/" << "system" << "/system";
+#elif defined(Q_OS_UNIX)
+ QTest::newRow("unix") << "/" << "tmp" << "/tmp";
+#elif defined(Q_OS_WINRT)
+ QTest::newRow("winrt") << QDir::rootPath() << QDir::rootPath() << QDir::rootPath();
+#else // Windows+CE
+ const QString systemDrive = QString::fromLocal8Bit(qgetenv("SystemDrive")) + QLatin1Char('/');
+ const QString systemRoot = QString::fromLocal8Bit(qgetenv("SystemRoot"));
+ QTest::newRow("windows-drive")
+ << systemDrive << systemRoot.mid(3) << QDir::cleanPath(systemRoot);
+#endif // Windows
+}
+
void tst_QDir::cdBelowRoot()
{
-#if defined (Q_OS_ANDROID)
-#define ROOT QString("/")
-#define DIR QString("/system")
-#define CD_INTO "system"
-#elif defined (Q_OS_UNIX)
-#define ROOT QString("/")
-#define DIR QString("/tmp")
-#define CD_INTO "tmp"
-#elif defined (Q_OS_WINRT)
-#define ROOT QDir::rootPath()
-#define DIR QDir::rootPath()
-#define CD_INTO QDir::rootPath()
-#else
-#define ROOT QString::fromLocal8Bit(qgetenv("SystemDrive"))+"/"
-#define DIR QString::fromLocal8Bit(qgetenv("SystemRoot")).replace('\\', '/')
-#define CD_INTO QString::fromLocal8Bit(qgetenv("SystemRoot")).mid(3)
-#endif
+ QFETCH(QString, rootPath);
+ QFETCH(QString, cdInto);
+ QFETCH(QString, targetPath);
- QDir root(ROOT);
- QVERIFY(!root.cd(".."));
- QCOMPARE(root.path(), ROOT);
- QVERIFY(root.cd(CD_INTO));
- QCOMPARE(root.path(), DIR);
+ QDir root(rootPath);
+ QVERIFY2(!root.cd(".."), qPrintable(root.absolutePath()));
+ QCOMPARE(root.path(), rootPath);
+ QVERIFY(root.cd(cdInto));
+ QCOMPARE(root.path(), targetPath);
#ifdef Q_OS_UNIX
if (::getuid() == 0)
QSKIP("Running this test as root doesn't make sense");
@@ -2291,13 +2298,13 @@ void tst_QDir::cdBelowRoot()
#ifdef Q_OS_WINRT
QSKIP("WinRT has no concept of system root");
#endif
- QDir dir(DIR);
- QVERIFY(!dir.cd("../.."));
- QCOMPARE(dir.path(), DIR);
- QVERIFY(!dir.cd("../abs/../.."));
- QCOMPARE(dir.path(), DIR);
+ QDir dir(targetPath);
+ QVERIFY2(!dir.cd("../.."), qPrintable(dir.absolutePath()));
+ QCOMPARE(dir.path(), targetPath);
+ QVERIFY2(!dir.cd("../abs/../.."), qPrintable(dir.absolutePath()));
+ QCOMPARE(dir.path(), targetPath);
QVERIFY(dir.cd(".."));
- QCOMPARE(dir.path(), ROOT);
+ QCOMPARE(dir.path(), rootPath);
}
QTEST_MAIN(tst_QDir)
diff --git a/tests/auto/corelib/io/qdiriterator/qdiriterator.pro b/tests/auto/corelib/io/qdiriterator/qdiriterator.pro
index 2d8dfba996..5404e9058f 100644
--- a/tests/auto/corelib/io/qdiriterator/qdiriterator.pro
+++ b/tests/auto/corelib/io/qdiriterator/qdiriterator.pro
@@ -8,5 +8,3 @@ TESTDATA += entrylist
contains(CONFIG, builtin_testdata): DEFINES += BUILTIN_TESTDATA
wince*mips*|wincewm50smart-msvc200*: DEFINES += WINCE_BROKEN_ITERATE=1
-
-win32: CONFIG += insignificant_test # Crashes on Windows in release builds
diff --git a/tests/auto/corelib/io/qfileinfo/qfileinfo.pro b/tests/auto/corelib/io/qfileinfo/qfileinfo.pro
index 8aa81896cc..48673b20a9 100644
--- a/tests/auto/corelib/io/qfileinfo/qfileinfo.pro
+++ b/tests/auto/corelib/io/qfileinfo/qfileinfo.pro
@@ -6,5 +6,3 @@ RESOURCES += qfileinfo.qrc \
testdata.qrc
win32:!wince:!winrt:LIBS += -ladvapi32 -lnetapi32
-
-win32: CONFIG += insignificant_test # Crashes on Windows in release builds
diff --git a/tests/auto/corelib/plugin/qplugin/qplugin.pro b/tests/auto/corelib/plugin/qplugin/qplugin.pro
index 918ffb44bd..5283c2d52b 100644
--- a/tests/auto/corelib/plugin/qplugin/qplugin.pro
+++ b/tests/auto/corelib/plugin/qplugin/qplugin.pro
@@ -1,27 +1,17 @@
-QT = core
TEMPLATE = subdirs
+TESTPLUGINS =
+
win32 {
- exists($$[QT_INSTALL_LIBS/get]/QtCore4.dll) {
- SUBDIRS = releaseplugin
- }
- exists($$[QT_INSTALL_LIBS/get]/QtCored4.dll) {
- SUBDIRS += debugplugin
- }
-}
-mac {
- CONFIG(debug, debug|release): {
- SUBDIRS += debugplugin
- tst_qplugin_pro.depends += debugplugin
- }
- CONFIG(release, debug|release): {
- SUBDIRS += releaseplugin
- tst_qplugin_pro.depends += releaseplugin
- }
+ contains(QT_CONFIG, debug): TESTPLUGINS += debugplugin
+ contains(QT_CONFIG, release): TESTPLUGINS += releaseplugin
+} else:osx {
+ CONFIG(debug, debug|release): TESTPLUGINS += debugplugin
+ CONFIG(release, debug|release): TESTPLUGINS += releaseplugin
+} else {
+ TESTPLUGINS = debugplugin releaseplugin
}
-!win32:!mac:{
- SUBDIRS = debugplugin releaseplugin
- tst_qplugin_pro.depends += debugplugin releaseplugin
-}
-SUBDIRS += tst_qplugin.pro
+SUBDIRS += main $$TESTPLUGINS
+main.file = tst_qplugin.pro
+main.depends = $$TESTPLUGINS
diff --git a/tests/auto/corelib/xml/qxmlstream/tst_qxmlstream.cpp b/tests/auto/corelib/xml/qxmlstream/tst_qxmlstream.cpp
index 8a153a4599..26d443c2c6 100644
--- a/tests/auto/corelib/xml/qxmlstream/tst_qxmlstream.cpp
+++ b/tests/auto/corelib/xml/qxmlstream/tst_qxmlstream.cpp
@@ -556,6 +556,7 @@ private slots:
void checkCommentIndentation() const;
void checkCommentIndentation_data() const;
void crashInXmlStreamReader() const;
+ void write8bitCodec() const;
void hasError() const;
private:
@@ -1576,5 +1577,43 @@ void tst_QXmlStream::hasError() const
}
+void tst_QXmlStream::write8bitCodec() const
+{
+ QBuffer outBuffer;
+ QVERIFY(outBuffer.open(QIODevice::WriteOnly));
+ QXmlStreamWriter writer(&outBuffer);
+ writer.setAutoFormatting(false);
+
+ QTextCodec *codec = QTextCodec::codecForName("IBM500");
+ if (!codec) {
+ QSKIP("Encoding IBM500 not available.");
+ }
+ writer.setCodec(codec);
+
+ writer.writeStartDocument();
+ writer.writeStartElement("root");
+ writer.writeAttribute("attrib", "1");
+ writer.writeEndElement();
+ writer.writeEndDocument();
+ outBuffer.close();
+
+ // test 8 bit encoding
+ QByteArray values = outBuffer.data();
+ QVERIFY(values.size() > 1);
+ // check '<'
+ QCOMPARE(values[0] & 0x00FF, 0x4c);
+ // check '?'
+ QCOMPARE(values[1] & 0x00FF, 0x6F);
+
+ // convert the start of the XML
+ const QString expected = ("<?xml version=\"1.0\" encoding=\"IBM500\"?>");
+ QTextDecoder *decoder = codec->makeDecoder();
+ QVERIFY(decoder);
+ QString decodedText = decoder->toUnicode(values);
+ delete decoder;
+ QVERIFY(decodedText.startsWith(expected));
+}
+
+
#include "tst_qxmlstream.moc"
// vim: et:ts=4:sw=4:sts=4
diff --git a/tests/auto/dbus/qdbusconnection/tst_qdbusconnection.cpp b/tests/auto/dbus/qdbusconnection/tst_qdbusconnection.cpp
index 851ef6cc1f..4a09dca544 100644
--- a/tests/auto/dbus/qdbusconnection/tst_qdbusconnection.cpp
+++ b/tests/auto/dbus/qdbusconnection/tst_qdbusconnection.cpp
@@ -35,6 +35,11 @@
#include <QtTest/QtTest>
#include <QtDBus/QtDBus>
+#ifdef Q_OS_UNIX
+# include <sys/types.h>
+# include <signal.h>
+#endif
+
void MyObject::method(const QDBusMessage &msg)
{
path = msg.path();
@@ -1352,23 +1357,39 @@ void tst_QDBusConnection::callVirtualObjectLocal()
void tst_QDBusConnection::pendingCallWhenDisconnected()
{
+#ifdef QT_NO_PROCESS
+ QSKIP("Test requires QProcess");
+#else
if (!QCoreApplication::instance())
QSKIP("Test requires a QCoreApplication");
- QDBusServer *server = new QDBusServer;
- QDBusConnection con = QDBusConnection::connectToPeer(server->address(), "disconnect");
- QTestEventLoop::instance().enterLoop(2);
- QVERIFY(con.isConnected());
- QDBusMessage message = QDBusMessage::createMethodCall("", "/", QString(), "method");
- QDBusPendingCall reply = con.asyncCall(message);
+ QProcess daemon;
+ daemon.start("dbus-daemon", QStringList() << "--session" << "--nofork" << "--print-address");
+ QVERIFY2(daemon.waitForReadyRead(2000),
+ "Daemon didn't print its address in time; error: \"" + daemon.errorString().toLocal8Bit() +
+ "\"; stderr:\n" + daemon.readAllStandardError());
- delete server;
+ QString address = QString::fromLocal8Bit(daemon.readAll().trimmed());
+ QDBusConnection con = QDBusConnection::connectToBus(address, "disconnect");
+ QVERIFY2(con.isConnected(), (con.lastError().name() + ": " + con.lastError().message()).toLocal8Bit());
- QTestEventLoop::instance().enterLoop(2);
+ // confirm we're connected and we're alone in this bus
+ QCOMPARE(con.baseService(), QString(":1.0"));
+
+ // kill the bus
+ daemon.terminate();
+ daemon.waitForFinished();
+
+ // send something, which we should get an error with
+ QDBusMessage message = QDBusMessage::createMethodCall("org.freedesktop.DBus", "/", QString(), "ListNames");
+ QDBusPendingCall reply = con.asyncCall(message);
+
+ reply.waitForFinished();
QVERIFY(!con.isConnected());
QVERIFY(reply.isFinished());
QVERIFY(reply.isError());
- QVERIFY(reply.error().type() == QDBusError::Disconnected);
+ QCOMPARE(reply.error().type(), QDBusError::Disconnected);
+#endif
}
QString MyObject::path;
diff --git a/tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp b/tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp
index ff840a9e5a..ad7600c784 100644
--- a/tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp
+++ b/tests/auto/widgets/dialogs/qfilesystemmodel/tst_qfilesystemmodel.cpp
@@ -104,10 +104,6 @@ private slots:
void caseSensitivity();
-#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
- void Win32LongFileName();
-#endif
-
void drives_data();
void drives();
void dirsBeforeFiles();
@@ -928,20 +924,6 @@ void tst_QFileSystemModel::caseSensitivity()
}
}
-#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
-void tst_QFileSystemModel::Win32LongFileName()
-{
- QString tmp = flatDirTestPath;
- QStringList files;
- files << "aaaaaaaaaa" << "bbbbbbbbbb" << "cccccccccc";
- QVERIFY(createFiles(tmp, files));
- QModelIndex root = model->setRootPath(tmp);
- QTRY_VERIFY(model->index(tmp + QLatin1String("/aaaaaa~1")).isValid());
- QTRY_VERIFY(model->index(tmp + QLatin1String("/bbbbbb~1")).isValid());
- QTRY_VERIFY(model->index(tmp + QLatin1String("/cccccc~1")).isValid());
-}
-#endif
-
void tst_QFileSystemModel::drives_data()
{
QTest::addColumn<QString>("path");
diff --git a/tests/auto/widgets/styles/qstyle/tst_qstyle.cpp b/tests/auto/widgets/styles/qstyle/tst_qstyle.cpp
index d4f398a61c..5c213fea04 100644
--- a/tests/auto/widgets/styles/qstyle/tst_qstyle.cpp
+++ b/tests/auto/widgets/styles/qstyle/tst_qstyle.cpp
@@ -930,17 +930,14 @@ private:
void tst_QStyle::testStyleOptionInit()
{
QStringList keys = QStyleFactory::keys();
- QVector<QStyle*> styles;
- styles.reserve(keys.size() + 1);
-
- styles << new QCommonStyle();
+ keys.prepend(QString()); // QCommonStyle marker
- Q_FOREACH (QStyle *style, styles) {
+ Q_FOREACH (const QString &key, keys) {
+ QStyle* style = key.isEmpty() ? new QCommonStyle : QStyleFactory::create(key);
TestStyleOptionInitProxy testStyle;
testStyle.setBaseStyle(style);
testAllFunctions(style);
QVERIFY(!testStyle.invalidOptionsDetected);
- delete style;
}
}