diff options
author | Janne Anttila <janne.anttila@digia.com> | 2009-09-09 10:16:17 (GMT) |
---|---|---|
committer | Janne Anttila <janne.anttila@digia.com> | 2009-09-09 10:16:17 (GMT) |
commit | d78717e7294f4b181c2f84f495bdda777069f6c2 (patch) | |
tree | 8b628a595da4cca2161cbd6781d40fd882de7725 /tests | |
parent | 22105c9952630b45fd6b50b0e3349880940a83f5 (diff) | |
download | Qt-d78717e7294f4b181c2f84f495bdda777069f6c2.zip Qt-d78717e7294f4b181c2f84f495bdda777069f6c2.tar.gz Qt-d78717e7294f4b181c2f84f495bdda777069f6c2.tar.bz2 |
Fix for E32User-Cbase 69 panic, when runnign QtNetwork autotests
Reviewed-by: Janne Koskinen
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/network-settings.h | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/tests/auto/network-settings.h b/tests/auto/network-settings.h index 1281d74..3a5bed7 100644 --- a/tests/auto/network-settings.h +++ b/tests/auto/network-settings.h @@ -46,6 +46,7 @@ #ifdef Q_OS_SYMBIAN +#include <e32base.h> #include <sys/socket.h> #include <net/if.h> #include <QSharedPointer> @@ -333,13 +334,21 @@ QByteArray QtNetworkSettings::imapExpectedReplySsl; class QtNetworkSettingsInitializerCode { public: QtNetworkSettingsInitializerCode() { - 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"); - } + // We have a non-trivial constructor in global static. + // The QtNetworkSettings::serverName() uses native API which assumes + // Cleanup-stack to exist. That's why we create it here and install + // top level TRAP harness. + CTrapCleanup *cleanupStack = q_check_ptr(CTrapCleanup::New()); + TRAPD(err, + 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"); + } + ) + delete cleanupStack; } }; QtNetworkSettingsInitializerCode qtNetworkSettingsInitializer; |