From 053362e604c98c229df57337ba7752d4d6b97fa8 Mon Sep 17 00:00:00 2001 From: Mattes D Date: Mon, 26 Jan 2015 14:46:20 +0100 Subject: Added network termination called at app exit. This fixes a crash in MSVC runtime caused by joining a thread in a global var's destructor. --- tests/Network/EchoServer.cpp | 14 +++++++++++++- tests/Network/Google.cpp | 15 ++++++++++++++- tests/Network/NameLookup.cpp | 12 +++++++++++- 3 files changed, 38 insertions(+), 3 deletions(-) (limited to 'tests/Network') diff --git a/tests/Network/EchoServer.cpp b/tests/Network/EchoServer.cpp index 728db0b7c..5f4b7651d 100644 --- a/tests/Network/EchoServer.cpp +++ b/tests/Network/EchoServer.cpp @@ -7,6 +7,7 @@ #include #include #include "OSSupport/Network.h" +#include "OSSupport/NetworkSingleton.h" @@ -98,7 +99,7 @@ class cEchoServerCallbacks: -int main() +void DoTest(void) { LOGD("EchoServer: starting up"); cServerHandlePtr Server = cNetwork::Listen(9876, std::make_shared()); @@ -119,9 +120,20 @@ int main() Server->Close(); ASSERT(!Server->IsListening()); LOGD("Server has been closed."); +} + + + + + +int main() +{ + DoTest(); printf("Press enter to exit test.\n"); + AString line; std::getline(std::cin, line); + cNetworkSingleton::Get().Terminate(); LOG("Network test finished."); return 0; diff --git a/tests/Network/Google.cpp b/tests/Network/Google.cpp index 2b8830c24..54bfa6de4 100644 --- a/tests/Network/Google.cpp +++ b/tests/Network/Google.cpp @@ -7,6 +7,7 @@ #include #include "OSSupport/Event.h" #include "OSSupport/Network.h" +#include "OSSupport/NetworkSingleton.h" @@ -96,7 +97,7 @@ public: -int main() +void DoTest(void) { cEvent evtFinish; @@ -109,7 +110,19 @@ int main() LOGD("Connect request has been queued."); evtFinish.Wait(); +} + + + + + +int main() +{ + DoTest(); + + cNetworkSingleton::Get().Terminate(); LOGD("Network test finished"); + return 0; } diff --git a/tests/Network/NameLookup.cpp b/tests/Network/NameLookup.cpp index 822a96baf..16fa8042b 100644 --- a/tests/Network/NameLookup.cpp +++ b/tests/Network/NameLookup.cpp @@ -7,6 +7,7 @@ #include #include "OSSupport/Event.h" #include "OSSupport/Network.h" +#include "OSSupport/NetworkSingleton.h" @@ -45,7 +46,7 @@ public: -int main() +void DoTest(void) { cEvent evtFinish; @@ -70,7 +71,16 @@ int main() LOGD("IP lookup has been successfully queued"); evtFinish.Wait(); LOGD("IP lookup finished."); +} + + + + +int main() +{ + DoTest(); + cNetworkSingleton::Get().Terminate(); LOGD("Network test finished"); return 0; } -- cgit v1.2.3