summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason McDonald <jason.mcdonald@nokia.com>2011-11-28 16:43:55 +1000
committerQt by Nokia <qt-info@nokia.com>2011-11-30 00:56:40 +0100
commit3857e14daf3787eb73a5c77e70b279d18764409f (patch)
treed526155886efd05ce605a38c9e68eef93cfcc704
parent762b52ccd0db719a53f79944a0f3b5120118eba2 (diff)
downloadqtxmlpatterns-3857e14daf3787eb73a5c77e70b279d18764409f.tar.gz
Fix sanity check of network test server
Some of Qt's autotests depend on access to a test server. For each test that used the test server, tests/auto/network-settings.h created a global object to verify at startup that host lookups to the test server will succeed (and abort the test otherwise). There are two problems with that approach: First, the sanity check happens before main(), and thus before the test framework has started logging test results. This means that if the sanity check aborts the test, the failure message will not be visible in the test output if logging to a file or will cause the output to be malformed if logging to the console in XML format. Second, since Qt 4.7, the host lookup uses a class that connects to the QCoreApplication instance, which doesn't exist before main(), and this caused all tests that included network-settings.h to output an error message from QObject::connect() at the beginning of the test. Both of these problems are solved by removing the global object from network-settings.h and instead performing the sanity check in the initTestCase() function of each test. Task-number: QTBUG-22876 Change-Id: I1ae004cf7a10a02d34d7ec517ef5515eb722aecf Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
-rw-r--r--tests/auto/network-settings.h14
-rw-r--r--tests/auto/qxmlquery/tst_qxmlquery.cpp6
-rw-r--r--tests/auto/xmlpatterns/tst_xmlpatterns.cpp2
-rw-r--r--tests/auto/xmlpatterns/xmlpatterns.pro2
4 files changed, 15 insertions, 9 deletions
diff --git a/tests/auto/network-settings.h b/tests/auto/network-settings.h
index 171a94d..5cf32d3 100644
--- a/tests/auto/network-settings.h
+++ b/tests/auto/network-settings.h
@@ -72,7 +72,7 @@ public:
#ifdef QT_NETWORK_LIB
static QHostAddress serverIP()
{
- return QHostInfo::fromName(serverName()).addresses().first();
+ return QHostInfo::fromName(serverName()).addresses().first();
}
#endif
@@ -143,20 +143,18 @@ public:
return false;
}
-};
#ifdef QT_NETWORK_LIB
-class QtNetworkSettingsInitializerCode {
-public:
- QtNetworkSettingsInitializerCode() {
+ static bool verifyTestNetworkSettings()
+ {
QHostInfo testServerResult = QHostInfo::fromName(QtNetworkSettings::serverName());
if (testServerResult.error() != QHostInfo::NoError) {
qWarning() << "Could not lookup" << QtNetworkSettings::serverName();
qWarning() << "Please configure the test environment!";
qWarning() << "See /etc/hosts or network-settings.h";
- qFatal("Exiting");
+ return false;
}
+ return true;
}
-};
-QtNetworkSettingsInitializerCode qtNetworkSettingsInitializer;
#endif
+};
diff --git a/tests/auto/qxmlquery/tst_qxmlquery.cpp b/tests/auto/qxmlquery/tst_qxmlquery.cpp
index 241a43a..fd56c36 100644
--- a/tests/auto/qxmlquery/tst_qxmlquery.cpp
+++ b/tests/auto/qxmlquery/tst_qxmlquery.cpp
@@ -96,6 +96,7 @@ public:
}
private Q_SLOTS:
+ void initTestCase();
void defaultConstructor() const;
void copyConstructor() const;
void constructorQXmlNamePool() const;
@@ -257,6 +258,11 @@ private:
const bool m_testNetwork;
};
+void tst_QXmlQuery::initTestCase()
+{
+ QVERIFY(QtNetworkSettings::verifyTestNetworkSettings());
+}
+
void tst_QXmlQuery::checkBaseURI(const QUrl &baseURI, const QString &candidate)
{
/* The use of QFileInfo::canonicalFilePath() takes into account that drive letters
diff --git a/tests/auto/xmlpatterns/tst_xmlpatterns.cpp b/tests/auto/xmlpatterns/tst_xmlpatterns.cpp
index adb8111..d8559dc 100644
--- a/tests/auto/xmlpatterns/tst_xmlpatterns.cpp
+++ b/tests/auto/xmlpatterns/tst_xmlpatterns.cpp
@@ -108,6 +108,8 @@ tst_XmlPatterns::tst_XmlPatterns() : m_generatedTests(0)
void tst_XmlPatterns::initTestCase()
{
+ QVERIFY(QtNetworkSettings::verifyTestNetworkSettings());
+
QVERIFY(m_normalizeTestName.isValid());
QVERIFY(m_filenameInStderr.isValid());
diff --git a/tests/auto/xmlpatterns/xmlpatterns.pro b/tests/auto/xmlpatterns/xmlpatterns.pro
index 74678c3..8716b9a 100644
--- a/tests/auto/xmlpatterns/xmlpatterns.pro
+++ b/tests/auto/xmlpatterns/xmlpatterns.pro
@@ -1,6 +1,6 @@
TARGET = tst_xmlpatterns
CONFIG += testcase
-QT += testlib
+QT += network testlib
SOURCES += tst_xmlpatterns.cpp \
../qxmlquery/TestFundament.cpp