diff options
author | Jose <jose@zeroc.com> | 2018-06-01 17:41:03 +0200 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2018-06-01 17:41:03 +0200 |
commit | cbe92e540a7f02f0bdf93192424bd119189365b7 (patch) | |
tree | 411c50dc0ae9c669d31a940b1b4903b5deac4f12 /cpp | |
parent | Fixed Util.py check for binary installation directory on Windows (diff) | |
download | ice-cbe92e540a7f02f0bdf93192424bd119189365b7.tar.bz2 ice-cbe92e540a7f02f0bdf93192424bd119189365b7.tar.xz ice-cbe92e540a7f02f0bdf93192424bd119189365b7.zip |
Do not use Ice::Application for Ice testsuite
Diffstat (limited to 'cpp')
344 files changed, 4746 insertions, 7034 deletions
diff --git a/cpp/test/Common/Makefile.mk b/cpp/test/Common/Makefile.mk index 428e1dff20c..31a1cb44fa8 100644 --- a/cpp/test/Common/Makefile.mk +++ b/cpp/test/Common/Makefile.mk @@ -15,7 +15,7 @@ $(project)_caninstall := no # which don't support something like @loader_path. # TestCommon[shared]_targetdir := lib -TestCommon_dependencies := Ice +TestCommon_dependencies := IceSSL Ice TestCommon_cppflags := -DTEST_API_EXPORTS -I$(includedir) -I$(project) -Itest/include projects += $(project) diff --git a/cpp/test/Common/TestCommon.cpp b/cpp/test/Common/TestCommon.cpp deleted file mode 100644 index dabc7c298a9..00000000000 --- a/cpp/test/Common/TestCommon.cpp +++ /dev/null @@ -1,87 +0,0 @@ -// ********************************************************************** -// -// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved. -// -// This copy of Ice is licensed to you under the terms described in the -// ICE_LICENSE file included in this distribution. -// -// ********************************************************************** - -#include <TestCommon.h> - -#include <Ice/Communicator.h> - -std::string -getTestEndpoint(const Ice::CommunicatorPtr& communicator, int num, const std::string& protocol) -{ - return getTestEndpoint(communicator->getProperties(), num, protocol); -} - -std::string -getTestEndpoint(const Ice::PropertiesPtr& properties, int num, const std::string& prot) -{ - std::ostringstream ostr; - std::string protocol = prot; - if(protocol.empty()) - { - protocol = properties->getPropertyWithDefault("Ice.Default.Protocol", "default"); - } - - int basePort = properties->getPropertyAsIntWithDefault("Test.BasePort", 12010); - - if(protocol == "bt") - { - // - // For Bluetooth, there's no need to specify a port (channel) number. - // The client locates the server using its address and a UUID. - // - switch(num) - { - case 0: - ostr << "default -u 5e08f4de-5015-4507-abe1-a7807002db3d"; - break; - case 1: - ostr << "default -u dae56460-2485-46fd-a3ca-8b730e1e868b"; - break; - case 2: - ostr << "default -u 99e08bc6-fcda-4758-afd0-a8c00655c999"; - break; - default: - assert(false); - } - } - else - { - ostr << protocol << " -p " << (basePort + num); - } - return ostr.str(); -} - -std::string -getTestHost(const Ice::PropertiesPtr& properties) -{ - return properties->getPropertyWithDefault("Ice.Default.Host", "127.0.0.1"); -} - -std::string -getTestProtocol(const Ice::PropertiesPtr& properties) -{ - return properties->getPropertyWithDefault("Ice.Default.Protocol", "tcp"); -} - -int -getTestPort(const Ice::PropertiesPtr& properties, int num) -{ - return properties->getPropertyAsIntWithDefault("Test.BasePort", 12010) + num; -} - -Ice::InitializationData -getTestInitData(int& argc, char* argv[]) -{ - Ice::InitializationData initData; - initData.properties = Ice::createProperties(argc, argv); - Ice::StringSeq args = Ice::argsToStringSeq(argc, argv); - args = initData.properties->parseCommandLineOptions("Test", args); - Ice::stringSeqToArgs(args, argc, argv); - return initData; -} diff --git a/cpp/test/Common/TestHelper.cpp b/cpp/test/Common/TestHelper.cpp new file mode 100644 index 00000000000..abf6e13481a --- /dev/null +++ b/cpp/test/Common/TestHelper.cpp @@ -0,0 +1,270 @@ + +#include <TestHelper.h> +#include <Ice/RegisterPlugins.h> +#include <IceUtil/CtrlCHandler.h> + +using namespace std; +using namespace Test; + +namespace +{ + +IceUtil::Mutex* globalMutex = 0; +Test::TestHelper* instance = 0; +IceUtil::CtrlCHandler* ctrlCHandler = 0; + +class Init +{ +public: + + Init() + { + globalMutex = new IceUtil::Mutex; + } + + ~Init() + { + delete globalMutex; + globalMutex = 0; + if(ctrlCHandler) + { + delete ctrlCHandler; + ctrlCHandler = 0; + } + } +}; + +Init init; + +} + +Test::TestHelper::TestHelper(bool registerPlugins) +{ + { + IceUtilInternal::MutexPtrLock<IceUtil::Mutex> lock(globalMutex); + if(instance != 0) + { + throw runtime_error("only one instance of the Test::TestHelper class can be used"); + } + instance = this; + } + + if(registerPlugins) + { +#ifdef ICE_STATIC_LIBS + Ice::registerIceSSL(false); + Ice::registerIceWS(true); + Ice::registerIceUDP(true); +# ifdef ICE_HAS_BT + Ice::registerIceBT(false); +# endif +#endif + } + +#if defined(_WIN32) && !defined(ICE_OS_UWP) + _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE); + _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR); + + _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE); + _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR); + + _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE); + _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR); + + _set_abort_behavior(_CALL_REPORTFAULT, _CALL_REPORTFAULT); +#endif +} + +Test::TestHelper::~TestHelper() +{ +} + +void +Test::TestHelper::setControllerHelper(const ControllerHelperPtr& controllerHelper) +{ + assert(!_controllerHelper); + _controllerHelper = controllerHelper; +} + +string +Test::TestHelper::getTestEndpoint(const std::string& prot) +{ + assert(_communicator); + return getTestEndpoint(_communicator->getProperties(), 0, prot); +} + +string +Test::TestHelper::getTestEndpoint(int num, const std::string& prot) +{ + assert(_communicator); + return getTestEndpoint(_communicator->getProperties(), num, prot); +} + +std::string +Test::TestHelper::getTestEndpoint(const Ice::PropertiesPtr& properties, int num, const std::string& prot) +{ + std::ostringstream ostr; + std::string protocol = prot; + if(protocol.empty()) + { + protocol = properties->getPropertyWithDefault("Ice.Default.Protocol", "default"); + } + + int basePort = properties->getPropertyAsIntWithDefault("Test.BasePort", 12010); + + if(protocol == "bt") + { + // + // For Bluetooth, there's no need to specify a port (channel) number. + // The client locates the server using its address and a UUID. + // + switch(num) + { + case 0: + { + ostr << "default -u 5e08f4de-5015-4507-abe1-a7807002db3d"; + break; + } + case 1: + { + ostr << "default -u dae56460-2485-46fd-a3ca-8b730e1e868b"; + break; + } + case 2: + { + ostr << "default -u 99e08bc6-fcda-4758-afd0-a8c00655c999"; + break; + } + default: + { + assert(false); + } + } + } + else + { + ostr << protocol << " -p " << (basePort + num); + } + return ostr.str(); +} + +string +Test::TestHelper::getTestHost() +{ + assert(_communicator); + return getTestHost(_communicator->getProperties()); +} + +string +Test::TestHelper::getTestHost(const Ice::PropertiesPtr& properties) +{ + return properties->getPropertyWithDefault("Ice.Default.Host", "127.0.0.1"); +} + +string +Test::TestHelper::getTestProtocol() +{ + assert(_communicator); + return getTestProtocol(_communicator->getProperties()); +} + +string +Test::TestHelper::getTestProtocol(const Ice::PropertiesPtr& properties) +{ + return properties->getPropertyWithDefault("Ice.Default.Protocol", "tcp"); +} + +int +Test::TestHelper::getTestPort(int num) +{ + assert(_communicator); + return getTestPort(_communicator->getProperties(), num); +} + +int +Test::TestHelper::getTestPort(const Ice::PropertiesPtr& properties, int num) +{ + return properties->getPropertyAsIntWithDefault("Test.BasePort", 12010) + num; +} + +Ice::PropertiesPtr +Test::TestHelper::createTestProperties(int& argc, char* argv[]) +{ + Ice::PropertiesPtr properties = Ice::createProperties(argc, argv); + Ice::StringSeq args = Ice::argsToStringSeq(argc, argv); + args = properties->parseCommandLineOptions("Test", args); + args = properties->parseCommandLineOptions("TestAdapter", args); + Ice::stringSeqToArgs(args, argc, argv); + return properties; +} + +Ice::CommunicatorPtr +Test::TestHelper::initialize(int& argc, char* argv[], const Ice::PropertiesPtr& properties) +{ + Ice::InitializationData initData; + initData.properties = properties ? properties : createTestProperties(argc, argv); + return initialize(argc, argv, initData); +} + +Ice::CommunicatorPtr +Test::TestHelper::initialize(int& argc, char* argv[], Ice::InitializationData initData) +{ + IceUtil::Mutex::Lock lock(_mutex); + _communicator = Ice::initialize(argc, argv, initData); + return _communicator; +} + +Ice::CommunicatorPtr +Test::TestHelper::communicator() const +{ + return _communicator; +} + +void +Test::TestHelper::serverReady() +{ +#if defined(ICE_OS_UWP) || (TARGET_OS_IPHONE != 0) + assert(_controllerHelper); + _controllerHelper->serverReady(); +#endif +} + +void +Test::TestHelper::completed() +{ + IceUtil::Mutex::Lock lock(_mutex); + _communicator = ICE_NULLPTR; +} + +void +Test::TestHelper::shutdown() +{ + IceUtil::Mutex::Lock lock(_mutex); + if(_communicator) + { + _communicator->shutdown(); + } +} + +void +Test::TestHelper::shutdownOnInterruptCallback(int) +{ + if(instance) + { + instance->shutdown(); + } +} + +void +Test::TestHelper::shutdownOnInterrupt() +{ + { + IceUtilInternal::MutexPtrLock<IceUtil::Mutex> lock(globalMutex); + assert(!ctrlCHandler); + if(ctrlCHandler == 0) + { + ctrlCHandler = new IceUtil::CtrlCHandler(); + } + } + ctrlCHandler->setCallback(shutdownOnInterruptCallback); +} diff --git a/cpp/test/Common/msbuild/testcommon.vcxproj b/cpp/test/Common/msbuild/testcommon.vcxproj index ab29bdcdfce..345ba226039 100644 --- a/cpp/test/Common/msbuild/testcommon.vcxproj +++ b/cpp/test/Common/msbuild/testcommon.vcxproj @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="utf-8"?> +<?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Import Project="..\..\..\msbuild\packages\zeroc.icebuilder.msbuild.5.0.4\build\zeroc.icebuilder.msbuild.props" Condition="Exists('..\..\..\msbuild\packages\zeroc.icebuilder.msbuild.5.0.4\build\zeroc.icebuilder.msbuild.props')" /> <Import Project="..\..\..\msbuild\packages\zeroc.ice.v100.3.7.1\build\native\zeroc.ice.v100.props" Condition="Exists('..\..\..\msbuild\packages\zeroc.ice.v100.3.7.1\build\native\zeroc.ice.v100.props') and '$(ICE_BIN_DIST)' == 'all'" /> @@ -40,10 +40,13 @@ </ProjectConfiguration> </ItemGroup> <ItemGroup> - <ClCompile Include="..\TestCommon.cpp" /> + <None Include="packages.config" /> </ItemGroup> <ItemGroup> - <None Include="packages.config" /> + <ClCompile Include="..\TestHelper.cpp" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\..\include\TestHelper.h" /> </ItemGroup> <PropertyGroup Label="Globals"> <ProjectGuid>{C7223CC8-0AAA-470B-ACB3-12B9DE75525C}</ProjectGuid> diff --git a/cpp/test/Common/msbuild/testcommon.vcxproj.filters b/cpp/test/Common/msbuild/testcommon.vcxproj.filters index 6477d194f66..f94239df21d 100644 --- a/cpp/test/Common/msbuild/testcommon.vcxproj.filters +++ b/cpp/test/Common/msbuild/testcommon.vcxproj.filters @@ -76,11 +76,16 @@ </Filter> </ItemGroup> <ItemGroup> - <ClCompile Include="..\TestCommon.cpp"> + <None Include="packages.config" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\TestHelper.cpp"> <Filter>Source Files</Filter> </ClCompile> </ItemGroup> <ItemGroup> - <None Include="packages.config" /> + <ClInclude Include="..\..\include\TestHelper.h"> + <Filter>Header Files</Filter> + </ClInclude> </ItemGroup> </Project>
\ No newline at end of file diff --git a/cpp/test/Common/msbuild/uwp/testcommonuwp++11.vcxproj b/cpp/test/Common/msbuild/uwp/testcommonuwp++11.vcxproj index 378016159a6..04a3ff36b5c 100644 --- a/cpp/test/Common/msbuild/uwp/testcommonuwp++11.vcxproj +++ b/cpp/test/Common/msbuild/uwp/testcommonuwp++11.vcxproj @@ -143,15 +143,14 @@ </SliceCompile> </ItemDefinitionGroup> <ItemGroup> - <ClCompile Include="..\..\TestCommon.cpp" /> - </ItemGroup> - <ItemGroup> - <ClInclude Include="..\..\..\include\TestCommon.h" /> <ClInclude Include="..\..\..\include\TestHelper.h" /> </ItemGroup> <ItemGroup> <None Include="packages.config" /> </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\TestHelper.cpp" /> + </ItemGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild" Condition="'$(ICE_BIN_DIST)' == 'all'"> <PropertyGroup> diff --git a/cpp/test/Common/msbuild/uwp/testcommonuwp++11.vcxproj.filters b/cpp/test/Common/msbuild/uwp/testcommonuwp++11.vcxproj.filters index 2cb63d1f6c3..9eb3140b25d 100644 --- a/cpp/test/Common/msbuild/uwp/testcommonuwp++11.vcxproj.filters +++ b/cpp/test/Common/msbuild/uwp/testcommonuwp++11.vcxproj.filters @@ -67,14 +67,6 @@ </Filter> </ItemGroup> <ItemGroup> - <ClCompile Include="..\..\TestCommon.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - </ItemGroup> - <ItemGroup> - <ClInclude Include="..\..\..\include\TestCommon.h"> - <Filter>Header Files</Filter> - </ClInclude> <ClInclude Include="..\..\..\include\TestHelper.h"> <Filter>Header Files</Filter> </ClInclude> @@ -82,4 +74,9 @@ <ItemGroup> <None Include="packages.config" /> </ItemGroup> + <ItemGroup> + <ClCompile Include="..\..\TestHelper.cpp"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> </Project>
\ No newline at end of file diff --git a/cpp/test/Glacier2/application/Client.cpp b/cpp/test/Glacier2/application/Client.cpp index 7c3e273553d..baa357845ac 100644 --- a/cpp/test/Glacier2/application/Client.cpp +++ b/cpp/test/Glacier2/application/Client.cpp @@ -11,7 +11,7 @@ #include <Ice/Ice.h> #include <Glacier2/Glacier2.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <iostream> #include <iomanip> @@ -80,7 +80,8 @@ public: { cout << "testing Glacier2::Application restart... " << flush; } - Ice::ObjectPrxPtr base = communicator()->stringToProxy("callback:" + getTestEndpoint(communicator(), 0)); + Ice::ObjectPrxPtr base = communicator()->stringToProxy( + "callback:" + TestHelper::getTestEndpoint(communicator()->getProperties())); CallbackPrxPtr callback = ICE_UNCHECKED_CAST(CallbackPrx, base); if(++_restart < 5) { @@ -110,24 +111,34 @@ public: } // anonymous namespace end -int -main(int argc, char* argv[]) +class Client : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Client::run(int argc, char** argv) { -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif Application app; - Ice::InitializationData initData = getTestInitData(argc, argv); + Ice::InitializationData initData; + initData.properties = createTestProperties(argc, argv); initData.properties->setProperty("Ice.Warn.Connections", "0"); - initData.properties->setProperty("Ice.Default.Router", "Glacier2/router:" + getTestEndpoint(initData.properties, 50)); + initData.properties->setProperty("Ice.Default.Router", + "Glacier2/router:" + TestHelper::getTestEndpoint(initData.properties, 50)); int status = app.main(argc, argv, initData); + if(status != 0) + { + test(false); + } initData.properties->setProperty("Ice.Default.Router", ""); - Ice::CommunicatorPtr communicator = Ice::initialize(initData); + + Ice::CommunicatorHolder communicator = initialize(argc, argv, initData); cout << "testing stringToProxy for process object... " << flush; - Ice::ObjectPrxPtr processBase = communicator->stringToProxy("Glacier2/admin -f Process:" + getTestEndpoint(communicator, 51)); + Ice::ObjectPrxPtr processBase = communicator->stringToProxy("Glacier2/admin -f Process:" + getTestEndpoint(51)); cout << "ok" << endl; cout << "testing checked cast for admin object... " << flush; @@ -137,6 +148,7 @@ main(int argc, char* argv[]) cout << "testing Glacier2 shutdown... " << flush; process->shutdown(); + try { process->ice_ping(); @@ -149,7 +161,6 @@ main(int argc, char* argv[]) test(app._restart == 5); test(app._destroyed); - - communicator->destroy(); - return status; } + +DEFINE_TEST(Client) diff --git a/cpp/test/Glacier2/application/Server.cpp b/cpp/test/Glacier2/application/Server.cpp index c217ddc2571..ec995070fb6 100644 --- a/cpp/test/Glacier2/application/Server.cpp +++ b/cpp/test/Glacier2/application/Server.cpp @@ -9,7 +9,7 @@ #include <IceUtil/IceUtil.h> #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Callback.h> using namespace std; @@ -18,13 +18,6 @@ using namespace Test; namespace { -class Server : public Ice::Application -{ -public: - - virtual int run(int, char*[]); -}; - class CallbackI : public Callback { @@ -45,29 +38,25 @@ public: } -int -Server::run(int, char**) +class Server : public Test::TestHelper { - communicator()->getProperties()->setProperty("DeactivatedAdapter.Endpoints", getTestEndpoint(communicator(), 1)); - communicator()->createObjectAdapter("DeactivatedAdapter"); +public: - communicator()->getProperties()->setProperty("CallbackAdapter.Endpoints", getTestEndpoint(communicator(), 0)); - Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("CallbackAdapter"); + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->setProperty("DeactivatedAdapter.Endpoints", getTestEndpoint(1)); + communicator->createObjectAdapter("DeactivatedAdapter"); + + communicator->getProperties()->setProperty("CallbackAdapter.Endpoints", getTestEndpoint()); + Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("CallbackAdapter"); adapter->add(ICE_MAKE_SHARED(CallbackI), Ice::stringToIdentity("callback")); adapter->activate(); - communicator()->waitForShutdown(); - - return EXIT_SUCCESS; + communicator->waitForShutdown(); } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - Server app; - Ice::InitializationData initData = getTestInitData(argc, argv); - return app.main(argc, argv, initData); -} +DEFINE_TEST(Server) diff --git a/cpp/test/Glacier2/attack/Client.cpp b/cpp/test/Glacier2/attack/Client.cpp index 8c9fc0533ed..13258114a64 100644 --- a/cpp/test/Glacier2/attack/Client.cpp +++ b/cpp/test/Glacier2/attack/Client.cpp @@ -11,43 +11,36 @@ #include <Ice/Ice.h> #include <Glacier2/Router.h> #include <Backend.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <set> using namespace std; using namespace Ice; using namespace Test; -class AttackClient : public Application +class AttackClient : public Test::TestHelper { public: - virtual int run(int, char*[]); + void run(int, char**); }; -int -main(int argc, char* argv[]) +void +AttackClient::run(int argc, char** argv) { - Ice::InitializationData initData = getTestInitData(argc, argv); - + Ice::PropertiesPtr properties = createTestProperties(argc, argv); // // We want to check whether the client retries for evicted // proxies, even with regular retries disabled. // - initData.properties->setProperty("Ice.RetryIntervals", "-1"); - - AttackClient app; - return app.main(argc, argv, initData); -} + properties->setProperty("Ice.RetryIntervals", "-1"); -int -AttackClient::run(int, char**) -{ + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); cout << "getting router... " << flush; - ObjectPrx routerBase = communicator()->stringToProxy("Glacier2/router:" + getTestEndpoint(communicator(), 50)); + ObjectPrx routerBase = communicator->stringToProxy("Glacier2/router:" + getTestEndpoint(50)); Glacier2::RouterPrx router = Glacier2::RouterPrx::checkedCast(routerBase); test(router); - communicator()->setDefaultRouter(router); + communicator->setDefaultRouter(router); cout << "ok" << endl; cout << "creating session... " << flush; @@ -55,7 +48,7 @@ AttackClient::run(int, char**) cout << "ok" << endl; cout << "making thousands of invocations on proxies... " << flush; - ObjectPrx backendBase = communicator()->stringToProxy("dummy:" + getTestEndpoint(communicator(), 0)); + ObjectPrx backendBase = communicator->stringToProxy("dummy:" + getTestEndpoint()); BackendPrx backend = BackendPrx::uncheckedCast(backendBase); backend->ice_ping(); @@ -112,9 +105,8 @@ AttackClient::run(int, char**) cout << "testing server and router shutdown... " << flush; backend->shutdown(); - communicator()->setDefaultRouter(0); - ObjectPrx adminBase = communicator()->stringToProxy("Glacier2/admin -f Process:" + - getTestEndpoint(communicator(), 51)); + communicator->setDefaultRouter(0); + ObjectPrx adminBase = communicator->stringToProxy("Glacier2/admin -f Process:" + getTestEndpoint(51)); Ice::ProcessPrx process = Ice::ProcessPrx::checkedCast(adminBase); test(process); process->shutdown(); @@ -127,6 +119,6 @@ AttackClient::run(int, char**) { cout << "ok" << endl; } - - return EXIT_SUCCESS; } + +DEFINE_TEST(AttackClient) diff --git a/cpp/test/Glacier2/attack/Server.cpp b/cpp/test/Glacier2/attack/Server.cpp index 1b9cfa25b09..f8d83394b75 100644 --- a/cpp/test/Glacier2/attack/Server.cpp +++ b/cpp/test/Glacier2/attack/Server.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <BackendI.h> using namespace std; @@ -42,28 +42,22 @@ private: BackendPtr _backend; }; -class BackendServer : public Application +class BackendServer : public Test::TestHelper { public: - virtual int run(int, char*[]); + void run(int, char**); }; -int -main(int argc, char* argv[]) +void +BackendServer::run(int argc, char** argv) { - BackendServer app; - Ice::InitializationData initData = getTestInitData(argc, argv); - return app.main(argc, argv, initData); -} - -int -BackendServer::run(int, char**) -{ - communicator()->getProperties()->setProperty("BackendAdapter.Endpoints", getTestEndpoint(communicator(), 0)); - ObjectAdapterPtr adapter = communicator()->createObjectAdapter("BackendAdapter"); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->setProperty("BackendAdapter.Endpoints", getTestEndpoint()); + ObjectAdapterPtr adapter = communicator->createObjectAdapter("BackendAdapter"); adapter->addServantLocator(new ServantLocatorI, ""); adapter->activate(); - communicator()->waitForShutdown(); - return EXIT_SUCCESS; + communicator->waitForShutdown(); } + +DEFINE_TEST(BackendServer) diff --git a/cpp/test/Glacier2/dynamicFiltering/Client.cpp b/cpp/test/Glacier2/dynamicFiltering/Client.cpp index 3f015d288b8..7b29984cf84 100644 --- a/cpp/test/Glacier2/dynamicFiltering/Client.cpp +++ b/cpp/test/Glacier2/dynamicFiltering/Client.cpp @@ -10,49 +10,42 @@ #include <Ice/Ice.h> #include <Glacier2/Router.h> #include <Test.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace Ice; using namespace Test; -class SessionControlClient : public Application +class SessionControlClient : public Test::TestHelper { public: - virtual int run(int, char*[]); + void run(int, char**); }; -int -main(int argc, char* argv[]) +void +SessionControlClient::run(int argc, char** argv) { - SessionControlClient app; - - Ice::InitializationData initData = getTestInitData(argc, argv); - + Ice::PropertiesPtr properties = createTestProperties(argc, argv); // // We want to check whether the client retries for evicted // proxies, even with regular retries disabled. // - initData.properties->setProperty("Ice.RetryIntervals", "-1"); - initData.properties->setProperty("Ice.Warn.Connections", "0"); + properties->setProperty("Ice.RetryIntervals", "-1"); + properties->setProperty("Ice.Warn.Connections", "0"); - return app.main(argc, argv, initData); -} + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); -int -SessionControlClient::run(int argc, char* argv[]) -{ // // We initialize the controller on a separate port because we want // to bypass the router for test control operations. // cout << "accessing test controller... " << flush; Ice::InitializationData initData; - initData.properties = communicator()->getProperties(); + initData.properties = communicator->getProperties(); Ice::CommunicatorPtr controlComm = Ice::initialize(argc, argv, initData); TestControllerPrx controller = TestControllerPrx::checkedCast( - controlComm->stringToProxy("testController:" + getTestEndpoint(communicator(), 2, "tcp"))); + controlComm->stringToProxy("testController:" + getTestEndpoint(2, "tcp"))); test(controller); TestToken currentState; TestToken newState; @@ -65,10 +58,10 @@ SessionControlClient::run(int argc, char* argv[]) cout << "ok" << endl; cout << "getting router... " << flush; - ObjectPrx routerBase = communicator()->stringToProxy("Glacier2/router:" + getTestEndpoint(communicator(), 50)); + ObjectPrx routerBase = communicator->stringToProxy("Glacier2/router:" + getTestEndpoint(50)); Glacier2::RouterPrx router = Glacier2::RouterPrx::checkedCast(routerBase); test(router); - communicator()->setDefaultRouter(router); + communicator->setDefaultRouter(router); cout << "ok" << endl; Glacier2::SessionPrx sessionBase = router->createSession("userid", "abc123"); @@ -104,7 +97,7 @@ SessionControlClient::run(int argc, char* argv[]) if(currentState.expectedResult) { - BackendPrx prx = BackendPrx::uncheckedCast(communicator()->stringToProxy(currentState.testReference)); + BackendPrx prx = BackendPrx::uncheckedCast(communicator->stringToProxy(currentState.testReference)); try { prx->check(); @@ -117,7 +110,7 @@ SessionControlClient::run(int argc, char* argv[]) } else { - BackendPrx prx = BackendPrx::uncheckedCast(communicator()->stringToProxy(currentState.testReference)); + BackendPrx prx = BackendPrx::uncheckedCast(communicator->stringToProxy(currentState.testReference)); try { prx->check(); @@ -158,9 +151,8 @@ SessionControlClient::run(int argc, char* argv[]) // // Shut down the router. // - communicator()->setDefaultRouter(0); - ObjectPrx processBase = communicator()->stringToProxy("Glacier2/admin -f Process:" + - getTestEndpoint(communicator(), 51)); + communicator->setDefaultRouter(0); + ObjectPrx processBase = communicator->stringToProxy("Glacier2/admin -f Process:" + getTestEndpoint(51)); Ice::ProcessPrx process = Ice::ProcessPrx::checkedCast(processBase); test(process); process->shutdown(); @@ -183,6 +175,6 @@ SessionControlClient::run(int argc, char* argv[]) cerr << ex << endl; test(false); } - - return EXIT_SUCCESS; } + +DEFINE_TEST(SessionControlClient) diff --git a/cpp/test/Glacier2/dynamicFiltering/Server.cpp b/cpp/test/Glacier2/dynamicFiltering/Server.cpp index c79ffb59c6d..a8cac22cdc2 100644 --- a/cpp/test/Glacier2/dynamicFiltering/Server.cpp +++ b/cpp/test/Glacier2/dynamicFiltering/Server.cpp @@ -10,7 +10,7 @@ #include <Ice/Ice.h> #include <Ice/Locator.h> #include <Glacier2/PermissionsVerifier.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestControllerI.h> #include <SessionI.h> #include <BackendI.h> @@ -112,24 +112,17 @@ private: BackendPtr _backend; }; -class SessionControlServer : public Application +class SessionControlServer : public Test::TestHelper { public: - virtual int run(int, char*[]); + void run(int, char**); }; -int -main(int argc, char* argv[]) -{ - SessionControlServer app; - Ice::InitializationData initData = getTestInitData(argc, argv); - return app.main(argc, argv, initData); -} - -int -SessionControlServer::run(int, char*[]) +void +SessionControlServer::run(int argc, char** argv) { + Ice::CommunicatorHolder communicator = initialize(argc, argv); // // The server requires 3 separate server endpoints. One for the test // controller that will coordinate the tests and the required @@ -141,27 +134,27 @@ SessionControlServer::run(int, char*[]) // servant, allowing us to use any reference as long as the client // expects to use a proxy for the correct type of object. // - communicator()->getProperties()->setProperty("TestControllerAdapter.Endpoints", - getTestEndpoint(communicator(), 2, "tcp")); - ObjectAdapterPtr controllerAdapter = communicator()->createObjectAdapter("TestControllerAdapter"); - TestControllerIPtr controller = new TestControllerI(getTestEndpoint(communicator(), 1)); + communicator->getProperties()->setProperty("TestControllerAdapter.Endpoints", getTestEndpoint(2, "tcp")); + ObjectAdapterPtr controllerAdapter = communicator->createObjectAdapter("TestControllerAdapter"); + TestControllerIPtr controller = new TestControllerI(getTestEndpoint(1)); controllerAdapter->add(controller, Ice::stringToIdentity("testController")); controllerAdapter->activate(); - communicator()->getProperties()->setProperty("SessionControlAdapter.Endpoints", getTestEndpoint(communicator(), 0)); - ObjectAdapterPtr adapter = communicator()->createObjectAdapter("SessionControlAdapter"); + communicator->getProperties()->setProperty("SessionControlAdapter.Endpoints", getTestEndpoint()); + ObjectAdapterPtr adapter = communicator->createObjectAdapter("SessionControlAdapter"); adapter->add(new SessionManagerI(controller), Ice::stringToIdentity("SessionManager")); adapter->activate(); BackendPtr backend = new BackendI; - communicator()->getProperties()->setProperty("BackendAdapter.Endpoints", getTestEndpoint(communicator(), 1)); - ObjectAdapterPtr backendAdapter = communicator()->createObjectAdapter("BackendAdapter"); + communicator->getProperties()->setProperty("BackendAdapter.Endpoints", getTestEndpoint(1)); + ObjectAdapterPtr backendAdapter = communicator->createObjectAdapter("BackendAdapter"); backendAdapter->addServantLocator(new ServantLocatorI(backend), ""); backendAdapter->activate(); Ice::LocatorPtr locator = new ServerLocatorI(backend, backendAdapter); backendAdapter->add(locator, Ice::stringToIdentity("locator")); - communicator()->waitForShutdown(); - return EXIT_SUCCESS; + communicator->waitForShutdown(); } + +DEFINE_TEST(SessionControlServer) diff --git a/cpp/test/Glacier2/dynamicFiltering/TestControllerI.cpp b/cpp/test/Glacier2/dynamicFiltering/TestControllerI.cpp index e2ee8b3c0de..265c0c66ebb 100644 --- a/cpp/test/Glacier2/dynamicFiltering/TestControllerI.cpp +++ b/cpp/test/Glacier2/dynamicFiltering/TestControllerI.cpp @@ -9,7 +9,7 @@ #include <Ice/Ice.h> #include <TestControllerI.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <vector> #include <string> diff --git a/cpp/test/Glacier2/override/CallbackI.cpp b/cpp/test/Glacier2/override/CallbackI.cpp index 793e7f062ff..12e2c414d44 100644 --- a/cpp/test/Glacier2/override/CallbackI.cpp +++ b/cpp/test/Glacier2/override/CallbackI.cpp @@ -9,7 +9,7 @@ #include <Ice/Ice.h> #include <CallbackI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace Ice; diff --git a/cpp/test/Glacier2/override/Client.cpp b/cpp/test/Glacier2/override/Client.cpp index 97c2bd9b996..260cc3047f4 100644 --- a/cpp/test/Glacier2/override/Client.cpp +++ b/cpp/test/Glacier2/override/Client.cpp @@ -10,44 +10,33 @@ #include <IceUtil/IceUtil.h> #include <Ice/Ice.h> #include <Glacier2/Router.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <CallbackI.h> using namespace std; using namespace Ice; using namespace Test; -class CallbackClient : public Application +class CallbackClient : public Test::TestHelper { public: - virtual int run(int, char*[]); + void run(int, char**); }; -int -main(int argc, char* argv[]) +void +CallbackClient::run(int argc, char** argv) { - // - // We must disable connection warnings, because we attempt to ping - // the router before session establishment, as well as after - // session destruction. Both will cause a ConnectionLostException. - // - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Warn.Connections", "0"); - initData.properties->setProperty("Ice.ThreadPool.Client.Serialize", "1"); - - CallbackClient app; - return app.main(argc, argv, initData); -} + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Warn.Connections", "0"); + properties->setProperty("Ice.ThreadPool.Client.Serialize", "1"); -int -CallbackClient::run(int, char**) -{ - ObjectPrx routerBase = communicator()->stringToProxy("Glacier2/router:" + getTestEndpoint(communicator(), 50)); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + ObjectPrx routerBase = communicator->stringToProxy("Glacier2/router:" + getTestEndpoint(50)); Glacier2::RouterPrx router = Glacier2::RouterPrx::checkedCast(routerBase); - communicator()->setDefaultRouter(router); + communicator->setDefaultRouter(router); - ObjectPrx base = communicator()->stringToProxy("c/callback:" + getTestEndpoint(communicator(), 0)); + ObjectPrx base = communicator->stringToProxy("c/callback:" + getTestEndpoint()); Glacier2::SessionPrx session = router->createSession("userid", "abc123"); base->ice_ping(); @@ -55,8 +44,8 @@ CallbackClient::run(int, char**) CallbackPrx oneway = twoway->ice_oneway(); CallbackPrx batchOneway = twoway->ice_batchOneway(); - communicator()->getProperties()->setProperty("Ice.PrintAdapterReady", "0"); - ObjectAdapterPtr adapter = communicator()->createObjectAdapterWithRouter("CallbackReceiverAdapter", router); + communicator->getProperties()->setProperty("Ice.PrintAdapterReady", "0"); + ObjectAdapterPtr adapter = communicator->createObjectAdapterWithRouter("CallbackReceiverAdapter", router); adapter->activate(); string category = router->getCategoryForClient(); @@ -205,9 +194,8 @@ CallbackClient::run(int, char**) test(false); } - communicator()->setDefaultRouter(0); - ObjectPrx processBase = communicator()->stringToProxy("Glacier2/admin -f Process:" + - getTestEndpoint(communicator(), 51)); + communicator->setDefaultRouter(0); + ObjectPrx processBase = communicator->stringToProxy("Glacier2/admin -f Process:" + getTestEndpoint(51)); Ice::ProcessPrx process = Ice::ProcessPrx::checkedCast(processBase); process->shutdown(); try @@ -220,5 +208,6 @@ CallbackClient::run(int, char**) cout << "ok" << endl; } } - return EXIT_SUCCESS; } + +DEFINE_TEST(CallbackClient) diff --git a/cpp/test/Glacier2/override/Server.cpp b/cpp/test/Glacier2/override/Server.cpp index cb959606707..86e25082b87 100644 --- a/cpp/test/Glacier2/override/Server.cpp +++ b/cpp/test/Glacier2/override/Server.cpp @@ -8,40 +8,34 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <CallbackI.h> using namespace std; using namespace Ice; using namespace Test; -class CallbackServer : public Application +class CallbackServer : public Test::TestHelper { public: - virtual int run(int, char*[]); + void run(int, char**); }; -int -main(int argc, char* argv[]) +void +CallbackServer::run(int argc, char** argv) { - Ice::InitializationData initData = getTestInitData(argc, argv); - - initData.properties->setProperty("Ice.Warn.Connections", "0"); - initData.properties->setProperty("Ice.Warn.Dispatch", "0"); - initData.properties->setProperty("Ice.ThreadPool.Server.Serialize", "1"); - - CallbackServer app; - return app.main(argc, argv, initData); -} - -int -CallbackServer::run(int, char**) -{ - communicator()->getProperties()->setProperty("CallbackAdapter.Endpoints", getTestEndpoint(communicator(), 0)); - ObjectAdapterPtr adapter = communicator()->createObjectAdapter("CallbackAdapter"); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Warn.Connections", "0"); + properties->setProperty("Ice.Warn.Dispatch", "0"); + properties->setProperty("Ice.ThreadPool.Server.Serialize", "1"); + + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + communicator->getProperties()->setProperty("CallbackAdapter.Endpoints", getTestEndpoint()); + ObjectAdapterPtr adapter = communicator->createObjectAdapter("CallbackAdapter"); adapter->add(new CallbackI(), Ice::stringToIdentity("c/callback")); adapter->activate(); - communicator()->waitForShutdown(); - return EXIT_SUCCESS; + communicator->waitForShutdown(); } + +DEFINE_TEST(CallbackServer) diff --git a/cpp/test/Glacier2/router/CallbackI.cpp b/cpp/test/Glacier2/router/CallbackI.cpp index ce3246982d9..528836a507c 100644 --- a/cpp/test/Glacier2/router/CallbackI.cpp +++ b/cpp/test/Glacier2/router/CallbackI.cpp @@ -9,7 +9,7 @@ #include <Ice/Ice.h> #include <CallbackI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace Ice; diff --git a/cpp/test/Glacier2/router/Client.cpp b/cpp/test/Glacier2/router/Client.cpp index 4a43a449f82..62e8c06afcf 100644 --- a/cpp/test/Glacier2/router/Client.cpp +++ b/cpp/test/Glacier2/router/Client.cpp @@ -11,7 +11,7 @@ #include <IceUtil/IceUtil.h> #include <Ice/Ice.h> #include <Glacier2/Router.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <CallbackI.h> using namespace std; @@ -82,7 +82,8 @@ public: void run() { CommunicatorPtr communicator = initialize(initData); - ObjectPrx routerBase = communicator->stringToProxy("Glacier2/router:" + getTestEndpoint(communicator, 50)); + ObjectPrx routerBase = communicator->stringToProxy( + "Glacier2/router:" + TestHelper::getTestEndpoint(communicator->getProperties(), 50)); Glacier2::RouterPrx router = Glacier2::RouterPrx::checkedCast(routerBase); communicator->setDefaultRouter(router); @@ -109,7 +110,8 @@ public: ident.category = category; CallbackReceiverPrx receiver = CallbackReceiverPrx::uncheckedCast(adapter->add(_callbackReceiver, ident)); - ObjectPrx base = communicator->stringToProxy("c1/callback:" + getTestEndpoint(communicator, 0)); + ObjectPrx base = communicator->stringToProxy( + "c1/callback:" + TestHelper::getTestEndpoint(communicator->getProperties())); base = base->ice_oneway(); CallbackPrx callback = CallbackPrx::uncheckedCast(base); @@ -188,7 +190,8 @@ public: void run() { CommunicatorPtr communicator = initialize(initData); - ObjectPrx routerBase = communicator->stringToProxy("Glacier2/router:" + getTestEndpoint(communicator, 50)); + ObjectPrx routerBase = communicator->stringToProxy( + "Glacier2/router:" + TestHelper::getTestEndpoint(communicator->getProperties(), 50)); _router = Glacier2::RouterPrx::checkedCast(routerBase); communicator->setDefaultRouter(_router); @@ -206,7 +209,8 @@ public: ident.category = category; CallbackReceiverPrx receiver = CallbackReceiverPrx::uncheckedCast(adapter->add(_callbackReceiver, ident)); - ObjectPrx base = communicator->stringToProxy("c1/callback:" + getTestEndpoint(communicator, 0)); + ObjectPrx base = communicator->stringToProxy( + "c1/callback:" + TestHelper::getTestEndpoint(communicator->getProperties())); base = base->ice_oneway(); CallbackPrx callback = CallbackPrx::uncheckedCast(base); @@ -408,36 +412,29 @@ public: } }; -class CallbackClient : public Application +class CallbackClient : public Test::TestHelper { public: - virtual int run(int, char*[]); + void run(int, char**); }; -int -main(int argc, char* argv[]) +void +CallbackClient::run(int argc, char** argv) { // // We must disable connection warnings, because we attempt to ping // the router before session establishment, as well as after // session destruction. Both will cause a ConnectionLostException. // - initData = getTestInitData(argc, argv); + initData.properties = createTestProperties(argc, argv); initData.properties->setProperty("Ice.Warn.Connections", "0"); - CallbackClient app; - return app.main(argc, argv, initData); -} - -int -CallbackClient::run(int argc, char* argv[]) -{ + Ice::CommunicatorHolder communicator = initialize(argc, argv, initData); ObjectPrx routerBase; - { cout << "testing stringToProxy for router... " << flush; - routerBase = communicator()->stringToProxy("Glacier2/router:" + getTestEndpoint(communicator(), 50)); + routerBase = communicator->stringToProxy("Glacier2/router:" + getTestEndpoint(50)); cout << "ok" << endl; } @@ -453,15 +450,14 @@ CallbackClient::run(int argc, char* argv[]) { cout << "testing router finder... " << flush; Ice::RouterFinderPrx finder = - RouterFinderPrx::uncheckedCast(communicator()->stringToProxy("Ice/RouterFinder:" + - getTestEndpoint(communicator(), 50))); + RouterFinderPrx::uncheckedCast(communicator->stringToProxy("Ice/RouterFinder:" + getTestEndpoint(50))); test(finder->getRouter()->ice_getIdentity() == router->ice_getIdentity()); cout << "ok" << endl; } { cout << "installing router with communicator... " << flush; - communicator()->setDefaultRouter(router); + communicator->setDefaultRouter(router); cout << "ok" << endl; } @@ -476,7 +472,7 @@ CallbackClient::run(int argc, char* argv[]) { cout << "testing stringToProxy for server object... " << flush; - base = communicator()->stringToProxy("c1/callback:" + getTestEndpoint(communicator(), 0)); + base = communicator->stringToProxy("c1/callback:" + getTestEndpoint()); cout << "ok" << endl; } @@ -556,7 +552,7 @@ CallbackClient::run(int argc, char* argv[]) { cout << "pinging object with client endpoint... " << flush; - Ice::ObjectPrx baseC = communicator()->stringToProxy("collocated:" + getTestEndpoint(communicator(), 50)); + Ice::ObjectPrx baseC = communicator->stringToProxy("collocated:" + getTestEndpoint(50)); try { baseC->ice_ping(); @@ -580,8 +576,8 @@ CallbackClient::run(int argc, char* argv[]) { cout << "creating and activating callback receiver adapter with router... " << flush; - communicator()->getProperties()->setProperty("Ice.PrintAdapterReady", "0"); - adapter = communicator()->createObjectAdapterWithRouter("CallbackReceiverAdapter", router); + communicator->getProperties()->setProperty("Ice.PrintAdapterReady", "0"); + adapter = communicator->createObjectAdapterWithRouter("CallbackReceiverAdapter", router); adapter->activate(); cout << "ok" << endl; } @@ -910,7 +906,7 @@ CallbackClient::run(int argc, char* argv[]) { { cout << "uninstalling router with communicator... " << flush; - communicator()->setDefaultRouter(0); + communicator->setDefaultRouter(0); cout << "ok" << endl; } @@ -918,8 +914,7 @@ CallbackClient::run(int argc, char* argv[]) { cout << "testing stringToProxy for admin process facet... " << flush; - processBase = communicator()->stringToProxy("Glacier2/admin -f Process:" + - getTestEndpoint(communicator(), 51)); + processBase = communicator->stringToProxy("Glacier2/admin -f Process:" + getTestEndpoint(51)); cout << "ok" << endl; } @@ -944,6 +939,6 @@ CallbackClient::run(int argc, char* argv[]) cout << "ok" << endl; } } - - return EXIT_SUCCESS; } + +DEFINE_TEST(CallbackClient) diff --git a/cpp/test/Glacier2/router/Server.cpp b/cpp/test/Glacier2/router/Server.cpp index 0c645beabba..4a4f6305831 100644 --- a/cpp/test/Glacier2/router/Server.cpp +++ b/cpp/test/Glacier2/router/Server.cpp @@ -8,42 +8,35 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <CallbackI.h> using namespace std; using namespace Ice; using namespace Test; -class CallbackServer : public Application +class CallbackServer : public Test::TestHelper { public: - virtual int run(int, char*[]); + void run(int, char**); }; -int -main(int argc, char* argv[]) +void +CallbackServer::run(int argc, char** argv) { - Ice::InitializationData initData = getTestInitData(argc, argv); - - initData.properties->setProperty("Ice.Warn.Connections", "0"); - initData.properties->setProperty("Ice.Warn.Dispatch", "0"); - - CallbackServer app; - return app.main(argc, argv, initData); -} - -int -CallbackServer::run(int, char**) -{ - communicator()->getProperties()->setProperty("CallbackAdapter.Endpoints", getTestEndpoint(communicator(), 0)); - ObjectAdapterPtr adapter = communicator()->createObjectAdapter("CallbackAdapter"); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Warn.Connections", "0"); + properties->setProperty("Ice.Warn.Dispatch", "0"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + communicator->getProperties()->setProperty("CallbackAdapter.Endpoints", getTestEndpoint()); + ObjectAdapterPtr adapter = communicator->createObjectAdapter("CallbackAdapter"); adapter->add(new CallbackI(), Ice::stringToIdentity("c1/callback")); // The test allows "c1" as category. adapter->add(new CallbackI(), Ice::stringToIdentity("c2/callback")); // The test allows "c2" as category. adapter->add(new CallbackI(), Ice::stringToIdentity("c3/callback")); // The test rejects "c3" as category. adapter->add(new CallbackI(), Ice::stringToIdentity("_userid/callback")); // The test allows the prefixed userid. adapter->activate(); - communicator()->waitForShutdown(); - return EXIT_SUCCESS; + communicator->waitForShutdown(); } + +DEFINE_TEST(CallbackServer) diff --git a/cpp/test/Glacier2/sessionControl/Client.cpp b/cpp/test/Glacier2/sessionControl/Client.cpp index 13becddbe3e..1d21bcf54fb 100644 --- a/cpp/test/Glacier2/sessionControl/Client.cpp +++ b/cpp/test/Glacier2/sessionControl/Client.cpp @@ -10,44 +10,39 @@ #include <Ice/Ice.h> #include <Glacier2/Router.h> #include <Session.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <set> using namespace std; using namespace Ice; using namespace Test; -class SessionControlClient : public Application +class SessionControlClient : public Test::TestHelper { public: - virtual int run(int, char*[]); + void run(int, char**); }; -int -main(int argc, char* argv[]) +void +SessionControlClient::run(int argc, char** argv) { - Ice::InitializationData initData = getTestInitData(argc, argv); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); // // We want to check whether the client retries for evicted // proxies, even with regular retries disabled. // - initData.properties->setProperty("Ice.RetryIntervals", "-1"); - initData.properties->setProperty("Ice.Warn.Connections", "0"); + properties->setProperty("Ice.RetryIntervals", "-1"); + properties->setProperty("Ice.Warn.Connections", "0"); - SessionControlClient app; - return app.main(argc, argv, initData); -} + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); -int -SessionControlClient::run(int, char**) -{ cout << "getting router... " << flush; - ObjectPrx routerBase = communicator()->stringToProxy("Glacier2/router:" + getTestEndpoint(communicator(), 50)); + ObjectPrx routerBase = communicator->stringToProxy("Glacier2/router:" + getTestEndpoint(50)); Glacier2::RouterPrx router = Glacier2::RouterPrx::checkedCast(routerBase); test(router); - communicator()->setDefaultRouter(router); + communicator->setDefaultRouter(router); cout << "ok" << endl; cout << "creating session... " << flush; @@ -97,9 +92,8 @@ SessionControlClient::run(int, char**) cout << "testing shutdown... " << flush; session = Test::SessionPrx::uncheckedCast(router->createSession("userid", "abc123")); session->shutdown(); - communicator()->setDefaultRouter(0); - ObjectPrx processBase = communicator()->stringToProxy("Glacier2/admin -f Process:" + - getTestEndpoint(communicator(), 51)); + communicator->setDefaultRouter(0); + ObjectPrx processBase = communicator->stringToProxy("Glacier2/admin -f Process:" + getTestEndpoint(51)); Ice::ProcessPrx process = Ice::ProcessPrx::checkedCast(processBase); test(process); process->shutdown(); @@ -112,6 +106,6 @@ SessionControlClient::run(int, char**) { cout << "ok" << endl; } - - return EXIT_SUCCESS; } + +DEFINE_TEST(SessionControlClient) diff --git a/cpp/test/Glacier2/sessionControl/Server.cpp b/cpp/test/Glacier2/sessionControl/Server.cpp index 62feb0d45de..39b485c2ba3 100644 --- a/cpp/test/Glacier2/sessionControl/Server.cpp +++ b/cpp/test/Glacier2/sessionControl/Server.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Glacier2/PermissionsVerifier.h> #include <SessionI.h> @@ -16,28 +16,22 @@ using namespace std; using namespace Ice; using namespace Test; -class SessionControlServer : public Application +class SessionControlServer : public Test::TestHelper { public: - virtual int run(int, char*[]); + void run(int, char**); }; -int -main(int argc, char* argv[]) +void +SessionControlServer::run(int argc, char** argv) { - SessionControlServer app; - Ice::InitializationData initData = getTestInitData(argc, argv); - return app.main(argc, argv, initData); -} - -int -SessionControlServer::run(int, char**) -{ - communicator()->getProperties()->setProperty("SessionControlAdapter.Endpoints", getTestEndpoint(communicator(), 0)); - ObjectAdapterPtr adapter = communicator()->createObjectAdapter("SessionControlAdapter"); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->setProperty("SessionControlAdapter.Endpoints", getTestEndpoint()); + ObjectAdapterPtr adapter = communicator->createObjectAdapter("SessionControlAdapter"); adapter->add(new SessionManagerI, Ice::stringToIdentity("SessionManager")); adapter->activate(); - communicator()->waitForShutdown(); - return EXIT_SUCCESS; + communicator->waitForShutdown(); } + +DEFINE_TEST(SessionControlServer) diff --git a/cpp/test/Glacier2/sessionControl/SessionI.cpp b/cpp/test/Glacier2/sessionControl/SessionI.cpp index e8312af75fa..c53f29f21b9 100644 --- a/cpp/test/Glacier2/sessionControl/SessionI.cpp +++ b/cpp/test/Glacier2/sessionControl/SessionI.cpp @@ -9,7 +9,7 @@ #include <Ice/Ice.h> #include <SessionI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace Test; diff --git a/cpp/test/Glacier2/sessionHelper/Client.cpp b/cpp/test/Glacier2/sessionHelper/Client.cpp index ec9ade1e0c6..59113a63669 100644 --- a/cpp/test/Glacier2/sessionHelper/Client.cpp +++ b/cpp/test/Glacier2/sessionHelper/Client.cpp @@ -11,7 +11,7 @@ #include <Ice/Ice.h> #include <Glacier2/Glacier2.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <iostream> #include <iomanip> @@ -294,274 +294,269 @@ public: } }; -class SessionHelperClient : public Ice::Application, public Notify +} // Anonymous namespace end + +class Client : public Test::TestHelper, + public Notify { public: - int run(int argc, char* argv[]) + void run(int, char**); + + void + notify() { - instance = this; - string protocol = getTestProtocol(communicator()->getProperties()); - string host = getTestHost(communicator()->getProperties()); - _initData.properties = Ice::createProperties(argc, argv, communicator()->getProperties()); - _initData.properties->setProperty("Ice.Default.Router", "Glacier2/router:" + - getTestEndpoint(communicator(), 50)); - - DispatcherPtr dispatcher = new Dispatcher(); - dispatcher->start(); + IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor); + _monitor.notify(); + } + +private: + + Glacier2::SessionHelperPtr _session; + Glacier2::SessionFactoryHelperPtr _factory; + Ice::InitializationData _initData; + IceUtil::Monitor<IceUtil::Mutex> _monitor; +}; + +void +Client::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + instance = this; + string protocol = getTestProtocol(); + string host = getTestHost(); + _initData.properties = Ice::createProperties(argc, argv, communicator->getProperties()); + _initData.properties->setProperty("Ice.Default.Router", "Glacier2/router:" + getTestEndpoint(50)); + + DispatcherPtr dispatcher = new Dispatcher(); + dispatcher->start(); #ifdef ICE_CPP11_MAPPING - _initData.dispatcher = [dispatcher](std::function<void()> call, const std::shared_ptr<Ice::Connection>& conn) - { - dispatcher->dispatch(call, conn); - }; + _initData.dispatcher = [dispatcher](std::function<void()> call, const std::shared_ptr<Ice::Connection>& conn) + { + dispatcher->dispatch(call, conn); + }; #else - _initData.dispatcher = dispatcher; + _initData.dispatcher = dispatcher; #endif - _factory = ICE_MAKE_SHARED(Glacier2::SessionFactoryHelper, _initData, ICE_MAKE_SHARED(FailSessionCallback)); + _factory = ICE_MAKE_SHARED(Glacier2::SessionFactoryHelper, _initData, ICE_MAKE_SHARED(FailSessionCallback)); + // + // Test to create a session with wrong userid/password + // + + { + IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor); + + cout << "testing SessionHelper connect with wrong userid/password... " << flush; + + _session = _factory->connect("userid", "xxx"); // - // Test to create a session with wrong userid/password + // Wait for connectFailed callback // + _monitor.timedWait(IceUtil::Time::seconds(30)); - { - IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor); + test(!_session->isConnected()); + } + _factory->destroy(); - cout << "testing SessionHelper connect with wrong userid/password... " << flush; + // + // Test to interrupt connection establishment + // - _session = _factory->connect("userid", "xxx"); - // - // Wait for connectFailed callback - // - _monitor.timedWait(IceUtil::Time::seconds(30)); + _initData.properties->setProperty("Ice.Default.Router", ""); + _factory = ICE_MAKE_SHARED(Glacier2::SessionFactoryHelper, _initData, ICE_MAKE_SHARED(InterruptConnectCallback)); - test(!_session->isConnected()); - } - _factory->destroy(); + { + IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor); + cout << "testing SessionHelper connect interrupt... " << flush; + _factory->setRouterHost(host); + _factory->setPort(getTestPort(_initData.properties, 1)); + _factory->setProtocol(protocol); + _session = _factory->connect("userid", "abc123"); + + IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(100)); + _session->destroy(); // - // Test to interrupt connection establishment + // Wait for connectFailed callback // + _monitor.timedWait(IceUtil::Time::seconds(30)); + test(!_session->isConnected()); + } + _factory->destroy(); + + _factory = ICE_MAKE_SHARED(Glacier2::SessionFactoryHelper, _initData, ICE_MAKE_SHARED(SuccessSessionCallback)); + + { + IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor); + cout << "testing SessionHelper connect... " << flush; + _factory->setRouterHost(host); + _factory->setPort(getTestPort(_initData.properties, 50)); + _factory->setProtocol(protocol); + _session = _factory->connect("userid", "abc123"); - _initData.properties->setProperty("Ice.Default.Router", ""); - _factory = ICE_MAKE_SHARED(Glacier2::SessionFactoryHelper, _initData, ICE_MAKE_SHARED(InterruptConnectCallback)); + // + // Wait for connect callback + // + _monitor.timedWait(IceUtil::Time::seconds(30)); + cout << "testing SessionHelper isConnected after connect... " << flush; + test(_session->isConnected()); + cout << "ok" << endl; + + cout << "testing SessionHelper categoryForClient after connect... " << flush; + try { - IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor); - cout << "testing SessionHelper connect interrupt... " << flush; - _factory->setRouterHost(host); - _factory->setPort(getTestPort(_initData.properties, 1)); - _factory->setProtocol(protocol); - _session = _factory->connect("userid", "abc123"); - - IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(100)); - _session->destroy(); - - // - // Wait for connectFailed callback - // - _monitor.timedWait(IceUtil::Time::seconds(30)); - test(!_session->isConnected()); + test(!_session->categoryForClient().empty()); + } + catch(const Glacier2::SessionNotExistException&) + { + test(false); } - _factory->destroy(); + cout << "ok" << endl; - _factory = ICE_MAKE_SHARED(Glacier2::SessionFactoryHelper, _initData, ICE_MAKE_SHARED(SuccessSessionCallback)); + test(!_session->session()); - { - IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor); - cout << "testing SessionHelper connect... " << flush; - _factory->setRouterHost(host); - _factory->setPort(getTestPort(_initData.properties, 50)); - _factory->setProtocol(protocol); - _session = _factory->connect("userid", "abc123"); - - // - // Wait for connect callback - // - _monitor.timedWait(IceUtil::Time::seconds(30)); - - cout << "testing SessionHelper isConnected after connect... " << flush; - test(_session->isConnected()); - cout << "ok" << endl; + cout << "testing stringToProxy for server object... " << flush; + Ice::ObjectPrxPtr base = + _session->communicator()->stringToProxy("callback:" + getTestEndpoint(_session->communicator()->getProperties())); + cout << "ok" << endl; - cout << "testing SessionHelper categoryForClient after connect... " << flush; - try - { - test(!_session->categoryForClient().empty()); - } - catch(const Glacier2::SessionNotExistException&) - { - test(false); - } - cout << "ok" << endl; + cout << "pinging server after session creation... " << flush; + base->ice_ping(); + cout << "ok" << endl; - test(!_session->session()); + cout << "testing checked cast for server object... " << flush; + CallbackPrxPtr twoway = ICE_CHECKED_CAST(CallbackPrx, base); + test(twoway); + cout << "ok" << endl; - cout << "testing stringToProxy for server object... " << flush; - Ice::ObjectPrxPtr base = - _session->communicator()->stringToProxy("callback:" + getTestEndpoint(_session->communicator(), 0)); - cout << "ok" << endl; + cout << "testing server shutdown... " << flush; + twoway->shutdown(); + cout << "ok" << endl; - cout << "pinging server after session creation... " << flush; - base->ice_ping(); - cout << "ok" << endl; + test(_session->communicator()); + cout << "testing SessionHelper destroy... " << flush; + _session->destroy(); - cout << "testing checked cast for server object... " << flush; - CallbackPrxPtr twoway = ICE_CHECKED_CAST(CallbackPrx, base); - test(twoway); - cout << "ok" << endl; + // + // Wait for disconnected callback + // + _monitor.wait(); - cout << "testing server shutdown... " << flush; - twoway->shutdown(); - cout << "ok" << endl; + cout << "testing SessionHelper isConnected after destroy... " << flush; + test(_session->isConnected() == false); + cout << "ok" << endl; - test(_session->communicator()); - cout << "testing SessionHelper destroy... " << flush; - _session->destroy(); + cout << "testing SessionHelper categoryForClient after destroy... " << flush; + try + { + test(!_session->categoryForClient().empty()); + test(false); + } + catch(const Glacier2::SessionNotExistException&) + { + } + cout << "ok" << endl; - // - // Wait for disconnected callback - // - _monitor.wait(); + cout << "testing SessionHelper session after destroy... " << flush; + test(_session->session() == ICE_NULLPTR); + cout << "ok" << endl; - cout << "testing SessionHelper isConnected after destroy... " << flush; - test(_session->isConnected() == false); - cout << "ok" << endl; + cout << "testing SessionHelper communicator after destroy... " << flush; + try + { + test(_session->communicator()); + _session->communicator()->stringToProxy("dummy"); + test(false); + } + catch(const Ice::CommunicatorDestroyedException&) + { + } + cout << "ok" << endl; - cout << "testing SessionHelper categoryForClient after destroy... " << flush; - try - { - test(!_session->categoryForClient().empty()); - test(false); - } - catch(const Glacier2::SessionNotExistException&) - { - } - cout << "ok" << endl; + cout << "uninstalling router with communicator... " << flush; + communicator->setDefaultRouter(0); + cout << "ok" << endl; - cout << "testing SessionHelper session after destroy... " << flush; - test(_session->session() == ICE_NULLPTR); + Ice::ObjectPrxPtr processBase; + { + cout << "testing stringToProxy for process object... " << flush; + processBase = communicator->stringToProxy("Glacier2/admin -f Process:" + getTestEndpoint(51)); cout << "ok" << endl; + } - cout << "testing SessionHelper communicator after destroy... " << flush; - try - { - test(_session->communicator()); - _session->communicator()->stringToProxy("dummy"); - test(false); - } - catch(const Ice::CommunicatorDestroyedException&) - { - } + Ice::ProcessPrxPtr process; + { + cout << "testing checked cast for admin object... " << flush; + process = ICE_CHECKED_CAST(Ice::ProcessPrx, processBase); + test(process != 0); cout << "ok" << endl; + } - cout << "uninstalling router with communicator... " << flush; - communicator()->setDefaultRouter(0); + cout << "testing Glacier2 shutdown... " << flush; + process->shutdown(); + try + { + process->ice_ping(); + test(false); + } + catch(const Ice::LocalException&) + { cout << "ok" << endl; + } + } - Ice::ObjectPrxPtr processBase; - { - cout << "testing stringToProxy for process object... " << flush; - processBase = communicator()->stringToProxy("Glacier2/admin -f Process:" + - getTestEndpoint(communicator(), 51)); - cout << "ok" << endl; - } - - Ice::ProcessPrxPtr process; - { - cout << "testing checked cast for admin object... " << flush; - process = ICE_CHECKED_CAST(Ice::ProcessPrx, processBase); - test(process != 0); - cout << "ok" << endl; - } + _factory->destroy(); - cout << "testing Glacier2 shutdown... " << flush; - process->shutdown(); - try - { - process->ice_ping(); - test(false); - } - catch(const Ice::LocalException&) - { - cout << "ok" << endl; - } - } + _factory = ICE_MAKE_SHARED(Glacier2::SessionFactoryHelper, _initData, ICE_MAKE_SHARED(AfterShutdownSessionCallback)); - _factory->destroy(); + // + // Wait a bit to ensure glaci2router has been shutdown. + // + IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(100)); - _factory = ICE_MAKE_SHARED(Glacier2::SessionFactoryHelper, _initData, ICE_MAKE_SHARED(AfterShutdownSessionCallback)); + { + IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor); + cout << "testing SessionHelper connect after router shutdown... " << flush; + _factory->setRouterHost(host); + _factory->setPort(getTestPort(_initData.properties, 50)); + _factory->setProtocol(protocol); + _session = _factory->connect("userid", "abc123"); // - // Wait a bit to ensure glaci2router has been shutdown. + // Wait for connectFailed callback // - IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(100)); + _monitor.wait(); - { - IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor); - cout << "testing SessionHelper connect after router shutdown... " << flush; - _factory->setRouterHost(host); - _factory->setPort(getTestPort(_initData.properties, 50)); - _factory->setProtocol(protocol); - _session = _factory->connect("userid", "abc123"); - - // - // Wait for connectFailed callback - // - _monitor.wait(); - - cout << "testing SessionHelper isConnect after connect failure... " << flush; - test(_session->isConnected() == false); - cout << "ok" << endl; - - cout << "testing SessionHelper communicator after connect failure... " << flush; - try - { - test(_session->communicator()); - _session->communicator()->stringToProxy("dummy"); - test(false); - } - catch(const Ice::CommunicatorDestroyedException&) - { - } - cout << "ok" << endl; + cout << "testing SessionHelper isConnect after connect failure... " << flush; + test(_session->isConnected() == false); + cout << "ok" << endl; - cout << "testing SessionHelper destroy after connect failure... " << flush; - _session->destroy(); - cout << "ok" << endl; + cout << "testing SessionHelper communicator after connect failure... " << flush; + try + { + test(_session->communicator()); + _session->communicator()->stringToProxy("dummy"); + test(false); } - - _factory->destroy(); - - if(dispatcher) + catch(const Ice::CommunicatorDestroyedException&) { - dispatcher->destroy(); - dispatcher->getThreadControl().join(); } + cout << "ok" << endl; - return 0; + cout << "testing SessionHelper destroy after connect failure... " << flush; + _session->destroy(); + cout << "ok" << endl; } - void - notify() + _factory->destroy(); + + if(dispatcher) { - IceUtil::Monitor<IceUtil::Mutex>::Lock lock(_monitor); - _monitor.notify(); + dispatcher->destroy(); + dispatcher->getThreadControl().join(); } - -private: - - Glacier2::SessionHelperPtr _session; - Glacier2::SessionFactoryHelperPtr _factory; - Ice::InitializationData _initData; - IceUtil::Monitor<IceUtil::Mutex> _monitor; -}; - -} // Anonymous namespace end - -int -main(int argc, char* argv[]) -{ - SessionHelperClient c; - Ice::InitializationData initData = getTestInitData(argc, argv); - return c.main(argc, argv, initData); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Glacier2/sessionHelper/Server.cpp b/cpp/test/Glacier2/sessionHelper/Server.cpp index 4dc02f1cdd7..5f3f81d5e2f 100644 --- a/cpp/test/Glacier2/sessionHelper/Server.cpp +++ b/cpp/test/Glacier2/sessionHelper/Server.cpp @@ -9,7 +9,7 @@ #include <IceUtil/IceUtil.h> #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Callback.h> using namespace std; @@ -18,13 +18,6 @@ using namespace Test; namespace { -class SessionHelperServer : public Ice::Application -{ -public: - - virtual int run(int, char*[]); -}; - class CallbackI : public Callback { @@ -51,25 +44,25 @@ public: } -int -SessionHelperServer::run(int, char**) +class Server : public Test::TestHelper { - communicator()->getProperties()->setProperty("DeactivatedAdapter.Endpoints", getTestEndpoint(communicator(), 1)); - communicator()->createObjectAdapter("DeactivatedAdapter"); +public: - communicator()->getProperties()->setProperty("CallbackAdapter.Endpoints", getTestEndpoint(communicator(), 0)); - Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("CallbackAdapter"); + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->setProperty("DeactivatedAdapter.Endpoints", getTestEndpoint(1)); + communicator->createObjectAdapter("DeactivatedAdapter"); + + communicator->getProperties()->setProperty("CallbackAdapter.Endpoints", getTestEndpoint()); + Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("CallbackAdapter"); adapter->add(ICE_MAKE_SHARED(CallbackI), Ice::stringToIdentity("callback")); adapter->activate(); - communicator()->waitForShutdown(); - - return EXIT_SUCCESS; + communicator->waitForShutdown(); } -int -main(int argc, char* argv[]) -{ - SessionHelperServer app; - Ice::InitializationData initData = getTestInitData(argc, argv); - return app.main(argc, argv, initData); -} +DEFINE_TEST(Server) diff --git a/cpp/test/Glacier2/ssl/Client.cpp b/cpp/test/Glacier2/ssl/Client.cpp index ea0575b41a0..c4b6a88f646 100644 --- a/cpp/test/Glacier2/ssl/Client.cpp +++ b/cpp/test/Glacier2/ssl/Client.cpp @@ -9,39 +9,29 @@ #include <Ice/Ice.h> #include <Glacier2/Router.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace Ice; -//using namespace Test; +using namespace Test; -class CallbackClient : public Application +class Client : public Test::TestHelper { public: - virtual int run(int, char*[]); + void run(int, char**); }; -int -main(int argc, char* argv[]) +void +Client::run(int argc, char** argv) { - // - // We must disable connection warnings, because we attempt to ping - // the router before session establishment, as well as after - // session destruction. Both will cause a ConnectionLostException. - // - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Warn.Connections", "0"); - CallbackClient app; - return app.main(argc, argv, initData); -} + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Warn.Connections", "0"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); -int -CallbackClient::run(int, char**) -{ Glacier2::RouterPrx router = Glacier2::RouterPrx::uncheckedCast( - communicator()->stringToProxy("Glacier2/router:" + getTestEndpoint(communicator(), 0, "tcp"))); - communicator()->setDefaultRouter(router); + communicator->stringToProxy("Glacier2/router:" + getTestEndpoint("tcp"))); + communicator->setDefaultRouter(router); // // First try to create a non ssl sessions. @@ -74,10 +64,10 @@ CallbackClient::run(int, char**) // Switch to using the SSL router. First, clear the router. Then // set a new SSL based router. // - communicator()->setDefaultRouter(Glacier2::RouterPrx()); + communicator->setDefaultRouter(Glacier2::RouterPrx()); router = Glacier2::RouterPrx::uncheckedCast( - communicator()->stringToProxy("Glacier2/router:" + getTestEndpoint(communicator(), 1, "ssl"))); - communicator()->setDefaultRouter(router); + communicator->stringToProxy("Glacier2/router:" + getTestEndpoint(1, "ssl"))); + communicator->setDefaultRouter(router); // // Next try to create a non ssl session. This should succeed. @@ -108,10 +98,10 @@ CallbackClient::run(int, char**) } cout << "ok" << endl; - communicator()->setDefaultRouter(0); + communicator->setDefaultRouter(0); Ice::ProcessPrx process = Ice::ProcessPrx::checkedCast( - communicator()->stringToProxy("Glacier2/admin -f Process:" + getTestEndpoint(communicator(), 2, "tcp"))); + communicator->stringToProxy("Glacier2/admin -f Process:" + getTestEndpoint(2, "tcp"))); process->shutdown(); - - return EXIT_SUCCESS; } + +DEFINE_TEST(Client) diff --git a/cpp/test/Glacier2/ssl/Server.cpp b/cpp/test/Glacier2/ssl/Server.cpp index dadff8ab999..49efbe5a46d 100644 --- a/cpp/test/Glacier2/ssl/Server.cpp +++ b/cpp/test/Glacier2/ssl/Server.cpp @@ -10,10 +10,11 @@ #include <Ice/Ice.h> #include <Glacier2/PermissionsVerifier.h> #include <Glacier2/Session.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <IceSSL/Plugin.h> using namespace std; +using namespace Test; namespace { @@ -25,14 +26,14 @@ void testContext(bool ssl, const Ice::CommunicatorPtr& communicator, const Ice:: { test(ctx["_con.type"] == "tcp"); ostringstream port; - port << getTestPort(communicator->getProperties(), 0); + port << TestHelper::getTestPort(communicator->getProperties()); test(ctx["_con.localPort"] == port.str()); } else { test(ctx["_con.type"] == "ssl"); ostringstream port; - port << getTestPort(communicator->getProperties(), 1); + port << TestHelper::getTestPort(communicator->getProperties(), 1); test(ctx["_con.localPort"] == port.str()); } test(ctx["_con.localAddress"] == "127.0.0.1"); @@ -131,7 +132,7 @@ public: test(info.remoteHost == "127.0.0.1"); test(info.localHost == "127.0.0.1"); - test(info.localPort == getTestPort(current.adapter->getCommunicator()->getProperties(), 1)); + test(info.localPort == TestHelper::getTestPort(current.adapter->getCommunicator()->getProperties(), 1)); try { @@ -152,31 +153,25 @@ public: } }; -class SessionServer : public Ice::Application +class Server : public Test::TestHelper { public: - virtual int run(int, char*[]); + void run(int, char**); }; -int -main(int argc, char* argv[]) +void +Server::run(int argc, char** argv) { - SessionServer app; - Ice::InitializationData initData = getTestInitData(argc, argv); - return app.main(argc, argv, initData); -} - -int -SessionServer::run(int, char**) -{ - Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapterWithEndpoints("SessionServer", - getTestEndpoint(communicator(), 3, "tcp")); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapterWithEndpoints("SessionServer", + getTestEndpoint(3, "tcp")); adapter->add(new PermissionsVerifierI, Ice::stringToIdentity("verifier")); adapter->add(new SSLPermissionsVerifierI, Ice::stringToIdentity("sslverifier")); adapter->add(new SessionManagerI, Ice::stringToIdentity("sessionmanager")); adapter->add(new SSLSessionManagerI, Ice::stringToIdentity("sslsessionmanager")); adapter->activate(); - communicator()->waitForShutdown(); - return EXIT_SUCCESS; + communicator->waitForShutdown(); } + +DEFINE_TEST(Server) diff --git a/cpp/test/Glacier2/staticFiltering/Client.cpp b/cpp/test/Glacier2/staticFiltering/Client.cpp index 1340b130b54..0a16f88dabb 100644 --- a/cpp/test/Glacier2/staticFiltering/Client.cpp +++ b/cpp/test/Glacier2/staticFiltering/Client.cpp @@ -10,45 +10,39 @@ #include <Ice/Ice.h> #include <Glacier2/Router.h> #include <Backend.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace Ice; using namespace Test; -class AttackClient : public Application +class AttackClient : public Test::TestHelper { public: - virtual int run(int, char*[]); + void run(int, char**); }; -int -main(int argc, char* argv[]) +void +AttackClient::run(int argc, char** argv) { - Ice::InitializationData initData = getTestInitData(argc, argv); - + Ice::PropertiesPtr properties = createTestProperties(argc, argv); // // We want to check whether the client retries for evicted // proxies, even with regular retries disabled. // - initData.properties->setProperty("Ice.RetryIntervals", "-1"); + properties->setProperty("Ice.RetryIntervals", "-1"); - AttackClient app; - return app.main(argc, argv, initData); -} + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); -int -AttackClient::run(int, char**) -{ - ObjectPrx routerBase = communicator()->stringToProxy("Glacier2/router:" + getTestEndpoint(communicator(), 50)); + ObjectPrx routerBase = communicator->stringToProxy("Glacier2/router:" + getTestEndpoint(50)); Glacier2::RouterPrx router = Glacier2::RouterPrx::checkedCast(routerBase); test(router); - communicator()->setDefaultRouter(router); + communicator->setDefaultRouter(router); PropertyDict::const_iterator p; - PropertyDict badProxies = communicator()->getProperties()->getPropertiesForPrefix("Reject.Proxy."); + PropertyDict badProxies = communicator->getProperties()->getPropertiesForPrefix("Reject.Proxy."); for(p = badProxies.begin(); p != badProxies.end(); ++p) { try @@ -59,7 +53,7 @@ AttackClient::run(int, char**) { test("Unable to create new session" == 0); } - BackendPrx backend = BackendPrx::uncheckedCast(communicator()->stringToProxy(p->second)); + BackendPrx backend = BackendPrx::uncheckedCast(communicator->stringToProxy(p->second)); try { backend->ice_ping(); @@ -98,7 +92,7 @@ AttackClient::run(int, char**) } } - PropertyDict goodProxies = communicator()->getProperties()->getPropertiesForPrefix("Accept.Proxy."); + PropertyDict goodProxies = communicator->getProperties()->getPropertiesForPrefix("Accept.Proxy."); for(p = goodProxies.begin(); p != goodProxies.end(); ++p) { try @@ -109,7 +103,7 @@ AttackClient::run(int, char**) { test("Unable to create new session" == 0); } - BackendPrx backend = BackendPrx::uncheckedCast(communicator()->stringToProxy(p->second)); + BackendPrx backend = BackendPrx::uncheckedCast(communicator->stringToProxy(p->second)); try { backend->ice_ping(); @@ -136,10 +130,10 @@ AttackClient::run(int, char**) // Stop using router and communicate with backend and router directly // to shut things down. // - communicator()->setDefaultRouter(0); + communicator->setDefaultRouter(0); try { - BackendPrx backend = BackendPrx::checkedCast(communicator()->stringToProxy("dummy:tcp -p 12010")); + BackendPrx backend = BackendPrx::checkedCast(communicator->stringToProxy("dummy:tcp -p 12010")); backend->shutdown(); } catch(const Ice::LocalException&) @@ -147,8 +141,7 @@ AttackClient::run(int, char**) test(false); } - ObjectPrx processBase = communicator()->stringToProxy("Glacier2/admin -f Process:" + - getTestEndpoint(communicator(), 51)); + ObjectPrx processBase = communicator->stringToProxy("Glacier2/admin -f Process:" + getTestEndpoint(51)); Ice::ProcessPrx process = Ice::ProcessPrx::checkedCast(processBase); test(process); process->shutdown(); @@ -161,6 +154,6 @@ AttackClient::run(int, char**) { cout << "ok" << endl; } - - return EXIT_SUCCESS; } + +DEFINE_TEST(AttackClient) diff --git a/cpp/test/Glacier2/staticFiltering/Server.cpp b/cpp/test/Glacier2/staticFiltering/Server.cpp index 49b4b501414..7aa7f949c42 100644 --- a/cpp/test/Glacier2/staticFiltering/Server.cpp +++ b/cpp/test/Glacier2/staticFiltering/Server.cpp @@ -9,6 +9,7 @@ #include <Ice/Ice.h> #include <BackendI.h> +#include <TestHelper.h> using namespace std; using namespace Ice; @@ -108,33 +109,28 @@ private: const BackendPtr _backend; }; -class BackendServer : public Application +class BackendServer : public Test::TestHelper { public: - virtual int run(int, char*[]); + void run(int, char**); }; -int -main(int argc, char* argv[]) +void +BackendServer::run(int argc, char** argv) { - BackendServer app; - return app.main(argc, argv); -} - -int -BackendServer::run(int, char**) -{ - string endpoints = communicator()->getProperties()->getPropertyWithDefault("BackendAdapter.Endpoints", - "tcp -p 12010:ssl -p 12011"); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + string endpoints = communicator->getProperties()->getPropertyWithDefault("BackendAdapter.Endpoints", + "tcp -p 12010:ssl -p 12011"); - communicator()->getProperties()->setProperty("BackendAdapter.Endpoints", endpoints); - ObjectAdapterPtr adapter = communicator()->createObjectAdapter("BackendAdapter"); + communicator->getProperties()->setProperty("BackendAdapter.Endpoints", endpoints); + ObjectAdapterPtr adapter = communicator->createObjectAdapter("BackendAdapter"); BackendPtr backend = new BackendI; Ice::LocatorPtr locator = new ServerLocatorI(backend, adapter); adapter->add(locator, Ice::stringToIdentity("locator")); adapter->addServantLocator(new ServantLocatorI(backend), ""); adapter->activate(); - communicator()->waitForShutdown(); - return EXIT_SUCCESS; + communicator->waitForShutdown(); } + +DEFINE_TEST(BackendServer) diff --git a/cpp/test/Ice/acm/AllTests.cpp b/cpp/test/Ice/acm/AllTests.cpp index 94b8c0da84d..b0affe91d85 100644 --- a/cpp/test/Ice/acm/AllTests.cpp +++ b/cpp/test/Ice/acm/AllTests.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; @@ -711,9 +711,10 @@ public: } void -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { - string ref = "communicator:" + getTestEndpoint(communicator, 0); + Ice::CommunicatorPtr communicator = helper->communicator(); + string ref = "communicator:" + helper->getTestEndpoint(); RemoteCommunicatorPrxPtr com = ICE_UNCHECKED_CAST(RemoteCommunicatorPrx, communicator->stringToProxy(ref)); vector<TestCasePtr> tests; diff --git a/cpp/test/Ice/acm/Client.cpp b/cpp/test/Ice/acm/Client.cpp index 4d969f473c3..bc34933867a 100644 --- a/cpp/test/Ice/acm/Client.cpp +++ b/cpp/test/Ice/acm/Client.cpp @@ -7,43 +7,26 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> -DEFINE_TEST("client") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) -{ - void allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - return EXIT_SUCCESS; -} - -int -main(int argc, char* argv[]) +class Client : public Test::TestHelper { -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -# if ICE_HAS_BT - Ice::registerIceBT(false); -# endif -#endif +public: - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Warn.Connections", "0"); + void run(int, char**); +}; - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } +void +Client::run(int argc, char** argv) +{ + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Warn.Connections", "0"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + void allTests(Test::TestHelper*); + allTests(this); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/acm/Server.cpp b/cpp/test/Ice/acm/Server.cpp index 3133c0be596..e21aaae1882 100644 --- a/cpp/test/Ice/acm/Server.cpp +++ b/cpp/test/Ice/acm/Server.cpp @@ -8,50 +8,38 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("server") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Warn.Connections", "0"); + properties->setProperty("Ice.ACM.Timeout", "1"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); communicator->getProperties()->setProperty("TestAdapter.ACM.Timeout", "0"); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); Ice::Identity id = Ice::stringToIdentity("communicator"); adapter->add(ICE_MAKE_SHARED(RemoteCommunicatorI), id); adapter->activate(); - TEST_READY + serverReady(); // Disable ready print for further adapters. communicator->getProperties()->setProperty("Ice.PrintAdapterReady", "0"); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Warn.Connections", "0"); - initData.properties->setProperty("Ice.ACM.Timeout", "1"); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/adapterDeactivation/AllTests.cpp b/cpp/test/Ice/adapterDeactivation/AllTests.cpp index 2c0af37fd62..99ab429c7f7 100644 --- a/cpp/test/Ice/adapterDeactivation/AllTests.cpp +++ b/cpp/test/Ice/adapterDeactivation/AllTests.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; @@ -16,10 +16,11 @@ using namespace Ice; using namespace Test; TestIntfPrxPtr -allTests(const CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { + CommunicatorPtr communicator = helper->communicator(); cout << "testing stringToProxy... " << flush; - ObjectPrxPtr base = communicator->stringToProxy("test:" + getTestEndpoint(communicator, 0)); + ObjectPrxPtr base = communicator->stringToProxy("test:" + helper->getTestEndpoint()); test(base); cout << "ok" << endl; @@ -41,7 +42,7 @@ allTests(const CommunicatorPtr& communicator) { if(!uwp || (communicator->getProperties()->getProperty("Ice.Default.Protocol") != "ssl" && - communicator->getProperties()->getProperty("Ice.Default.Protocol") != "wss")) + communicator->getProperties()->getProperty("Ice.Default.Protocol") != "wss")) { cout << "creating/destroying/recreating object adapter... " << flush; ObjectAdapterPtr adpt = communicator->createObjectAdapterWithEndpoints("TransientTestAdapter", "default"); @@ -78,9 +79,9 @@ allTests(const CommunicatorPtr& communicator) initData.properties = communicator->getProperties()->clone(); Ice::CommunicatorHolder comm(initData); #ifdef ICE_CPP11_MAPPING - comm->stringToProxy("test:" + getTestEndpoint(communicator, 0))->ice_pingAsync(); + comm->stringToProxy("test:" + helper->getTestEndpoint())->ice_pingAsync(); #else - comm->stringToProxy("test:" + getTestEndpoint(communicator, 0))->begin_ice_ping(); + comm->stringToProxy("test:" + helper->getTestEndpoint())->begin_ice_ping(); #endif } cout << "ok" << endl; @@ -172,7 +173,7 @@ allTests(const CommunicatorPtr& communicator) try { router = ICE_UNCHECKED_CAST(Ice::RouterPrx, - communicator->stringToProxy("test:" + getTestEndpoint(communicator, 1))); + communicator->stringToProxy("test:" + helper->getTestEndpoint(1))); communicator->createObjectAdapterWithRouter("", router); test(false); } @@ -185,10 +186,10 @@ allTests(const CommunicatorPtr& communicator) cout << "testing object adapter creation with port in use... " << flush; { Ice::ObjectAdapterPtr adapter1 = - communicator->createObjectAdapterWithEndpoints("Adpt1", getTestEndpoint(communicator, 10)); + communicator->createObjectAdapterWithEndpoints("Adpt1", helper->getTestEndpoint(10)); try { - communicator->createObjectAdapterWithEndpoints("Adpt2", getTestEndpoint(communicator, 10)); + communicator->createObjectAdapterWithEndpoints("Adpt2", helper->getTestEndpoint(10)); test(false); } catch(const Ice::LocalException&) diff --git a/cpp/test/Ice/adapterDeactivation/Client.cpp b/cpp/test/Ice/adapterDeactivation/Client.cpp index 87279198a24..b6336faeec3 100644 --- a/cpp/test/Ice/adapterDeactivation/Client.cpp +++ b/cpp/test/Ice/adapterDeactivation/Client.cpp @@ -8,42 +8,28 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #include <string> #include <iostream> -DEFINE_TEST("client") - using namespace std; using namespace Ice; using namespace Test; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - TestIntfPrxPtr allTests(const CommunicatorPtr&); - TestIntfPrxPtr obj = allTests(communicator); - return EXIT_SUCCESS; -} +public: -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif + void run(int, char**); +}; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } +void +Client::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + TestIntfPrxPtr allTests(Test::TestHelper*); + allTests(this); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/adapterDeactivation/Collocated.cpp b/cpp/test/Ice/adapterDeactivation/Collocated.cpp index 14dcc5353f9..eebcf508105 100644 --- a/cpp/test/Ice/adapterDeactivation/Collocated.cpp +++ b/cpp/test/Ice/adapterDeactivation/Collocated.cpp @@ -7,21 +7,26 @@ // // ********************************************************************** -#include <Ice/Application.h> #include <ServantLocatorI.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> -DEFINE_TEST("collocated") - using namespace std; using namespace Ice; using namespace Test; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Collocated : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Collocated::run(int argc, char** argv) { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); // // 2 threads are necessary to dispatch the collocated transient() call with AMI @@ -32,30 +37,10 @@ run(int, char**, const Ice::CommunicatorPtr& communicator) ServantLocatorPtr locator = ICE_MAKE_SHARED(ServantLocatorI); adapter->addServantLocator(locator, ""); - TestIntfPrxPtr allTests(const CommunicatorPtr&); - allTests(communicator); + TestIntfPrxPtr allTests(TestHelper*); + allTests(this); adapter->waitForDeactivate(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Collocated) diff --git a/cpp/test/Ice/adapterDeactivation/ServantLocatorI.cpp b/cpp/test/Ice/adapterDeactivation/ServantLocatorI.cpp index bd338105213..1f6f6df7465 100644 --- a/cpp/test/Ice/adapterDeactivation/ServantLocatorI.cpp +++ b/cpp/test/Ice/adapterDeactivation/ServantLocatorI.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <ServantLocatorI.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> using namespace std; diff --git a/cpp/test/Ice/adapterDeactivation/Server.cpp b/cpp/test/Ice/adapterDeactivation/Server.cpp index 44b10da7330..dcf8b3baef6 100644 --- a/cpp/test/Ice/adapterDeactivation/Server.cpp +++ b/cpp/test/Ice/adapterDeactivation/Server.cpp @@ -7,46 +7,30 @@ // // ********************************************************************** -#include <Ice/Application.h> #include <ServantLocatorI.h> -#include <TestCommon.h> - -DEFINE_TEST("server") +#include <TestHelper.h> using namespace std; using namespace Ice; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); ServantLocatorPtr locator = ICE_MAKE_SHARED(ServantLocatorI); adapter->addServantLocator(locator, ""); adapter->activate(); - TEST_READY + serverReady(); adapter->waitForDeactivate(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerIceUDP(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/adapterDeactivation/TestI.cpp b/cpp/test/Ice/adapterDeactivation/TestI.cpp index f074459b82f..6ee60824dad 100644 --- a/cpp/test/Ice/adapterDeactivation/TestI.cpp +++ b/cpp/test/Ice/adapterDeactivation/TestI.cpp @@ -10,17 +10,19 @@ #include <IceUtil/IceUtil.h> #include <Ice/Ice.h> #include <TestI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace Ice; +using namespace Test; void TestI::transient(const Current& current) { CommunicatorPtr communicator = current.adapter->getCommunicator(); - ObjectAdapterPtr adapter = communicator->createObjectAdapterWithEndpoints("TransientTestAdapter", - getTestEndpoint(communicator, 1)); + ObjectAdapterPtr adapter = + communicator->createObjectAdapterWithEndpoints("TransientTestAdapter", + TestHelper::getTestEndpoint(communicator->getProperties(), 1)); adapter->activate(); adapter->destroy(); } diff --git a/cpp/test/Ice/admin/AllTests.cpp b/cpp/test/Ice/admin/AllTests.cpp index f86412012b9..36e80f6f0df 100644 --- a/cpp/test/Ice/admin/AllTests.cpp +++ b/cpp/test/Ice/admin/AllTests.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> // For TestFacetI using namespace std; @@ -178,8 +178,9 @@ RemoteLoggerI::wait(int calls) } void -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { + Ice::CommunicatorPtr communicator = helper->communicator(); cout << "testing communicator operations... " << flush; { // @@ -279,7 +280,7 @@ allTests(const Ice::CommunicatorPtr& communicator) } cout << "ok" << endl; - string ref = "factory:" + getTestEndpoint(communicator, 0) + " -t 10000"; + string ref = "factory:" + helper->getTestEndpoint() + " -t 10000"; RemoteCommunicatorFactoryPrxPtr factory = ICE_UNCHECKED_CAST(RemoteCommunicatorFactoryPrx, communicator->stringToProxy(ref)); diff --git a/cpp/test/Ice/admin/Client.cpp b/cpp/test/Ice/admin/Client.cpp index f16a2be18d3..7184106d732 100644 --- a/cpp/test/Ice/admin/Client.cpp +++ b/cpp/test/Ice/admin/Client.cpp @@ -8,38 +8,24 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; -DEFINE_TEST("client") - -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - void allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - return EXIT_SUCCESS; -} +public: -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif + void run(int, char**); +}; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } +void +Client::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + void allTests(Test::TestHelper*); + allTests(this); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/admin/Server.cpp b/cpp/test/Ice/admin/Server.cpp index bbc56f0342c..07abdded214 100644 --- a/cpp/test/Ice/admin/Server.cpp +++ b/cpp/test/Ice/admin/Server.cpp @@ -9,42 +9,28 @@ #include <Ice/Ice.h> #include <TestI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; -DEFINE_TEST("server") +class Server : public Test::TestHelper +{ +public: + + void run(int, char**); +}; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +void +Server::run(int argc, char** argv) { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0) + " -t 10000"); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint() + " -t 10000"); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); Ice::Identity id = Ice::stringToIdentity("factory"); adapter->add(ICE_MAKE_SHARED(RemoteCommunicatorFactoryI), id); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/admin/TestI.h b/cpp/test/Ice/admin/TestI.h index 765d9464a37..aab75a6e6af 100644 --- a/cpp/test/Ice/admin/TestI.h +++ b/cpp/test/Ice/admin/TestI.h @@ -11,7 +11,7 @@ #define TEST_I_H #include <Test.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Ice/NativePropertiesAdmin.h> class RemoteCommunicatorI : public virtual Test::RemoteCommunicator, diff --git a/cpp/test/Ice/ami/AllTests.cpp b/cpp/test/Ice/ami/AllTests.cpp index a449662d758..c60ca2f6d67 100644 --- a/cpp/test/Ice/ami/AllTests.cpp +++ b/cpp/test/Ice/ami/AllTests.cpp @@ -9,7 +9,7 @@ #include <Ice/Ice.h> #include <IceUtil/Random.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; @@ -899,18 +899,19 @@ typedef IceUtil::Handle<Thrower> ThrowerPtr; } void -allTests(const Ice::CommunicatorPtr& communicator, bool collocated) +allTests(Test::TestHelper* helper, bool collocated) { + Ice::CommunicatorPtr communicator = helper->communicator(); const string protocol = communicator->getProperties()->getProperty("Ice.Default.Protocol"); #ifdef ICE_CPP11_MAPPING - string sref = "test:" + getTestEndpoint(communicator, 0); + string sref = "test:" + helper->getTestEndpoint(); auto obj = communicator->stringToProxy(sref); test(obj); auto p = Ice::uncheckedCast<Test::TestIntfPrx>(obj); - sref = "testController:" + getTestEndpoint(communicator, 1); + sref = "testController:" + helper->getTestEndpoint(1); obj = communicator->stringToProxy(sref); test(obj); @@ -2387,7 +2388,7 @@ allTests(const Ice::CommunicatorPtr& communicator, bool collocated) cout << "testing result struct... " << flush; auto q = Ice::uncheckedCast<Test::Outer::Inner::TestIntfPrx>( - communicator->stringToProxy("test2:" + getTestEndpoint(communicator, 0))); + communicator->stringToProxy("test2:" + helper->getTestEndpoint())); promise<void> promise; q->opAsync(1, @@ -2420,13 +2421,13 @@ allTests(const Ice::CommunicatorPtr& communicator, bool collocated) p->shutdown(); #else - string sref = "test:" + getTestEndpoint(communicator, 0); + string sref = "test:" + helper->getTestEndpoint(); Ice::ObjectPrx obj = communicator->stringToProxy(sref); test(obj); Test::TestIntfPrx p = Test::TestIntfPrx::uncheckedCast(obj); - sref = "testController:" + getTestEndpoint(communicator, 1); + sref = "testController:" + helper->getTestEndpoint(1); obj = communicator->stringToProxy(sref); test(obj); diff --git a/cpp/test/Ice/ami/Client.cpp b/cpp/test/Ice/ami/Client.cpp index a32ffa44d5d..c3959a16733 100644 --- a/cpp/test/Ice/ami/Client.cpp +++ b/cpp/test/Ice/ami/Client.cpp @@ -8,50 +8,34 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> -DEFINE_TEST("client") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - void allTests(const Ice::CommunicatorPtr&, bool); - allTests(communicator, false); - return EXIT_SUCCESS; -} +public: -int -main(int argc, char* argv[]) + void run(int, char**); +}; + +void +Client::run(int argc, char** argv) { -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -# ifdef ICE_HAS_BT - Ice::registerIceBT(false); -# endif -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Warn.AMICallback", "0"); - initData.properties->setProperty("Ice.Warn.Connections", "0"); - - // - // Limit the send buffer size, this test relies on the socket - // send() blocking after sending a given amount of data. - // - initData.properties->setProperty("Ice.TCP.SndSize", "50000"); - - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Warn.AMICallback", "0"); + properties->setProperty("Ice.Warn.Connections", "0"); + + // + // Limit the send buffer size, this test relies on the socket + // send() blocking after sending a given amount of data. + // + properties->setProperty("Ice.TCP.SndSize", "50000"); + + Ice::CommunicatorHolder communcator = initialize(argc, argv, properties); + void allTests(Test::TestHelper*, bool); + allTests(this, false); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/ami/Collocated.cpp b/cpp/test/Ice/ami/Collocated.cpp index 8d09a3a3082..ef1893e344a 100644 --- a/cpp/test/Ice/ami/Collocated.cpp +++ b/cpp/test/Ice/ami/Collocated.cpp @@ -8,18 +8,26 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("collocated") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Collocated : public Test::TestHelper { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); - communicator->getProperties()->setProperty("ControllerAdapter.Endpoints", getTestEndpoint(communicator, 1)); +public: + + void run(int, char**); +}; + +void +Collocated::run(int argc, char** argv) +{ + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Warn.AMICallback", "0"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); + communicator->getProperties()->setProperty("ControllerAdapter.Endpoints", getTestEndpoint(1)); communicator->getProperties()->setProperty("ControllerAdapter.ThreadPool.Size", "1"); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); @@ -34,31 +42,8 @@ run(int, char**, const Ice::CommunicatorPtr& communicator) adapter2->add(testController, Ice::stringToIdentity("testController")); //adapter2->activate(); // Collocated test doesn't need to activate the OA - void allTests(const Ice::CommunicatorPtr&, bool); - allTests(communicator, true); - - return EXIT_SUCCESS; + void allTests(Test::TestHelper*, bool); + allTests(this, true); } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Warn.AMICallback", "0"); - - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Collocated) diff --git a/cpp/test/Ice/ami/Server.cpp b/cpp/test/Ice/ami/Server.cpp index 1e477a22831..abeaed2d6d5 100644 --- a/cpp/test/Ice/ami/Server.cpp +++ b/cpp/test/Ice/ami/Server.cpp @@ -8,18 +8,37 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("server") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); - communicator->getProperties()->setProperty("ControllerAdapter.Endpoints", getTestEndpoint(communicator, 1)); +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) +{ + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + // + // This test kills connections, so we don't want warnings. + // + properties->setProperty("Ice.Warn.Connections", "0"); + + // + // Limit the recv buffer size, this test relies on the socket + // send() blocking after sending a given amount of data. + // + properties->setProperty("Ice.TCP.RcvSize", "50000"); + + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); + communicator->getProperties()->setProperty("ControllerAdapter.Endpoints", getTestEndpoint(1)); communicator->getProperties()->setProperty("ControllerAdapter.ThreadPool.Size", "1"); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); @@ -34,41 +53,9 @@ run(int, char**, const Ice::CommunicatorPtr& communicator) adapter2->add(testController, Ice::stringToIdentity("testController")); adapter2->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - - // - // This test kills connections, so we don't want warnings. - // - initData.properties->setProperty("Ice.Warn.Connections", "0"); - - // - // Limit the recv buffer size, this test relies on the socket - // send() blocking after sending a given amount of data. - // - initData.properties->setProperty("Ice.TCP.RcvSize", "50000"); - - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/ami/TestI.h b/cpp/test/Ice/ami/TestI.h index 87fc115327a..558d7b325df 100644 --- a/cpp/test/Ice/ami/TestI.h +++ b/cpp/test/Ice/ami/TestI.h @@ -11,7 +11,7 @@ #define TEST_I_H #include <Test.h> -#include <TestCommon.h> +#include <TestHelper.h> class TestIntfControllerI; ICE_DEFINE_PTR(TestIntfControllerIPtr, TestIntfControllerI); diff --git a/cpp/test/Ice/background/AllTests.cpp b/cpp/test/Ice/background/AllTests.cpp index 2ae82697746..61cb5b11afe 100644 --- a/cpp/test/Ice/background/AllTests.cpp +++ b/cpp/test/Ice/background/AllTests.cpp @@ -10,7 +10,7 @@ #include <IceUtil/IceUtil.h> #include <IceUtil/Random.h> #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #include <PluginI.h> #include <Configuration.h> @@ -205,16 +205,17 @@ void validationTests(const ConfigurationPtr&, const Test::BackgroundPrxPtr&, con void readWriteTests(const ConfigurationPtr&, const Test::BackgroundPrxPtr&, const Test::BackgroundControllerPrxPtr&); BackgroundPrxPtr -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { - const string endp = getTestEndpoint(communicator, 0); + Ice::CommunicatorPtr communicator = helper->communicator(); + const string endp = helper->getTestEndpoint(); string sref = "background:" + endp; Ice::ObjectPrxPtr obj = communicator->stringToProxy(sref); test(obj); BackgroundPrxPtr background = ICE_UNCHECKED_CAST(BackgroundPrx, obj); - sref = "backgroundController:" + getTestEndpoint(communicator, 1, "tcp"); + sref = "backgroundController:" + helper->getTestEndpoint(1, "tcp"); obj = communicator->stringToProxy(sref); test(obj); diff --git a/cpp/test/Ice/background/Client.cpp b/cpp/test/Ice/background/Client.cpp index b7488777d25..be276a3393f 100644 --- a/cpp/test/Ice/background/Client.cpp +++ b/cpp/test/Ice/background/Client.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #include <Configuration.h> @@ -26,64 +26,49 @@ Ice::Plugin* createTestTransport(const Ice::CommunicatorPtr&, const std::string& }; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - BackgroundPrxPtr allTests(const Ice::CommunicatorPtr&); - BackgroundPrxPtr background = allTests(communicator); - background->shutdown(); - return EXIT_SUCCESS; -} +public: + + void run(int, char**); +}; -int -main(int argc, char* argv[]) +void +Client::run(int argc, char** argv) { #ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); Ice::registerPluginFactory("Test", createTestTransport, false); #endif - int status; - Ice::CommunicatorPtr communicator; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - - // - // For this test, we want to disable retries. - // - initData.properties->setProperty("Ice.RetryIntervals", "-1"); - - // - // This test kills connections, so we don't want warnings. - // - initData.properties->setProperty("Ice.Warn.Connections", "0"); - - // This test relies on filling the TCP send/recv buffer, so - // we rely on a fixed value for these buffers. - initData.properties->setProperty("Ice.TCP.SndSize", "50000"); - - // - // Setup the test transport plug-in. - // - initData.properties->setProperty("Ice.Plugin.Test", "TestTransport:createTestTransport"); - string defaultProtocol = initData.properties->getPropertyWithDefault("Ice.Default.Protocol", "tcp"); - initData.properties->setProperty("Ice.Default.Protocol", "test-" + defaultProtocol); - - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << " " << ex.ice_stackTrace() << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + + // + // For this test, we want to disable retries. + // + properties->setProperty("Ice.RetryIntervals", "-1"); + + // + // This test kills connections, so we don't want warnings. + // + properties->setProperty("Ice.Warn.Connections", "0"); + + // + // This test relies on filling the TCP send/recv buffer, so + // we rely on a fixed value for these buffers. + // + properties->setProperty("Ice.TCP.SndSize", "50000"); + + // + // Setup the test transport plug-in. + // + properties->setProperty("Ice.Plugin.Test", "TestTransport:createTestTransport"); + string defaultProtocol = properties->getPropertyWithDefault("Ice.Default.Protocol", "tcp"); + properties->setProperty("Ice.Default.Protocol", "test-" + defaultProtocol); + + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + BackgroundPrxPtr allTests(Test::TestHelper*); + BackgroundPrxPtr background = allTests(this); + background->shutdown(); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/background/Server.cpp b/cpp/test/Ice/background/Server.cpp index 9a6dddb7194..bf2b9fe36d9 100644 --- a/cpp/test/Ice/background/Server.cpp +++ b/cpp/test/Ice/background/Server.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> #include <Configuration.h> #include <PluginI.h> @@ -124,11 +124,45 @@ private: BackgroundControllerIPtr _controller; }; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); - communicator->getProperties()->setProperty("ControllerAdapter.Endpoints", getTestEndpoint(communicator, 1, "tcp")); +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) +{ +#ifdef ICE_STATIC_LIBS + Ice::registerPluginFactory("Test", createTestTransport, false); +#endif + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + + // + // This test kills connections, so we don't want warnings. + // + properties->setProperty("Ice.Warn.Connections", "0"); + + properties->setProperty("Ice.MessageSizeMax", "50000"); + + // + // This test relies on filling the TCP send/recv buffer, so + // we rely on a fixed value for these buffers. + // + properties->setProperty("Ice.TCP.RcvSize", "50000"); + + // + // Setup the test transport plug-in. + // + properties->setProperty("Ice.Plugin.Test", "TestTransport:createTestTransport"); + string defaultProtocol = properties->getPropertyWithDefault("Ice.Default.Protocol", "tcp"); + properties->setProperty("Ice.Default.Protocol", "test-" + defaultProtocol); + + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(0)); + communicator->getProperties()->setProperty("ControllerAdapter.Endpoints", getTestEndpoint(1, "tcp")); communicator->getProperties()->setProperty("ControllerAdapter.ThreadPool.Size", "1"); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); @@ -152,46 +186,6 @@ run(int, char**, const Ice::CommunicatorPtr& communicator) adapter2->activate(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerPluginFactory("Test", createTestTransport, false); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - - // - // This test kills connections, so we don't want warnings. - // - initData.properties->setProperty("Ice.Warn.Connections", "0"); - - initData.properties->setProperty("Ice.MessageSizeMax", "50000"); - - // This test relies on filling the TCP send/recv buffer, so - // we rely on a fixed value for these buffers. - initData.properties->setProperty("Ice.TCP.RcvSize", "50000"); - - // - // Setup the test transport plug-in. - // - initData.properties->setProperty("Ice.Plugin.Test", "TestTransport:createTestTransport"); - string defaultProtocol = initData.properties->getPropertyWithDefault("Ice.Default.Protocol", "tcp"); - initData.properties->setProperty("Ice.Default.Protocol", "test-" + defaultProtocol); - - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/background/TestI.h b/cpp/test/Ice/background/TestI.h index 3d88aeca16e..1405c0f70f1 100644 --- a/cpp/test/Ice/background/TestI.h +++ b/cpp/test/Ice/background/TestI.h @@ -11,7 +11,6 @@ #define TEST_I_H #include <Test.h> -#include <TestCommon.h> #include <Configuration.h> #include <set> diff --git a/cpp/test/Ice/binding/AllTests.cpp b/cpp/test/Ice/binding/AllTests.cpp index d64c4681251..7aafd6d0f95 100644 --- a/cpp/test/Ice/binding/AllTests.cpp +++ b/cpp/test/Ice/binding/AllTests.cpp @@ -9,7 +9,7 @@ #include <IceUtil/Random.h> #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #include <set> @@ -101,9 +101,10 @@ deactivate(const RemoteCommunicatorPrxPtr& com, vector<RemoteObjectAdapterPrxPtr } void -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { - string ref = "communicator:" + getTestEndpoint(communicator, 0); + Ice::CommunicatorPtr communicator = helper->communicator(); + string ref = "communicator:" + helper->getTestEndpoint(); RemoteCommunicatorPrxPtr com = ICE_UNCHECKED_CAST(RemoteCommunicatorPrx, communicator->stringToProxy(ref)); RandomNumberGenerator rng; @@ -940,7 +941,7 @@ allTests(const Ice::CommunicatorPtr& communicator) string endpoint; { ostringstream str; - str << "tcp -p " << getTestPort(communicator->getProperties(), 2); + str << "tcp -p " << helper->getTestPort(2); endpoint = str.str(); } diff --git a/cpp/test/Ice/binding/Client.cpp b/cpp/test/Ice/binding/Client.cpp index f0ac6ebc528..7184106d732 100644 --- a/cpp/test/Ice/binding/Client.cpp +++ b/cpp/test/Ice/binding/Client.cpp @@ -8,42 +8,24 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> -DEFINE_TEST("client") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - void allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - return EXIT_SUCCESS; -} +public: -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerIceUDP(true); -# ifdef ICE_HAS_BT - Ice::registerIceBT(false); -# endif -#endif + void run(int, char**); +}; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } +void +Client::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + void allTests(Test::TestHelper*); + allTests(this); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/binding/Server.cpp b/cpp/test/Ice/binding/Server.cpp index 6f717fda278..373b269fe14 100644 --- a/cpp/test/Ice/binding/Server.cpp +++ b/cpp/test/Ice/binding/Server.cpp @@ -8,11 +8,9 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("server") - using namespace std; namespace @@ -58,43 +56,33 @@ public: } -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) +{ + Ice::InitializationData initData; + initData.properties = createTestProperties(argc, argv); + initData.properties->setProperty("Ice.Warn.Connections", "0"); + initData.logger = ICE_MAKE_SHARED(NullLogger); + Ice::CommunicatorHolder communicator = initialize(argc, argv, initData); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); Ice::Identity id = Ice::stringToIdentity("communicator"); adapter->add(ICE_MAKE_SHARED(RemoteCommunicatorI), id); adapter->activate(); - TEST_READY + serverReady(); // Disable ready print for further adapters. communicator->getProperties()->setProperty("Ice.PrintAdapterReady", "0"); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerIceUDP(true); -#endif - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Warn.Connections", "0"); - initData.logger = ICE_MAKE_SHARED(NullLogger); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/binding/TestI.cpp b/cpp/test/Ice/binding/TestI.cpp index a39cb3a5515..ecadd92171b 100644 --- a/cpp/test/Ice/binding/TestI.cpp +++ b/cpp/test/Ice/binding/TestI.cpp @@ -9,13 +9,14 @@ #include <Ice/Ice.h> #include <TestI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace Ice; using namespace Test; -RemoteCommunicatorI::RemoteCommunicatorI() : _nextPort(1) +RemoteCommunicatorI::RemoteCommunicatorI() : + _nextPort(1) { } @@ -39,7 +40,7 @@ RemoteCommunicatorI::createObjectAdapter(const string& name, const string& endpt { if(endpoints.find("-p") == string::npos) { - endpoints = getTestEndpoint(com, _nextPort++, endpoints); + endpoints = TestHelper::getTestEndpoint(com->getProperties(), _nextPort++, endpoints); } } com->getProperties()->setProperty(name + ".ThreadPool.Size", "1"); diff --git a/cpp/test/Ice/binding/TestI.h b/cpp/test/Ice/binding/TestI.h index 3501d11b513..cb3d4423ff7 100644 --- a/cpp/test/Ice/binding/TestI.h +++ b/cpp/test/Ice/binding/TestI.h @@ -11,6 +11,7 @@ #define TEST_I_H #include <Test.h> +#include <TestHelper.h> class RemoteCommunicatorI : public Test::RemoteCommunicator { @@ -19,7 +20,8 @@ public: RemoteCommunicatorI(); #ifdef ICE_CPP11_MAPPING - virtual std::shared_ptr<Test::RemoteObjectAdapterPrx> createObjectAdapter(std::string, std::string, const Ice::Current&); + virtual std::shared_ptr<Test::RemoteObjectAdapterPrx> createObjectAdapter(std::string, std::string, + const Ice::Current&); virtual void deactivateObjectAdapter(std::shared_ptr<Test::RemoteObjectAdapterPrx>, const Ice::Current&); #else virtual Test::RemoteObjectAdapterPrx createObjectAdapter(const std::string&, const std::string&, diff --git a/cpp/test/Ice/checksum/AllTests.cpp b/cpp/test/Ice/checksum/AllTests.cpp index 402aa244347..30a8d2e82c0 100644 --- a/cpp/test/Ice/checksum/AllTests.cpp +++ b/cpp/test/Ice/checksum/AllTests.cpp @@ -8,15 +8,16 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; Test::ChecksumPrxPtr -allTests(const Ice::CommunicatorPtr& communicator, bool) +allTests(Test::TestHelper* helper) { - string ref = "test:" + getTestEndpoint(communicator, 0); + Ice::CommunicatorPtr communicator = helper->communicator(); + string ref = "test:" + helper->getTestEndpoint(); Ice::ObjectPrxPtr base = communicator->stringToProxy(ref); test(base); diff --git a/cpp/test/Ice/checksum/Client.cpp b/cpp/test/Ice/checksum/Client.cpp index da6882af4a1..0450f7d6cb8 100644 --- a/cpp/test/Ice/checksum/Client.cpp +++ b/cpp/test/Ice/checksum/Client.cpp @@ -8,38 +8,25 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; -DEFINE_TEST("client") +class Client : public Test::TestHelper +{ +public: + + void run(int, char**); +}; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +void +Client::run(int argc, char** argv) { - Test::ChecksumPrxPtr allTests(const Ice::CommunicatorPtr&, bool); - Test::ChecksumPrxPtr checksum = allTests(communicator, false); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + Test::ChecksumPrxPtr allTests(Test::TestHelper*); + Test::ChecksumPrxPtr checksum = allTests(this); checksum->shutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/checksum/Server.cpp b/cpp/test/Ice/checksum/Server.cpp index 99870f2b672..e6a2206944b 100644 --- a/cpp/test/Ice/checksum/Server.cpp +++ b/cpp/test/Ice/checksum/Server.cpp @@ -9,40 +9,27 @@ #include <Ice/Ice.h> #include <TestI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; -DEFINE_TEST("server") +class Server : public Test::TestHelper +{ +public: + + void run(int, char**); +}; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +void +Server::run(int argc, char** argv) { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0) + " -t 10000"); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint() + " -t 10000"); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->add(ICE_MAKE_SHARED(ChecksumI), Ice::stringToIdentity("test")); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/custom/AllTests.cpp b/cpp/test/Ice/custom/AllTests.cpp index ea572da9806..39877b6960a 100644 --- a/cpp/test/Ice/custom/AllTests.cpp +++ b/cpp/test/Ice/custom/AllTests.cpp @@ -9,7 +9,7 @@ #include <Ice/Ice.h> #include <IceUtil/Iterator.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #include <Wstring.h> @@ -566,9 +566,10 @@ typedef IceUtil::Handle<Callback> CallbackPtr; #endif Test::TestIntfPrxPtr -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { - const string endp = getTestEndpoint(communicator, 0); + Ice::CommunicatorPtr communicator = helper->communicator(); + const string endp = helper->getTestEndpoint(); cout << "testing stringToProxy... " << flush; string ref = communicator->getProperties()->getPropertyWithDefault("Custom.Proxy", "test:" + endp); Ice::ObjectPrxPtr base = communicator->stringToProxy(ref); diff --git a/cpp/test/Ice/custom/Client.cpp b/cpp/test/Ice/custom/Client.cpp index 98586420b8c..efcca325d29 100644 --- a/cpp/test/Ice/custom/Client.cpp +++ b/cpp/test/Ice/custom/Client.cpp @@ -8,54 +8,28 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #include <StringConverterI.h> using namespace std; -DEFINE_TEST("client") - -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - Test::TestIntfPrxPtr allTests(const Ice::CommunicatorPtr&); - Test::TestIntfPrxPtr test = allTests(communicator); - test->shutdown(); +public: - return EXIT_SUCCESS; -} + void run(int, char**); +}; -int -main(int argc, char** argv) +void +Client::run(int argc, char** argv) { -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - int status; - Ice::CommunicatorPtr communicator; - - try - { - setProcessStringConverter(ICE_MAKE_SHARED(Test::StringConverterI)); - setProcessWstringConverter(ICE_MAKE_SHARED(Test::WstringConverterI)); - - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << ": " << ex.ice_stackTrace() << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; - + setProcessStringConverter(ICE_MAKE_SHARED(Test::StringConverterI)); + setProcessWstringConverter(ICE_MAKE_SHARED(Test::WstringConverterI)); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + Test::TestIntfPrxPtr allTests(Test::TestHelper*); + Test::TestIntfPrxPtr test = allTests(this); + test->shutdown(); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/custom/Collocated.cpp b/cpp/test/Ice/custom/Collocated.cpp index 3d293a69a83..6ff959f5b16 100644 --- a/cpp/test/Ice/custom/Collocated.cpp +++ b/cpp/test/Ice/custom/Collocated.cpp @@ -8,59 +8,36 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> #include <WstringI.h> #include <StringConverterI.h> using namespace std; -DEFINE_TEST("collocated") - -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Collocated : public Test::TestHelper { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); - Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); - adapter->add(ICE_MAKE_SHARED(TestIntfI, communicator), Ice::stringToIdentity("TEST")); - adapter->add(ICE_MAKE_SHARED(Test1::WstringClassI), Ice::stringToIdentity("WSTRING1")); - adapter->add(ICE_MAKE_SHARED(Test2::WstringClassI), Ice::stringToIdentity("WSTRING2")); - - Test::TestIntfPrxPtr allTests(const Ice::CommunicatorPtr&); - allTests(communicator); +public: - return EXIT_SUCCESS; -} + void run(int, char**); +}; -int -main(int argc, char** argv) +void +Collocated::run(int argc, char** argv) { -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - int status; - Ice::CommunicatorPtr communicator; + setProcessStringConverter(ICE_MAKE_SHARED(Test::StringConverterI)); + setProcessWstringConverter(ICE_MAKE_SHARED(Test::WstringConverterI)); - try - { - setProcessStringConverter(ICE_MAKE_SHARED(Test::StringConverterI)); - setProcessWstringConverter(ICE_MAKE_SHARED(Test::WstringConverterI)); + Ice::CommunicatorHolder communicator = initialize(argc, argv); - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); + Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); + adapter->add(ICE_MAKE_SHARED(TestIntfI), Ice::stringToIdentity("TEST")); + adapter->add(ICE_MAKE_SHARED(Test1::WstringClassI), Ice::stringToIdentity("WSTRING1")); + adapter->add(ICE_MAKE_SHARED(Test2::WstringClassI), Ice::stringToIdentity("WSTRING2")); - return status; + Test::TestIntfPrxPtr allTests(Test::TestHelper*); + allTests(this); } + +DEFINE_TEST(Collocated) diff --git a/cpp/test/Ice/custom/Server.cpp b/cpp/test/Ice/custom/Server.cpp index 49a2ca775c9..3c1ecbfe06f 100644 --- a/cpp/test/Ice/custom/Server.cpp +++ b/cpp/test/Ice/custom/Server.cpp @@ -8,60 +8,35 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> #include <WstringI.h> #include <StringConverterI.h> using namespace std; -DEFINE_TEST("server") +class Server : public Test::TestHelper +{ +public: + + void run(int, char**); +}; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +void +Server::run(int argc, char** argv) { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); + setProcessStringConverter(ICE_MAKE_SHARED(Test::StringConverterI)); + setProcessWstringConverter(ICE_MAKE_SHARED(Test::WstringConverterI)); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); - adapter->add(ICE_MAKE_SHARED(TestIntfI, communicator), Ice::stringToIdentity("TEST")); + adapter->add(ICE_MAKE_SHARED(TestIntfI), Ice::stringToIdentity("TEST")); adapter->add(ICE_MAKE_SHARED(Test1::WstringClassI), Ice::stringToIdentity("WSTRING1")); adapter->add(ICE_MAKE_SHARED(Test2::WstringClassI), Ice::stringToIdentity("WSTRING2")); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - - return EXIT_SUCCESS; } -int -main(int argc, char** argv) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - int status; - Ice::CommunicatorPtr communicator; - - try - { - setProcessStringConverter(ICE_MAKE_SHARED(Test::StringConverterI)); - setProcessWstringConverter(ICE_MAKE_SHARED(Test::WstringConverterI)); - - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/custom/ServerAMD.cpp b/cpp/test/Ice/custom/ServerAMD.cpp index 1afc87208f5..5cc6de32135 100644 --- a/cpp/test/Ice/custom/ServerAMD.cpp +++ b/cpp/test/Ice/custom/ServerAMD.cpp @@ -8,60 +8,37 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestAMDI.h> #include <WstringAMDI.h> #include <StringConverterI.h> using namespace std; -DEFINE_TEST("serveramd") +class ServerAMD : public Test::TestHelper +{ +public: + + void run(int, char**); +}; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +void +ServerAMD::run(int argc, char** argv) { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); + setProcessStringConverter(ICE_MAKE_SHARED(Test::StringConverterI)); + setProcessWstringConverter(ICE_MAKE_SHARED(Test::WstringConverterI)); + + Ice::CommunicatorHolder communicator = initialize(argc, argv); + + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); - adapter->add(ICE_MAKE_SHARED(TestIntfI,communicator), Ice::stringToIdentity("TEST")); + adapter->add(ICE_MAKE_SHARED(TestIntfI), Ice::stringToIdentity("TEST")); adapter->add(ICE_MAKE_SHARED(Test1::WstringClassI), Ice::stringToIdentity("WSTRING1")); adapter->add(ICE_MAKE_SHARED(Test2::WstringClassI), Ice::stringToIdentity("WSTRING2")); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - - return EXIT_SUCCESS; } -int -main(int argc, char** argv) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - int status; - Ice::CommunicatorPtr communicator; - - try - { - setProcessStringConverter(ICE_MAKE_SHARED(Test::StringConverterI)); - setProcessWstringConverter(ICE_MAKE_SHARED(Test::WstringConverterI)); - - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(ServerAMD) diff --git a/cpp/test/Ice/custom/TestAMDI.cpp b/cpp/test/Ice/custom/TestAMDI.cpp index fc7337cfe85..ae8c53f118c 100644 --- a/cpp/test/Ice/custom/TestAMDI.cpp +++ b/cpp/test/Ice/custom/TestAMDI.cpp @@ -10,11 +10,6 @@ #include <Ice/Communicator.h> #include <TestAMDI.h> -TestIntfI::TestIntfI(const Ice::CommunicatorPtr& communicator) - : _communicator(communicator) -{ -} - #ifdef ICE_CPP11_MAPPING void @@ -343,9 +338,10 @@ TestIntfI::opBufferStructAsync(Test::BufferStruct in, void TestIntfI::shutdownAsync(std::function<void()> response, - std::function<void(std::exception_ptr)>, const Ice::Current&) + std::function<void(std::exception_ptr)>, + const Ice::Current& current) { - _communicator->shutdown(); + current.adapter->getCommunicator()->shutdown(); response(); } @@ -694,9 +690,9 @@ TestIntfI::opBufferStruct_async(const Test::AMD_TestIntf_opBufferStructPtr& cb, void TestIntfI::shutdown_async(const Test::AMD_TestIntf_shutdownPtr& shutdownCB, - const Ice::Current&) + const Ice::Current& current) { - _communicator->shutdown(); + current.adapter->getCommunicator()->shutdown(); shutdownCB->ice_response(); } #endif diff --git a/cpp/test/Ice/custom/TestAMDI.h b/cpp/test/Ice/custom/TestAMDI.h index e28bdc7c409..12e0b02d887 100644 --- a/cpp/test/Ice/custom/TestAMDI.h +++ b/cpp/test/Ice/custom/TestAMDI.h @@ -16,8 +16,6 @@ class TestIntfI : public virtual Test::TestIntf { public: - TestIntfI(const Ice::CommunicatorPtr&); - #ifdef ICE_CPP11_MAPPING void opDoubleArrayAsync(std::pair<const ::Ice::Double*, const ::Ice::Double*>, @@ -343,10 +341,6 @@ public: virtual void shutdown_async(const Test::AMD_TestIntf_shutdownPtr&, const Ice::Current&); #endif - -private: - - Ice::CommunicatorPtr _communicator; }; #endif diff --git a/cpp/test/Ice/custom/TestI.cpp b/cpp/test/Ice/custom/TestI.cpp index 6f9567d611f..99c68bd47eb 100644 --- a/cpp/test/Ice/custom/TestI.cpp +++ b/cpp/test/Ice/custom/TestI.cpp @@ -10,11 +10,6 @@ #include <Ice/Communicator.h> #include <TestI.h> -TestIntfI::TestIntfI(const Ice::CommunicatorPtr& communicator) - : _communicator(communicator) -{ -} - Test::DoubleSeq TestIntfI::opDoubleArray(ICE_IN(std::pair<const Ice::Double*, const Ice::Double*>) inSeq, Test::DoubleSeq& outSeq, @@ -461,7 +456,7 @@ TestIntfI::opBufferStruct(ICE_IN(Test::BufferStruct) bs, const Ice::Current&) } void -TestIntfI::shutdown(const Ice::Current&) +TestIntfI::shutdown(const Ice::Current& current) { - _communicator->shutdown(); + current.adapter->getCommunicator()->shutdown(); } diff --git a/cpp/test/Ice/custom/TestI.h b/cpp/test/Ice/custom/TestI.h index 0f429f7195d..85cb924bc7e 100644 --- a/cpp/test/Ice/custom/TestI.h +++ b/cpp/test/Ice/custom/TestI.h @@ -16,8 +16,6 @@ class TestIntfI : public virtual Test::TestIntf { public: - TestIntfI(const Ice::CommunicatorPtr&); - virtual Test::DoubleSeq opDoubleArray(ICE_IN(std::pair<const Ice::Double*, const Ice::Double*>), Test::DoubleSeq&, const Ice::Current&); @@ -207,10 +205,6 @@ public: Test::BufferStruct opBufferStruct(ICE_IN(Test::BufferStruct), const Ice::Current&); virtual void shutdown(const Ice::Current&); - -private: - - Ice::CommunicatorPtr _communicator; }; #endif diff --git a/cpp/test/Ice/defaultServant/AllTests.cpp b/cpp/test/Ice/defaultServant/AllTests.cpp index 52665d7019c..146f29cdf32 100644 --- a/cpp/test/Ice/defaultServant/AllTests.cpp +++ b/cpp/test/Ice/defaultServant/AllTests.cpp @@ -8,15 +8,16 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> using namespace std; using namespace Test; void -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { + Ice::CommunicatorPtr communicator = helper->communicator(); Ice::ObjectAdapterPtr oa = communicator->createObjectAdapterWithEndpoints("MyOA", "tcp -h localhost"); oa->activate(); diff --git a/cpp/test/Ice/defaultServant/Client.cpp b/cpp/test/Ice/defaultServant/Client.cpp index 18e4fd6fecf..50558f8f63f 100644 --- a/cpp/test/Ice/defaultServant/Client.cpp +++ b/cpp/test/Ice/defaultServant/Client.cpp @@ -8,38 +8,25 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; using namespace Test; -DEFINE_TEST("client") - -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - void allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - return EXIT_SUCCESS; -} +public: -int -main(int argc, char* argv[]) + void run(int, char**); +}; + +void +Client::run(int argc, char** argv) { -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } + Ice::CommunicatorHolder communicator = initialize(argc, argv); + void allTests(Test::TestHelper*); + allTests(this); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/defaultValue/AllTests.cpp b/cpp/test/Ice/defaultValue/AllTests.cpp index a4b00e4e375..3eacb6b0273 100644 --- a/cpp/test/Ice/defaultValue/AllTests.cpp +++ b/cpp/test/Ice/defaultValue/AllTests.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; diff --git a/cpp/test/Ice/defaultValue/Client.cpp b/cpp/test/Ice/defaultValue/Client.cpp index 2a78e52bfff..3057e93e872 100644 --- a/cpp/test/Ice/defaultValue/Client.cpp +++ b/cpp/test/Ice/defaultValue/Client.cpp @@ -8,37 +8,24 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; using namespace Test; -DEFINE_TEST("client") +class Client : public Test::TestHelper +{ +public: + + void run(int, char**); +}; -int -run(int, char**) +void +Client::run(int argc, char** argv) { void allTests(); allTests(); - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ - int status; - - try - { - status = run(argc, argv); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - return status; -} +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/defaultValue/msbuild/client.vcxproj b/cpp/test/Ice/defaultValue/msbuild/client.vcxproj index 17299afb31d..177d047be21 100644 --- a/cpp/test/Ice/defaultValue/msbuild/client.vcxproj +++ b/cpp/test/Ice/defaultValue/msbuild/client.vcxproj @@ -40,7 +40,7 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{80FE3863-C289-4BDE-833C-256D5E5.0.4A}</ProjectGuid> + <ProjectGuid>{80FE3863-C289-4BDE-833C-256D5E54093A}</ProjectGuid> <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> diff --git a/cpp/test/Ice/dispatcher/AllTests.cpp b/cpp/test/Ice/dispatcher/AllTests.cpp index 4abfb3db9cd..c153d535846 100644 --- a/cpp/test/Ice/dispatcher/AllTests.cpp +++ b/cpp/test/Ice/dispatcher/AllTests.cpp @@ -9,7 +9,7 @@ #include <Ice/Ice.h> #include <IceUtil/Random.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #include <Dispatcher.h> @@ -113,15 +113,16 @@ ICE_DEFINE_PTR(CallbackPtr, Callback); } void -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { - string sref = "test:" + getTestEndpoint(communicator, 0); + Ice::CommunicatorPtr communicator = helper->communicator(); + string sref = "test:" + helper->getTestEndpoint(); Ice::ObjectPrxPtr obj = communicator->stringToProxy(sref); test(obj); Test::TestIntfPrxPtr p = ICE_UNCHECKED_CAST(Test::TestIntfPrx, obj); - sref = "testController:" + getTestEndpoint(communicator, 1, "tcp"); + sref = "testController:" + helper->getTestEndpoint(1, "tcp"); obj = communicator->stringToProxy(sref); test(obj); diff --git a/cpp/test/Ice/dispatcher/Client.cpp b/cpp/test/Ice/dispatcher/Client.cpp index 53fa9667baf..62798c5f374 100644 --- a/cpp/test/Ice/dispatcher/Client.cpp +++ b/cpp/test/Ice/dispatcher/Client.cpp @@ -8,57 +8,43 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #include <Dispatcher.h> -DEFINE_TEST("client") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - void allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - return EXIT_SUCCESS; -} +public: -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - int status; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); + void run(int, char**); +}; - // - // Limit the send buffer size, this test relies on the socket - // send() blocking after sending a given amount of data. - // - initData.properties->setProperty("Ice.TCP.SndSize", "50000"); +void +Client::run(int argc, char** argv) +{ + Ice::InitializationData initData; + initData.properties = createTestProperties(argc, argv); + // + // Limit the send buffer size, this test relies on the socket + // send() blocking after sending a given amount of data. + // + initData.properties->setProperty("Ice.TCP.SndSize", "50000"); #ifdef ICE_CPP11_MAPPING - IceUtil::Handle<Dispatcher> dispatcher = new Dispatcher; - initData.dispatcher = [=](function<void()> call, const shared_ptr<Ice::Connection>& conn) - { - dispatcher->dispatch(make_shared<DispatcherCall>(call), conn); - }; + IceUtil::Handle<Dispatcher> dispatcher = new Dispatcher; + initData.dispatcher = [=](function<void()> call, const shared_ptr<Ice::Connection>& conn) + { + dispatcher->dispatch(make_shared<DispatcherCall>(call), conn); + }; #else - initData.dispatcher = new Dispatcher(); + initData.dispatcher = new Dispatcher(); #endif - Ice::CommunicatorHolder ich(argc, argv, initData); - status = run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - Dispatcher::terminate(); - return status; + Ice::CommunicatorHolder communicator = initialize(argc, argv, initData); + + void allTests(Test::TestHelper*); + allTests(this); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/dispatcher/Collocated.cpp b/cpp/test/Ice/dispatcher/Collocated.cpp index ddac767ebec..db7d8bdb32b 100644 --- a/cpp/test/Ice/dispatcher/Collocated.cpp +++ b/cpp/test/Ice/dispatcher/Collocated.cpp @@ -8,19 +8,37 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> #include <Dispatcher.h> -DEFINE_TEST("collocated") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Collocated : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Collocated::run(int argc, char** argv) { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); - communicator->getProperties()->setProperty("ControllerAdapter.Endpoints", getTestEndpoint(communicator, 1, "tcp")); + Ice::InitializationData initData; + initData.properties = createTestProperties(argc, argv); +#ifdef ICE_CPP11_MAPPING + IceUtil::Handle<Dispatcher> dispatcher = new Dispatcher; + initData.dispatcher = [=](function<void()> call, const shared_ptr<Ice::Connection>& conn) + { + dispatcher->dispatch(make_shared<DispatcherCall>(call), conn); + }; +#else + initData.dispatcher = new Dispatcher(); +#endif + Ice::CommunicatorHolder communicator = initialize(argc, argv, initData); + + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); + communicator->getProperties()->setProperty("ControllerAdapter.Endpoints", getTestEndpoint(1, "tcp")); communicator->getProperties()->setProperty("ControllerAdapter.ThreadPool.Size", "1"); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); @@ -34,39 +52,10 @@ run(int, char**, const Ice::CommunicatorPtr& communicator) adapter2->add(testController, Ice::stringToIdentity("testController")); //adapter2->activate(); // Don't activate OA to ensure collocation is used. - void allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - return EXIT_SUCCESS; -} + void allTests(Test::TestHelper*); + allTests(this); -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - int status; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); -#ifdef ICE_CPP11_MAPPING - IceUtil::Handle<Dispatcher> dispatcher = new Dispatcher; - initData.dispatcher = [=](function<void()> call, const shared_ptr<Ice::Connection>& conn) - { - dispatcher->dispatch(make_shared<DispatcherCall>(call), conn); - }; -#else - initData.dispatcher = new Dispatcher(); -#endif - Ice::CommunicatorHolder ich(argc, argv, initData); - status = run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } Dispatcher::terminate(); - return status; } + +DEFINE_TEST(Collocated) diff --git a/cpp/test/Ice/dispatcher/Dispatcher.cpp b/cpp/test/Ice/dispatcher/Dispatcher.cpp index 036743b7c59..c3d3bf5eb76 100644 --- a/cpp/test/Ice/dispatcher/Dispatcher.cpp +++ b/cpp/test/Ice/dispatcher/Dispatcher.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Dispatcher.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; diff --git a/cpp/test/Ice/dispatcher/Server.cpp b/cpp/test/Ice/dispatcher/Server.cpp index 4423bf1ccde..423b5b79773 100644 --- a/cpp/test/Ice/dispatcher/Server.cpp +++ b/cpp/test/Ice/dispatcher/Server.cpp @@ -9,18 +9,42 @@ #include <Ice/Ice.h> #include <TestI.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Dispatcher.h> -DEFINE_TEST("server") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); - communicator->getProperties()->setProperty("ControllerAdapter.Endpoints", getTestEndpoint(communicator, 1, "tcp")); +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) +{ + Ice::InitializationData initData; + initData.properties = createTestProperties(argc, argv); + // + // Limit the recv buffer size, this test relies on the socket + // send() blocking after sending a given amount of data. + // + initData.properties->setProperty("Ice.TCP.RcvSize", "50000"); + +#ifdef ICE_CPP11_MAPPING + IceUtil::Handle<Dispatcher> dispatcher = new Dispatcher; + initData.dispatcher = [=](function<void()> call, const shared_ptr<Ice::Connection>& conn) + { + dispatcher->dispatch(make_shared<DispatcherCall>(call), conn); + }; +#else + initData.dispatcher = new Dispatcher(); +#endif + Ice::CommunicatorHolder communicator = initialize(argc, argv, initData); + + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); + communicator->getProperties()->setProperty("ControllerAdapter.Endpoints", getTestEndpoint(1, "tcp")); communicator->getProperties()->setProperty("ControllerAdapter.ThreadPool.Size", "1"); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); @@ -34,47 +58,11 @@ run(int, char**, const Ice::CommunicatorPtr& communicator) adapter2->add(testController, Ice::stringToIdentity("testController")); adapter2->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; -} - -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - int status; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - - // - // Limit the recv buffer size, this test relies on the socket - // send() blocking after sending a given amount of data. - // - initData.properties->setProperty("Ice.TCP.RcvSize", "50000"); -#ifdef ICE_CPP11_MAPPING - IceUtil::Handle<Dispatcher> dispatcher = new Dispatcher; - initData.dispatcher = [=](function<void()> call, const shared_ptr<Ice::Connection>& conn) - { - dispatcher->dispatch(make_shared<DispatcherCall>(call), conn); - }; -#else - initData.dispatcher = new Dispatcher(); -#endif - Ice::CommunicatorHolder ich(argc, argv, initData); - status = run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } Dispatcher::terminate(); - return status; } + +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/dispatcher/TestI.cpp b/cpp/test/Ice/dispatcher/TestI.cpp index bf7ec975d90..1280757808a 100644 --- a/cpp/test/Ice/dispatcher/TestI.cpp +++ b/cpp/test/Ice/dispatcher/TestI.cpp @@ -10,7 +10,7 @@ #include <TestI.h> #include <Ice/Ice.h> #include <Dispatcher.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <IceUtil/Thread.h> using namespace std; diff --git a/cpp/test/Ice/echo/Server.cpp b/cpp/test/Ice/echo/Server.cpp index 6ff9d6e8466..b701a9ab055 100644 --- a/cpp/test/Ice/echo/Server.cpp +++ b/cpp/test/Ice/echo/Server.cpp @@ -8,12 +8,10 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <BlobjectI.h> #include <Test.h> -DEFINE_TEST("server") - using namespace std; class EchoI : public Test::Echo @@ -50,44 +48,25 @@ private: BlobjectIPtr _blob; }; -int -run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); BlobjectIPtr blob = ICE_MAKE_SHARED(BlobjectI); adapter->addDefaultServant(blob, ""); adapter->add(ICE_MAKE_SHARED(EchoI, blob), Ice::stringToIdentity("__echo")); adapter->activate(); - - TEST_READY - + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ - int status; - Ice::CommunicatorPtr communicator; - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/enums/AllTests.cpp b/cpp/test/Ice/enums/AllTests.cpp index 96e4da36b1c..d843cff6d80 100644 --- a/cpp/test/Ice/enums/AllTests.cpp +++ b/cpp/test/Ice/enums/AllTests.cpp @@ -8,16 +8,17 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; using namespace Test; TestIntfPrxPtr -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { - string ref = "test:" + getTestEndpoint(communicator, 0); + Ice::CommunicatorPtr communicator = helper->communicator(); + string ref = "test:" + helper->getTestEndpoint(); Ice::ObjectPrxPtr obj = communicator->stringToProxy(ref); test(obj); TestIntfPrxPtr proxy = ICE_CHECKED_CAST(TestIntfPrx, obj); diff --git a/cpp/test/Ice/enums/Client.cpp b/cpp/test/Ice/enums/Client.cpp index f1184a24501..31388a38fe0 100644 --- a/cpp/test/Ice/enums/Client.cpp +++ b/cpp/test/Ice/enums/Client.cpp @@ -8,43 +8,26 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> -DEFINE_TEST("client") - using namespace std; using namespace Test; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - TestIntfPrxPtr allTests(const Ice::CommunicatorPtr&); - TestIntfPrxPtr t = allTests(communicator); - t->shutdown(); - return EXIT_SUCCESS; -} +public: -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -# ifdef ICE_HAS_BT - Ice::registerIceBT(false); -# endif -#endif + void run(int, char**); +}; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } +void +Client::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + TestIntfPrxPtr allTests(Test::TestHelper*); + TestIntfPrxPtr t = allTests(this); + t->shutdown(); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/enums/Server.cpp b/cpp/test/Ice/enums/Server.cpp index e6e2cb5853a..0c0958f129a 100644 --- a/cpp/test/Ice/enums/Server.cpp +++ b/cpp/test/Ice/enums/Server.cpp @@ -8,44 +8,29 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("server") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->add(ICE_MAKE_SHARED(TestIntfI), Ice::stringToIdentity("test")); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/enums/TestI.h b/cpp/test/Ice/enums/TestI.h index 06ffc54a94c..01c6e4f10e0 100644 --- a/cpp/test/Ice/enums/TestI.h +++ b/cpp/test/Ice/enums/TestI.h @@ -11,7 +11,6 @@ #define TEST_I_H #include <Test.h> -#include <TestCommon.h> class TestIntfI : public virtual Test::TestIntf { diff --git a/cpp/test/Ice/exceptions/AllTests.cpp b/cpp/test/Ice/exceptions/AllTests.cpp index 9940da22f57..ba305f19bc7 100644 --- a/cpp/test/Ice/exceptions/AllTests.cpp +++ b/cpp/test/Ice/exceptions/AllTests.cpp @@ -9,7 +9,7 @@ #include <IceUtil/IceUtil.h> #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; @@ -402,8 +402,9 @@ endsWith(const string& s, const string& findme) } ThrowerPrxPtr -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { + Ice::CommunicatorPtr communicator = helper->communicator(); const string protocol = communicator->getProperties()->getProperty("Ice.Default.Protocol"); cout << "testing ice_print()/what()... " << flush; @@ -691,7 +692,7 @@ allTests(const Ice::CommunicatorPtr& communicator) cout << "ok" << endl; cout << "testing stringToProxy... " << flush; - string ref = "thrower:" + getTestEndpoint(communicator, 0); + string ref = "thrower:" + helper->getTestEndpoint(); Ice::ObjectPrxPtr base = communicator->stringToProxy(ref); test(base); cout << "ok" << endl; @@ -1002,7 +1003,7 @@ allTests(const Ice::CommunicatorPtr& communicator) try { ThrowerPrxPtr thrower2 = - ICE_UNCHECKED_CAST(ThrowerPrx, communicator->stringToProxy("thrower:" + getTestEndpoint(communicator, 1))); + ICE_UNCHECKED_CAST(ThrowerPrx, communicator->stringToProxy("thrower:" + helper->getTestEndpoint(1))); try { thrower2->throwMemoryLimitException(Ice::ByteSeq(2 * 1024 * 1024)); // 2MB (no limits) @@ -1011,7 +1012,7 @@ allTests(const Ice::CommunicatorPtr& communicator) { } ThrowerPrxPtr thrower3 = - ICE_UNCHECKED_CAST(ThrowerPrx, communicator->stringToProxy("thrower:" + getTestEndpoint(communicator, 2))); + ICE_UNCHECKED_CAST(ThrowerPrx, communicator->stringToProxy("thrower:" + helper->getTestEndpoint(2))); try { thrower3->throwMemoryLimitException(Ice::ByteSeq(1024)); // 1KB limit diff --git a/cpp/test/Ice/exceptions/Client.cpp b/cpp/test/Ice/exceptions/Client.cpp index 89135606fb7..9a90cfdff5f 100644 --- a/cpp/test/Ice/exceptions/Client.cpp +++ b/cpp/test/Ice/exceptions/Client.cpp @@ -8,46 +8,30 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> -DEFINE_TEST("client") - using namespace std; using namespace Test; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - ThrowerPrxPtr allTests(const Ice::CommunicatorPtr&); - ThrowerPrxPtr thrower = allTests(communicator); - thrower->shutdown(); - return EXIT_SUCCESS; -} +public: -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -# ifdef ICE_HAS_BT - Ice::registerIceBT(false); -# endif -#endif + void run(int, char**); +}; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Warn.Connections", "0"); - initData.properties->setProperty("Ice.MessageSizeMax", "10"); // 10KB max +void +Client::run(int argc, char** argv) +{ + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Warn.Connections", "0"); + properties->setProperty("Ice.MessageSizeMax", "10"); // 10KB max + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } + ThrowerPrxPtr allTests(Test::TestHelper*); + ThrowerPrxPtr thrower = allTests(this); + thrower->shutdown(); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/exceptions/Collocated.cpp b/cpp/test/Ice/exceptions/Collocated.cpp index 8c6a13affde..37ca380d05e 100644 --- a/cpp/test/Ice/exceptions/Collocated.cpp +++ b/cpp/test/Ice/exceptions/Collocated.cpp @@ -8,49 +8,36 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("collocated"); - using namespace std; using namespace Test; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Collocated : public Test::TestHelper { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); +public: + + void run(int, char**); +}; + +void +Collocated::run(int argc, char** argv) +{ + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.MessageSizeMax", "10"); // 10KB max + properties->setProperty("Ice.Warn.Connections", "0"); + properties->setProperty("Ice.Warn.Dispatch", "0"); + + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); Ice::ObjectPtr object = ICE_MAKE_SHARED(ThrowerI); adapter->add(object, Ice::stringToIdentity("thrower")); - ThrowerPrxPtr allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - - return EXIT_SUCCESS; + ThrowerPrxPtr allTests(Test::TestHelper*); + allTests(this); } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.MessageSizeMax", "10"); // 10KB max - initData.properties->setProperty("Ice.Warn.Connections", "0"); - initData.properties->setProperty("Ice.Warn.Dispatch", "0"); - - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Collocated) diff --git a/cpp/test/Ice/exceptions/Server.cpp b/cpp/test/Ice/exceptions/Server.cpp index 2bc9ddc2fbc..e70f58f0c93 100644 --- a/cpp/test/Ice/exceptions/Server.cpp +++ b/cpp/test/Ice/exceptions/Server.cpp @@ -8,20 +8,32 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("server"); - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); - communicator->getProperties()->setProperty("TestAdapter2.Endpoints", getTestEndpoint(communicator, 1)); +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) +{ + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Warn.Dispatch", "0"); + properties->setProperty("Ice.Warn.Connections", "0"); + properties->setProperty("Ice.MessageSizeMax", "10"); // 10KB max + + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); + communicator->getProperties()->setProperty("TestAdapter2.Endpoints", getTestEndpoint(1)); communicator->getProperties()->setProperty("TestAdapter2.MessageSizeMax", "0"); - communicator->getProperties()->setProperty("TestAdapter3.Endpoints", getTestEndpoint(communicator, 2)); + communicator->getProperties()->setProperty("TestAdapter3.Endpoints", getTestEndpoint(2)); communicator->getProperties()->setProperty("TestAdapter3.MessageSizeMax", "1"); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); Ice::ObjectAdapterPtr adapter2 = communicator->createObjectAdapter("TestAdapter2"); @@ -33,33 +45,8 @@ run(int, char**, const Ice::CommunicatorPtr& communicator) adapter->activate(); adapter2->activate(); adapter3->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerIceUDP(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Warn.Dispatch", "0"); - initData.properties->setProperty("Ice.Warn.Connections", "0"); - initData.properties->setProperty("Ice.MessageSizeMax", "10"); // 10KB max - - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/exceptions/ServerAMD.cpp b/cpp/test/Ice/exceptions/ServerAMD.cpp index 7e2a7b61750..f7624403c35 100644 --- a/cpp/test/Ice/exceptions/ServerAMD.cpp +++ b/cpp/test/Ice/exceptions/ServerAMD.cpp @@ -8,20 +8,31 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestAMDI.h> -DEFINE_TEST("serveramd"); - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class ServerAMD : public Test::TestHelper { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); - communicator->getProperties()->setProperty("TestAdapter2.Endpoints", getTestEndpoint(communicator, 1)); +public: + + void run(int, char**); +}; + +void +ServerAMD::run(int argc, char** argv) +{ + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Warn.Dispatch", "0"); + properties->setProperty("Ice.Warn.Connections", "0"); + properties->setProperty("Ice.MessageSizeMax", "10"); // 10KB max + + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(0)); + communicator->getProperties()->setProperty("TestAdapter2.Endpoints", getTestEndpoint(1)); communicator->getProperties()->setProperty("TestAdapter2.MessageSizeMax", "0"); - communicator->getProperties()->setProperty("TestAdapter3.Endpoints", getTestEndpoint(communicator, 2)); + communicator->getProperties()->setProperty("TestAdapter3.Endpoints", getTestEndpoint(2)); communicator->getProperties()->setProperty("TestAdapter3.MessageSizeMax", "1"); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); Ice::ObjectAdapterPtr adapter2 = communicator->createObjectAdapter("TestAdapter2"); @@ -33,33 +44,8 @@ run(int, char**, const Ice::CommunicatorPtr& communicator) adapter->activate(); adapter2->activate(); adapter3->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerIceUDP(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Warn.Dispatch", "0"); - initData.properties->setProperty("Ice.Warn.Connections", "0"); - initData.properties->setProperty("Ice.MessageSizeMax", "10"); // 10KB max - - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(ServerAMD) diff --git a/cpp/test/Ice/exceptions/TestAMDI.cpp b/cpp/test/Ice/exceptions/TestAMDI.cpp index 9409fc9bd06..c423a8381fb 100644 --- a/cpp/test/Ice/exceptions/TestAMDI.cpp +++ b/cpp/test/Ice/exceptions/TestAMDI.cpp @@ -9,7 +9,7 @@ #include <Ice/Ice.h> #include <TestAMDI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace Test; using namespace std; diff --git a/cpp/test/Ice/exceptions/TestAMDI.h b/cpp/test/Ice/exceptions/TestAMDI.h index a89f14f9fc4..747a8d2a825 100644 --- a/cpp/test/Ice/exceptions/TestAMDI.h +++ b/cpp/test/Ice/exceptions/TestAMDI.h @@ -11,7 +11,6 @@ #define TEST_I_H #include <TestAMD.h> -#include <TestCommon.h> bool endsWith(const std::string&, const std::string&); diff --git a/cpp/test/Ice/exceptions/TestI.cpp b/cpp/test/Ice/exceptions/TestI.cpp index ee1db2a4019..5d309d414bb 100644 --- a/cpp/test/Ice/exceptions/TestI.cpp +++ b/cpp/test/Ice/exceptions/TestI.cpp @@ -9,7 +9,7 @@ #include <Ice/Ice.h> #include <TestI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace Test; using namespace std; diff --git a/cpp/test/Ice/exceptions/TestI.h b/cpp/test/Ice/exceptions/TestI.h index 30f69ddbc62..c4ae7b8e6b0 100644 --- a/cpp/test/Ice/exceptions/TestI.h +++ b/cpp/test/Ice/exceptions/TestI.h @@ -11,7 +11,6 @@ #define TEST_I_H #include <Test.h> -#include <TestCommon.h> bool endsWith(const std::string&, const std::string&); diff --git a/cpp/test/Ice/facets/AllTests.cpp b/cpp/test/Ice/facets/AllTests.cpp index c46bec6db5d..fffc9424bec 100644 --- a/cpp/test/Ice/facets/AllTests.cpp +++ b/cpp/test/Ice/facets/AllTests.cpp @@ -9,7 +9,7 @@ #include <Ice/Ice.h> #include <IceUtil/IceUtil.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; @@ -20,8 +20,9 @@ class EmptyI : public virtual Empty }; GPrxPtr -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { + Ice::CommunicatorPtr communicator = helper->communicator(); #ifdef ICE_OS_UWP bool uwp = true; #else @@ -122,7 +123,7 @@ allTests(const Ice::CommunicatorPtr& communicator) } cout << "testing stringToProxy... " << flush; - string ref = "d:" + getTestEndpoint(communicator, 0); + string ref = "d:" + helper->getTestEndpoint(); Ice::ObjectPrxPtr db = communicator->stringToProxy(ref); test(db); cout << "ok" << endl; diff --git a/cpp/test/Ice/facets/Client.cpp b/cpp/test/Ice/facets/Client.cpp index 6b525c0387a..81844551ec8 100644 --- a/cpp/test/Ice/facets/Client.cpp +++ b/cpp/test/Ice/facets/Client.cpp @@ -8,43 +8,26 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> -DEFINE_TEST("client") - using namespace std; using namespace Test; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - GPrxPtr allTests(const Ice::CommunicatorPtr&); - GPrxPtr g = allTests(communicator); - g->shutdown(); - return EXIT_SUCCESS; -} +public: -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -# ifdef ICE_HAS_BT - Ice::registerIceBT(false); -# endif -#endif + void run(int, char**); +}; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } +void +Client::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + GPrxPtr allTests(Test::TestHelper*); + GPrxPtr g = allTests(this); + g->shutdown(); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/facets/Collocated.cpp b/cpp/test/Ice/facets/Collocated.cpp index a1501525503..43a7d9d8f3a 100644 --- a/cpp/test/Ice/facets/Collocated.cpp +++ b/cpp/test/Ice/facets/Collocated.cpp @@ -8,50 +8,35 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("server") - using namespace std; using namespace Test; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Collocated : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Collocated::run(int argc, char** argv) { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); Ice::ObjectPtr d = ICE_MAKE_SHARED(DI); adapter->add(d, Ice::stringToIdentity("d")); adapter->addFacet(d, Ice::stringToIdentity("d"), "facetABCD"); Ice::ObjectPtr f = ICE_MAKE_SHARED(FI); adapter->addFacet(f, Ice::stringToIdentity("d"), "facetEF"); - Ice::ObjectPtr h = ICE_MAKE_SHARED(HI, communicator); + Ice::ObjectPtr h = ICE_MAKE_SHARED(HI); adapter->addFacet(h, Ice::stringToIdentity("d"), "facetGH"); - GPrxPtr allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - - return EXIT_SUCCESS; + GPrxPtr allTests(Test::TestHelper*); + allTests(this); } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Collocated) diff --git a/cpp/test/Ice/facets/Server.cpp b/cpp/test/Ice/facets/Server.cpp index ff1dababfc4..38ebf725525 100644 --- a/cpp/test/Ice/facets/Server.cpp +++ b/cpp/test/Ice/facets/Server.cpp @@ -8,49 +8,32 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("server") +class Server : public Test::TestHelper +{ +public: -using namespace std; + void run(int, char**); +}; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +void +Server::run(int argc, char** argv) { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); Ice::ObjectPtr d = ICE_MAKE_SHARED(DI); adapter->add(d, Ice::stringToIdentity("d")); adapter->addFacet(d, Ice::stringToIdentity("d"), "facetABCD"); Ice::ObjectPtr f = ICE_MAKE_SHARED(FI); adapter->addFacet(f, Ice::stringToIdentity("d"), "facetEF"); - Ice::ObjectPtr h = ICE_MAKE_SHARED(HI, communicator); + Ice::ObjectPtr h = ICE_MAKE_SHARED(HI); adapter->addFacet(h, Ice::stringToIdentity("d"), "facetGH"); - TEST_READY + serverReady(); adapter->activate(); communicator->waitForShutdown(); - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/facets/TestI.cpp b/cpp/test/Ice/facets/TestI.cpp index 56c60589475..124973c4cdd 100644 --- a/cpp/test/Ice/facets/TestI.cpp +++ b/cpp/test/Ice/facets/TestI.cpp @@ -46,15 +46,10 @@ FI::callF(const Ice::Current&) return "F"; } -GI::GI(const Ice::CommunicatorPtr& communicator) : - _communicator(communicator) -{ -} - void -GI::shutdown(const Ice::Current&) +GI::shutdown(const Ice::Current& current) { - _communicator->shutdown(); + current.adapter->getCommunicator()->shutdown(); } std::string @@ -63,11 +58,6 @@ GI::callG(const Ice::Current&) return "G"; } -HI::HI(const Ice::CommunicatorPtr& communicator) : - GI(communicator) -{ -} - std::string HI::callH(const Ice::Current&) { diff --git a/cpp/test/Ice/facets/TestI.h b/cpp/test/Ice/facets/TestI.h index b3c05990bcf..6e2c52f4b44 100644 --- a/cpp/test/Ice/facets/TestI.h +++ b/cpp/test/Ice/facets/TestI.h @@ -58,20 +58,14 @@ class GI : public virtual Test::G { public: - GI(const Ice::CommunicatorPtr&); virtual void shutdown(const Ice::Current&); virtual std::string callG(const Ice::Current&); - -private: - - Ice::CommunicatorPtr _communicator; }; class HI : public virtual Test::H, public virtual GI { public: - HI(const Ice::CommunicatorPtr&); virtual std::string callH(const Ice::Current&); }; diff --git a/cpp/test/Ice/faultTolerance/AllTests.cpp b/cpp/test/Ice/faultTolerance/AllTests.cpp index 6aacdaa9fe1..e1917b4ea11 100644 --- a/cpp/test/Ice/faultTolerance/AllTests.cpp +++ b/cpp/test/Ice/faultTolerance/AllTests.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; @@ -109,14 +109,15 @@ private: typedef IceUtil::Handle<Callback> CallbackPtr; void -allTests(const Ice::CommunicatorPtr& communicator, const vector<int>& ports) +allTests(Test::TestHelper* helper, const vector<int>& ports) { + Ice::CommunicatorPtr communicator = helper->communicator(); cout << "testing stringToProxy... " << flush; ostringstream ref; ref << "test"; for(vector<int>::const_iterator p = ports.begin(); p != ports.end(); ++p) { - ref << ":" << getTestEndpoint(communicator, *p); + ref << ":" << helper->getTestEndpoint(*p); } Ice::ObjectPrxPtr base = communicator->stringToProxy(ref.str()); test(base); diff --git a/cpp/test/Ice/faultTolerance/Client.cpp b/cpp/test/Ice/faultTolerance/Client.cpp index 501046417ef..b69887d54b9 100644 --- a/cpp/test/Ice/faultTolerance/Client.cpp +++ b/cpp/test/Ice/faultTolerance/Client.cpp @@ -8,73 +8,44 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; -void -usage(const char* n) +class Client : public Test::TestHelper { - cerr << "Usage: " << n << " port...\n"; -} +public: + + void run(int, char**); +}; -int -run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator) +void +Client::run(int argc, char** argv) { + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Warn.Connections", "0"); // test aborts + Ice::CommunicatorHolder ich = initialize(argc, argv, properties); + vector<int> ports; for(int i = 1; i < argc; ++i) { if(argv[i][0] == '-') { - cerr << argv[0] << ": unknown option `" << argv[i] << "'" << endl; - usage(argv[0]); - return EXIT_FAILURE; + ostringstream os; + os << "unknown option `" << argv[i] << "'"; + throw invalid_argument(os.str()); } - ports.push_back(atoi(argv[i])); } if(ports.empty()) { - cerr << argv[0] << ": no ports specified" << endl; - usage(argv[0]); - return EXIT_FAILURE; + throw runtime_error("no ports specified"); } - try - { - void allTests(const Ice::CommunicatorPtr&, const vector<int>&); - allTests(communicator, ports); - } - catch(const Ice::Exception& ex) - { - cout << ex << endl; - test(false); - } - - return EXIT_SUCCESS; + void allTests(Test::TestHelper*, const vector<int>&); + allTests(this, ports); } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Warn.Connections", "0"); // test aborts - - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/faultTolerance/Server.cpp b/cpp/test/Ice/faultTolerance/Server.cpp index 87d65190a00..cb62745f9f6 100644 --- a/cpp/test/Ice/faultTolerance/Server.cpp +++ b/cpp/test/Ice/faultTolerance/Server.cpp @@ -9,34 +9,43 @@ #include <Ice/Ice.h> #include <TestI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; -void -usage(const char* n) +class Server : public Test::TestHelper { - cerr << "Usage: " << n << " port\n"; -} +public: -int -run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator) + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) { + // + // In this test, we need a longer server idle time, otherwise + // our test servers may time out before they are used in the + // test. + // + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.ServerIdleTime", "120"); // Two minutes. + + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + int port = 0; for(int i = 1; i < argc; ++i) { if(argv[i][0] == '-') { - cerr << argv[0] << ": unknown option `" << argv[i] << "'" << endl; - usage(argv[0]); - return EXIT_FAILURE; + ostringstream os; + os << ": unknown option `" << argv[i] << "'"; + throw invalid_argument(os.str()); } if(port > 0) { - cerr << argv[0] << ": only one port can be specified" << endl; - usage(argv[0]); - return EXIT_FAILURE; + throw runtime_error("only one port can be specified"); } port = atoi(argv[i]); @@ -44,47 +53,18 @@ run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator) if(port <= 0) { - cerr << argv[0] << ": no port specified" << endl; - usage(argv[0]); - return EXIT_FAILURE; + throw runtime_error("no port specified"); } ostringstream endpts; - endpts << getTestEndpoint(communicator, port); + endpts << getTestEndpoint(port); communicator->getProperties()->setProperty("TestAdapter.Endpoints", endpts.str()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); Ice::ObjectPtr object = ICE_MAKE_SHARED(TestI); adapter->add(object, Ice::stringToIdentity("test")); adapter->activate(); + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerIceUDP(true); -#endif - - try - { - // - // In this test, we need a longer server idle time, otherwise - // our test servers may time out before they are used in the - // test. - // - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.ServerIdleTime", "120"); // Two minutes. - - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/gc/Client.cpp b/cpp/test/Ice/gc/Client.cpp index 386a3a7d87c..49425be3f7d 100644 --- a/cpp/test/Ice/gc/Client.cpp +++ b/cpp/test/Ice/gc/Client.cpp @@ -12,7 +12,7 @@ #include <IceUtil/MutexPtrLock.h> #include <IceUtil/Random.h> #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #include <fstream> @@ -145,21 +145,8 @@ public: } }; -class MyApplication : public Ice::Application -{ -public: - - MyApplication(); - virtual int run(int, char* []); -}; - -MyApplication::MyApplication() - : Ice::Application(Ice::ICE_ENUM(SignalPolicy, NoSignalHandling)) -{ -} - -int -MyApplication::run(int argc, char* argv[]) +void +allTests() { cout << "testing single instance... " << flush; { @@ -528,16 +515,19 @@ MyApplication::run(int argc, char* argv[]) test(getNum() == 0); cout << "ok" << endl; - return 0; } -int -main(int argc, char* argv[]) +class Client : public Test::TestHelper { -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - MyApplication app; - return app.main(argc, argv); +public: + + void run(int, char**); +}; + +void +Client::run(int argc, char** argv) +{ + allTests(); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/hash/Client.cpp b/cpp/test/Ice/hash/Client.cpp index 6278c3c4a8f..c601dc449b3 100644 --- a/cpp/test/Ice/hash/Client.cpp +++ b/cpp/test/Ice/hash/Client.cpp @@ -10,7 +10,7 @@ #include <Ice/Ice.h> #include <IceUtil/Random.h> #include <Test.h> -#include <TestCommon.h> +#include <TestHelper.h> #if defined(__GNUC__) # pragma GCC diagnostic ignored "-Wdeprecated-declarations" @@ -19,14 +19,21 @@ using namespace std; using namespace Test; -DEFINE_TEST("client") +class Client : public Test::TestHelper +{ +public: + + void run(int, char**); +}; -int main(int argc, char** argv) +void +Client::run(int argc, char** argv) { -#ifdef ICE_STATIC_LIBS - Ice::registerIceUDP(true); - Ice::registerIceSSL(false); -#endif + Ice::PropertiesPtr properties = Ice::createProperties(argc, argv); + properties->setProperty("Ice.Plugin.IceSSL", "IceSSL:createIceSSL"); + properties->setProperty("IceSSL.Keychain", "client.keychain"); + properties->setProperty("IceSSL.KeychainPassword", "password"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); cout << "testing proxy hash algorithm collisions... " << flush; map<Ice::Int, Ice::ObjectPrxPtr> seenProxy; map<Ice::Int, Ice::EndpointPtr> seenEndpoint; @@ -35,13 +42,6 @@ int main(int argc, char** argv) unsigned int maxCollisions = 10; unsigned int maxIterations = 10000; - Ice::InitializationData id; - id.properties = Ice::createProperties(argc, argv); - id.properties->setProperty("Ice.Plugin.IceSSL", "IceSSL:createIceSSL"); - id.properties->setProperty("IceSSL.Keychain", "client.keychain"); - id.properties->setProperty("IceSSL.KeychainPassword", "password"); - - Ice::CommunicatorPtr communicator = Ice::initialize(id); for(i = 0; proxyCollisions < maxCollisions && i < maxIterations; ++i) { ostringstream os; @@ -84,22 +84,20 @@ int main(int argc, char** argv) proxyMap["prx9"] = prx9->_hash(); proxyMap["prx10"] = prx10->_hash(); - test( communicator->stringToProxy("Glacier2/router:tcp -p 10010")->_hash() == proxyMap["prx1"]); - test( communicator->stringToProxy("Glacier2/router:ssl -p 10011")->_hash() == proxyMap["prx2"]); - test( communicator->stringToProxy("Glacier2/router:udp -p 10012")->_hash() == proxyMap["prx3"]); - test( communicator->stringToProxy("Glacier2/router:tcp -h zeroc.com -p 10010")->_hash() == proxyMap["prx4"]); - test( communicator->stringToProxy("Glacier2/router:ssl -h zeroc.com -p 10011")->_hash() == proxyMap["prx5"]); - test( communicator->stringToProxy("Glacier2/router:udp -h zeroc.com -p 10012")->_hash() == proxyMap["prx6"]); - test( communicator->stringToProxy("Glacier2/router:tcp -p 10010 -t 10000")->_hash() == proxyMap["prx7"]); - test( communicator->stringToProxy("Glacier2/router:ssl -p 10011 -t 10000")->_hash() == proxyMap["prx8"]); - test( communicator->stringToProxy("Glacier2/router:tcp -h zeroc.com -p 10010 -t 10000")->_hash() == proxyMap["prx9"]); - test( communicator->stringToProxy("Glacier2/router:ssl -h zeroc.com -p 10011 -t 10000")->_hash() == proxyMap["prx10"]); + test(communicator->stringToProxy("Glacier2/router:tcp -p 10010")->_hash() == proxyMap["prx1"]); + test(communicator->stringToProxy("Glacier2/router:ssl -p 10011")->_hash() == proxyMap["prx2"]); + test(communicator->stringToProxy("Glacier2/router:udp -p 10012")->_hash() == proxyMap["prx3"]); + test(communicator->stringToProxy("Glacier2/router:tcp -h zeroc.com -p 10010")->_hash() == proxyMap["prx4"]); + test(communicator->stringToProxy("Glacier2/router:ssl -h zeroc.com -p 10011")->_hash() == proxyMap["prx5"]); + test(communicator->stringToProxy("Glacier2/router:udp -h zeroc.com -p 10012")->_hash() == proxyMap["prx6"]); + test(communicator->stringToProxy("Glacier2/router:tcp -p 10010 -t 10000")->_hash() == proxyMap["prx7"]); + test(communicator->stringToProxy("Glacier2/router:ssl -p 10011 -t 10000")->_hash() == proxyMap["prx8"]); + test(communicator->stringToProxy("Glacier2/router:tcp -h zeroc.com -p 10010 -t 10000")->_hash() == + proxyMap["prx9"]); + test(communicator->stringToProxy("Glacier2/router:ssl -h zeroc.com -p 10011 -t 10000")->_hash() == + proxyMap["prx10"]); cerr << "ok" << endl; - - if(communicator) - { - communicator->destroy(); - } - return EXIT_SUCCESS; } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/hold/AllTests.cpp b/cpp/test/Ice/hold/AllTests.cpp index ddb4f45bb5d..4db7f187534 100644 --- a/cpp/test/Ice/hold/AllTests.cpp +++ b/cpp/test/Ice/hold/AllTests.cpp @@ -9,7 +9,7 @@ #include <Ice/Ice.h> #include <IceUtil/Random.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; @@ -78,13 +78,14 @@ typedef IceUtil::Handle<SetCB> SetCBPtr; } void -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { + Ice::CommunicatorPtr communicator = helper->communicator(); cout << "testing stringToProxy... " << flush; - string ref = "hold:" + getTestEndpoint(communicator, 0); + string ref = "hold:" + helper->getTestEndpoint(); Ice::ObjectPrxPtr base = communicator->stringToProxy(ref); test(base); - string refSerialized = "hold:" + getTestEndpoint(communicator, 1); + string refSerialized = "hold:" + helper->getTestEndpoint(1); Ice::ObjectPrxPtr baseSerialized = communicator->stringToProxy(refSerialized); test(base); cout << "ok" << endl; diff --git a/cpp/test/Ice/hold/Client.cpp b/cpp/test/Ice/hold/Client.cpp index 61488c8e419..50558f8f63f 100644 --- a/cpp/test/Ice/hold/Client.cpp +++ b/cpp/test/Ice/hold/Client.cpp @@ -8,42 +8,25 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> -DEFINE_TEST("client") - using namespace std; using namespace Test; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - void allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - return EXIT_SUCCESS; -} +public: -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -# ifdef ICE_HAS_BT - Ice::registerIceBT(false); -# endif -#endif + void run(int, char**); +}; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } +void +Client::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + void allTests(Test::TestHelper*); + allTests(this); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/hold/Server.cpp b/cpp/test/Ice/hold/Server.cpp index c59ec91babe..f41b1a605fa 100644 --- a/cpp/test/Ice/hold/Server.cpp +++ b/cpp/test/Ice/hold/Server.cpp @@ -8,19 +8,25 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("server") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) { + Ice::CommunicatorHolder communicator = initialize(argc, argv); IceUtil::TimerPtr timer = new IceUtil::Timer(); - communicator->getProperties()->setProperty("TestAdapter1.Endpoints", getTestEndpoint(communicator, 0)); + communicator->getProperties()->setProperty("TestAdapter1.Endpoints", getTestEndpoint()); communicator->getProperties()->setProperty("TestAdapter1.ThreadPool.Size", "5"); communicator->getProperties()->setProperty("TestAdapter1.ThreadPool.SizeMax", "5"); communicator->getProperties()->setProperty("TestAdapter1.ThreadPool.SizeWarn", "0"); @@ -28,7 +34,7 @@ run(int, char**, const Ice::CommunicatorPtr& communicator) Ice::ObjectAdapterPtr adapter1 = communicator->createObjectAdapter("TestAdapter1"); adapter1->add(ICE_MAKE_SHARED(HoldI, timer, adapter1), Ice::stringToIdentity("hold")); - communicator->getProperties()->setProperty("TestAdapter2.Endpoints", getTestEndpoint(communicator, 1)); + communicator->getProperties()->setProperty("TestAdapter2.Endpoints", getTestEndpoint(1)); communicator->getProperties()->setProperty("TestAdapter2.ThreadPool.Size", "5"); communicator->getProperties()->setProperty("TestAdapter2.ThreadPool.SizeMax", "5"); communicator->getProperties()->setProperty("TestAdapter2.ThreadPool.SizeWarn", "0"); @@ -39,32 +45,11 @@ run(int, char**, const Ice::CommunicatorPtr& communicator) adapter1->activate(); adapter2->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); timer->destroy(); - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerIceUDP(true); -#endif - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/hold/TestI.cpp b/cpp/test/Ice/hold/TestI.cpp index 79f6001f93a..aa9a72db779 100644 --- a/cpp/test/Ice/hold/TestI.cpp +++ b/cpp/test/Ice/hold/TestI.cpp @@ -10,7 +10,7 @@ #include <Ice/Ice.h> #include <IceUtil/IceUtil.h> #include <TestI.h> -#include <TestCommon.h> +#include <TestHelper.h> HoldI::HoldI(const IceUtil::TimerPtr& timer, const Ice::ObjectAdapterPtr& adapter) : _last(0), _timer(timer), _adapter(adapter) diff --git a/cpp/test/Ice/impl/Server.cpp b/cpp/test/Ice/impl/Server.cpp index c84232fa665..a9ea324a433 100644 --- a/cpp/test/Ice/impl/Server.cpp +++ b/cpp/test/Ice/impl/Server.cpp @@ -8,52 +8,36 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("server") - using namespace std; using namespace Test; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) { - string endpt = getTestEndpoint(communicator, 0); - communicator->getProperties()->setProperty("TestAdapter.Endpoints", endpt); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + // + // Its possible to have batch oneway requests dispatched after + // the adapter is deactivated due to thread scheduling so we + // supress this warning. + // + properties->setProperty("Ice.Warn.Dispatch", "0"); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->add(ICE_MAKE_SHARED(MyDerivedClassI), Ice::stringToIdentity("test")); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerIceUDP(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - // - // Its possible to have batch oneway requests dispatched after - // the adapter is deactivated due to thread scheduling so we - // supress this warning. - // - initData.properties->setProperty("Ice.Warn.Dispatch", "0"); - - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/impl/ServerAMD.cpp b/cpp/test/Ice/impl/ServerAMD.cpp index 20a515955f2..b114fb11e85 100644 --- a/cpp/test/Ice/impl/ServerAMD.cpp +++ b/cpp/test/Ice/impl/ServerAMD.cpp @@ -8,52 +8,36 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestAMDI.h> -DEFINE_TEST("serveramd") - using namespace std; using namespace Test; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class ServerAMD : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +ServerAMD::run(int argc, char** argv) { - string endpt = getTestEndpoint(communicator, 0); - communicator->getProperties()->setProperty("TestAdapter.Endpoints", endpt); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + // + // Its possible to have batch oneway requests dispatched after + // the adapter is deactivated due to thread scheduling so we + // supress this warning. + // + properties->setProperty("Ice.Warn.Dispatch", "0"); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->add(ICE_MAKE_SHARED(MyDerivedClassI), Ice::stringToIdentity("test")); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerIceUDP(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - // - // Its possible to have batch oneway requests dispatched after - // the adapter is deactivated due to thread scheduling so we - // supress this warning. - // - initData.properties->setProperty("Ice.Warn.Dispatch", "0"); - - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(ServerAMD) diff --git a/cpp/test/Ice/info/AllTests.cpp b/cpp/test/Ice/info/AllTests.cpp index dae47636acf..40addf59a37 100644 --- a/cpp/test/Ice/info/AllTests.cpp +++ b/cpp/test/Ice/info/AllTests.cpp @@ -9,7 +9,7 @@ #include <Ice/Ice.h> #include <IceSSL/IceSSL.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> using namespace std; @@ -49,8 +49,9 @@ getTCPConnectionInfo(const Ice::ConnectionInfoPtr& info) } void -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { + Ice::CommunicatorPtr communicator = helper->communicator(); cout << "testing proxy endpoint information... " << flush; { Ice::ObjectPrxPtr p1 = @@ -147,11 +148,11 @@ allTests(const Ice::CommunicatorPtr& communicator) adapter->destroy(); - int port = getTestPort(communicator->getProperties(), 1); + int port = helper->getTestPort(1); ostringstream portStr; portStr << port; communicator->getProperties()->setProperty("TestAdapter.Endpoints", "default -h * -p " + portStr.str()); - communicator->getProperties()->setProperty("TestAdapter.PublishedEndpoints", getTestEndpoint(communicator, 1)); + communicator->getProperties()->setProperty("TestAdapter.PublishedEndpoints", helper->getTestEndpoint(1)); adapter = communicator->createObjectAdapter("TestAdapter"); endpoints = adapter->getEndpoints(); @@ -166,7 +167,7 @@ allTests(const Ice::CommunicatorPtr& communicator) } ipEndpoint = getTCPEndpointInfo(publishedEndpoints[0]->getInfo()); - test(ipEndpoint->host == getTestHost(communicator->getProperties())); + test(ipEndpoint->host == helper->getTestHost()); test(ipEndpoint->port == port); adapter->destroy(); @@ -174,8 +175,8 @@ allTests(const Ice::CommunicatorPtr& communicator) cout << "ok" << endl; } - string endpoints = getTestEndpoint(communicator, 0) + ":" + getTestEndpoint(communicator, 0, "udp") + " -c"; - int port = getTestPort(communicator->getProperties(), 0); + string endpoints = helper->getTestEndpoint() + ":" + helper->getTestEndpoint("udp") + " -c"; + int port = helper->getTestPort(); Ice::ObjectPrxPtr base = communicator->stringToProxy("test:" + endpoints); TestIntfPrxPtr testIntf = ICE_CHECKED_CAST(TestIntfPrx, base); diff --git a/cpp/test/Ice/info/Client.cpp b/cpp/test/Ice/info/Client.cpp index 221511ef18b..7184106d732 100644 --- a/cpp/test/Ice/info/Client.cpp +++ b/cpp/test/Ice/info/Client.cpp @@ -8,39 +8,24 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> -DEFINE_TEST("client") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - void allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - return EXIT_SUCCESS; -} +public: -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerIceUDP(true); -#endif + void run(int, char**); +}; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } +void +Client::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + void allTests(Test::TestHelper*); + allTests(this); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/info/Makefile.mk b/cpp/test/Ice/info/Makefile.mk index 74c2fd424f5..c97eb46b4fd 100644 --- a/cpp/test/Ice/info/Makefile.mk +++ b/cpp/test/Ice/info/Makefile.mk @@ -8,6 +8,6 @@ # ********************************************************************** $(test)_client_sources = Test.ice TestI.cpp Client.cpp AllTests.cpp -$(test)_dependencies = IceSSL Ice TestCommon +$(test)_dependencies = TestCommon IceSSL Ice tests += $(test) diff --git a/cpp/test/Ice/info/Server.cpp b/cpp/test/Ice/info/Server.cpp index 42684d34089..139e0773d58 100644 --- a/cpp/test/Ice/info/Server.cpp +++ b/cpp/test/Ice/info/Server.cpp @@ -8,44 +8,29 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("server"); - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) { - string endpoints = getTestEndpoint(communicator, 0) + ":" + getTestEndpoint(communicator, 0, "udp"); - communicator->getProperties()->setProperty("TestAdapter.Endpoints", endpoints); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", + getTestEndpoint() + ":" + getTestEndpoint("udp")); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->add(ICE_MAKE_SHARED(TestI), Ice::stringToIdentity("test")); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerIceUDP(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/info/TestI.cpp b/cpp/test/Ice/info/TestI.cpp index d870f9de6e4..e5e096711a1 100644 --- a/cpp/test/Ice/info/TestI.cpp +++ b/cpp/test/Ice/info/TestI.cpp @@ -9,7 +9,7 @@ #include <Ice/Ice.h> #include <IceSSL/IceSSL.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> using namespace std; diff --git a/cpp/test/Ice/inheritance/AllTests.cpp b/cpp/test/Ice/inheritance/AllTests.cpp index d975fc79d57..6e9f775776b 100644 --- a/cpp/test/Ice/inheritance/AllTests.cpp +++ b/cpp/test/Ice/inheritance/AllTests.cpp @@ -8,17 +8,18 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; using namespace Test; InitialPrxPtr -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { + Ice::CommunicatorPtr communicator = helper->communicator(); cout << "testing stringToProxy... " << flush; - string ref = "initial:" + getTestEndpoint(communicator, 0); + string ref = "initial:" + helper->getTestEndpoint(); Ice::ObjectPrxPtr base = communicator->stringToProxy(ref); test(base); cout << "ok" << endl; diff --git a/cpp/test/Ice/inheritance/Client.cpp b/cpp/test/Ice/inheritance/Client.cpp index d44b36772ca..ff5a06fc53a 100644 --- a/cpp/test/Ice/inheritance/Client.cpp +++ b/cpp/test/Ice/inheritance/Client.cpp @@ -8,43 +8,26 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> -DEFINE_TEST("client") - using namespace std; using namespace Test; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - InitialPrxPtr allTests(const Ice::CommunicatorPtr&); - InitialPrxPtr initial = allTests(communicator); - initial->shutdown(); - return EXIT_SUCCESS; -} +public: -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -# ifdef ICE_HAS_BT - Ice::registerIceBT(false); -# endif -#endif + void run(int, char**); +}; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } +void +Client::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + InitialPrxPtr allTests(Test::TestHelper*); + InitialPrxPtr initial = allTests(this); + initial->shutdown(); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/inheritance/Collocated.cpp b/cpp/test/Ice/inheritance/Collocated.cpp index 57248407eb0..c77900702df 100644 --- a/cpp/test/Ice/inheritance/Collocated.cpp +++ b/cpp/test/Ice/inheritance/Collocated.cpp @@ -8,45 +8,29 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("collocated") - using namespace std; using namespace Test; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Collocated : public Test::TestHelper { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); +public: + + void run(int, char**); +}; + +void +Collocated::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); Ice::ObjectPtr object = ICE_MAKE_SHARED(InitialI, adapter); adapter->add(object, Ice::stringToIdentity("initial")); - - InitialPrxPtr allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - - return EXIT_SUCCESS; + InitialPrxPtr allTests(Test::TestHelper*); + allTests(this); } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Collocated) diff --git a/cpp/test/Ice/inheritance/Server.cpp b/cpp/test/Ice/inheritance/Server.cpp index 392783b81a3..8df6d019fe2 100644 --- a/cpp/test/Ice/inheritance/Server.cpp +++ b/cpp/test/Ice/inheritance/Server.cpp @@ -8,43 +8,29 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("server") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); Ice::ObjectPtr object = ICE_MAKE_SHARED(InitialI, adapter); adapter->add(object, Ice::stringToIdentity("initial")); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/inheritance/TestI.h b/cpp/test/Ice/inheritance/TestI.h index ccc49d308de..3834bc3ce28 100644 --- a/cpp/test/Ice/inheritance/TestI.h +++ b/cpp/test/Ice/inheritance/TestI.h @@ -11,7 +11,6 @@ #define TESTI_H #include <Test.h> -#include <TestCommon.h> class InitialI : public Test::Initial { diff --git a/cpp/test/Ice/interceptor/AMDInterceptorI.cpp b/cpp/test/Ice/interceptor/AMDInterceptorI.cpp index 3d9f5ffc9f0..647e7e62d88 100644 --- a/cpp/test/Ice/interceptor/AMDInterceptorI.cpp +++ b/cpp/test/Ice/interceptor/AMDInterceptorI.cpp @@ -10,7 +10,7 @@ #include <IceUtil/DisableWarnings.h> #include <AMDInterceptorI.h> #include <Test.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; diff --git a/cpp/test/Ice/interceptor/Client.cpp b/cpp/test/Ice/interceptor/Client.cpp index bf80efea7b1..09aa2420de8 100644 --- a/cpp/test/Ice/interceptor/Client.cpp +++ b/cpp/test/Ice/interceptor/Client.cpp @@ -8,141 +8,60 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #include <MyObjectI.h> #include <InterceptorI.h> #include <AMDInterceptorI.h> #include <iostream> -DEFINE_TEST("client") - #ifndef _WIN32 // // SIGPIPE test // # include <signal.h> -#endif - -using namespace std; - -#if defined(__APPLE__) || defined(ICE_OS_UWP) -namespace -{ - -class App -{ -public: - - virtual ~App() - { - if(_communicator) - { - _communicator->destroy(); - } - } - - Ice::CommunicatorPtr communicator() - { - return _communicator; - } - - virtual int _main(int argc, char** argv) - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Warn.Dispatch", "0"); - _communicator = Ice::initialize(initData); - return run(argc, argv); - } - virtual int run(int argc, char** argv) = 0; - -private: - Ice::CommunicatorPtr _communicator; -}; - -} -#else -namespace +extern "C" void testAction(int) { -typedef Ice::Application App; + test(false); } + #endif -class ClientApp : public App +using namespace std; + +class Client : public Test::TestHelper { public: - virtual int run(int, char*[]); + virtual void run(int, char**); private: - int run(const Test::MyObjectPrxPtr&, const InterceptorIPtr&); - int runAmd(const Test::MyObjectPrxPtr&, const AMDInterceptorIPtr&); + void runTest(const Test::MyObjectPrxPtr&, const InterceptorIPtr&); + void runAmdTest(const Test::MyObjectPrxPtr&, const AMDInterceptorIPtr&); }; -#ifndef _WIN32 -extern "C" void testAction(int) +void +Client::run(int argc, char* argv[]) { - test(false); -} -#endif - -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - #ifndef _WIN32 -// -// Set SIGPIPE action -// + // + // Set SIGPIPE action + // struct sigaction action; action.sa_handler = &testAction; sigemptyset(&action.sa_mask); action.sa_flags = 0; sigaction(SIGPIPE, &action, 0); #endif - - ClientApp app; -#if defined(__APPLE__) || defined(ICE_OS_UWP) - int result = app._main(argc, argv); -#else - int result = app.main(argc, argv); -#endif - -#ifndef _WIN32 -// -// Check SIGPIPE was properly reset to old action -// - struct sigaction newAction; - sigaction(SIGPIPE, 0, &newAction); - test(action.sa_handler == &testAction); -#endif - - return result; -} - -int -ClientApp::run(int, char*[]) -{ - -#ifndef _WIN32 -// -// Check SIGPIPE is now SIG_IGN -// - struct sigaction action; - sigaction(SIGPIPE, 0, &action); - test(action.sa_handler == SIG_IGN); -#endif - + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Warn.Dispatch", "0"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); // // Create OA and servants // - Ice::ObjectAdapterPtr oa = communicator()->createObjectAdapterWithEndpoints("MyOA", "tcp -h localhost"); + Ice::ObjectAdapterPtr oa = communicator->createObjectAdapterWithEndpoints("MyOA", "tcp -h localhost"); Ice::ObjectPtr servant = ICE_MAKE_SHARED(MyObjectI); InterceptorIPtr interceptor = ICE_MAKE_SHARED(InterceptorI, servant); @@ -152,40 +71,34 @@ ClientApp::run(int, char*[]) Test::MyObjectPrxPtr prxForAMD = ICE_UNCHECKED_CAST(Test::MyObjectPrx, oa->addWithUUID(amdInterceptor)); cout << "Collocation optimization on" << endl; - int rs = run(prx, interceptor); - if(rs != 0) - { - return rs; - } + runTest(prx, interceptor); cout << "Now with AMD" << endl; - rs = runAmd(prxForAMD, amdInterceptor); - if(rs != 0) - { - return rs; - } + runAmdTest(prxForAMD, amdInterceptor); oa->activate(); // Only necessary for non-collocation optimized tests cout << "Collocation optimization off" << endl; interceptor->clear(); prx = ICE_UNCHECKED_CAST(Test::MyObjectPrx, prx->ice_collocationOptimized(false)); - rs = run(prx, interceptor); - if(rs != 0) - { - return rs; - } + runTest(prx, interceptor); cout << "Now with AMD" << endl; amdInterceptor->clear(); prxForAMD = ICE_UNCHECKED_CAST(Test::MyObjectPrx, prxForAMD->ice_collocationOptimized(false)); - rs = runAmd(prxForAMD, amdInterceptor); - - return rs; + runAmdTest(prxForAMD, amdInterceptor); +#ifndef _WIN32 + // + // Check SIGPIPE was properly reset to old action + // + struct sigaction newAction; + sigaction(SIGPIPE, 0, &newAction); + test(action.sa_handler == &testAction); +#endif } -int -ClientApp::run(const Test::MyObjectPrxPtr& prx, const InterceptorIPtr& interceptor) +void +Client::runTest(const Test::MyObjectPrxPtr& prx, const InterceptorIPtr& interceptor) { cout << "testing simple interceptor... " << flush; test(interceptor->getLastOperation().empty()); @@ -261,12 +174,10 @@ ClientApp::run(const Test::MyObjectPrxPtr& prx, const InterceptorIPtr& intercept test(interceptor->getLastOperation() == "amdAdd"); test(!interceptor->getLastStatus()); cout << "ok" << endl; - - return EXIT_SUCCESS; } -int -ClientApp::runAmd(const Test::MyObjectPrxPtr& prx, const AMDInterceptorIPtr& interceptor) +void +Client::runAmdTest(const Test::MyObjectPrxPtr& prx, const AMDInterceptorIPtr& interceptor) { cout << "testing simple interceptor... " << flush; test(interceptor->getLastOperation().empty()); @@ -328,5 +239,6 @@ ClientApp::runAmd(const Test::MyObjectPrxPtr& prx, const AMDInterceptorIPtr& int test(!interceptor->getLastStatus()); test(dynamic_cast<MySystemException*>(interceptor->getException()) != 0); cout << "ok" << endl; - return EXIT_SUCCESS; } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/interceptor/InterceptorI.cpp b/cpp/test/Ice/interceptor/InterceptorI.cpp index 644a7e05be4..cbd0ccf14a9 100644 --- a/cpp/test/Ice/interceptor/InterceptorI.cpp +++ b/cpp/test/Ice/interceptor/InterceptorI.cpp @@ -9,7 +9,7 @@ #include <InterceptorI.h> #include <Test.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; diff --git a/cpp/test/Ice/interceptor/MyObjectI.cpp b/cpp/test/Ice/interceptor/MyObjectI.cpp index 675b7c4003a..574213dedb2 100644 --- a/cpp/test/Ice/interceptor/MyObjectI.cpp +++ b/cpp/test/Ice/interceptor/MyObjectI.cpp @@ -9,7 +9,7 @@ #include <Ice/Ice.h> #include <MyObjectI.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <IceUtil/IceUtil.h> using namespace IceUtil; diff --git a/cpp/test/Ice/invoke/AllTests.cpp b/cpp/test/Ice/invoke/AllTests.cpp index febb223548b..d56d47b60f8 100644 --- a/cpp/test/Ice/invoke/AllTests.cpp +++ b/cpp/test/Ice/invoke/AllTests.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; @@ -285,9 +285,10 @@ typedef IceUtil::Handle<Callback> CallbackPtr; #endif Test::MyClassPrxPtr -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { - string ref = "test:" + getTestEndpoint(communicator, 0); + Ice::CommunicatorPtr communicator = helper->communicator(); + string ref = "test:" + helper->getTestEndpoint(); Ice::ObjectPrxPtr base = communicator->stringToProxy(ref); test(base); diff --git a/cpp/test/Ice/invoke/BlobjectI.cpp b/cpp/test/Ice/invoke/BlobjectI.cpp index ee8be62d429..e0c44b1d4bd 100644 --- a/cpp/test/Ice/invoke/BlobjectI.cpp +++ b/cpp/test/Ice/invoke/BlobjectI.cpp @@ -10,7 +10,7 @@ #include <Ice/Ice.h> #include <BlobjectI.h> #include <Test.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; @@ -135,7 +135,7 @@ BlobjectArrayAsyncI::ice_invokeAsync(pair<const Ice::Byte*, const Ice::Byte*> in #else void BlobjectAsyncI::ice_invoke_async(const Ice::AMD_Object_ice_invokePtr& cb, const vector<Ice::Byte>& inEncaps, - const Ice::Current& current) + const Ice::Current& current) { Ice::InputStream in(current.adapter->getCommunicator(), current.encoding, inEncaps); vector<Ice::Byte> outEncaps; @@ -145,8 +145,8 @@ BlobjectAsyncI::ice_invoke_async(const Ice::AMD_Object_ice_invokePtr& cb, const void BlobjectArrayAsyncI::ice_invoke_async(const Ice::AMD_Object_ice_invokePtr& cb, - const pair<const Ice::Byte*, const Ice::Byte*>& inEncaps, - const Ice::Current& current) + const pair<const Ice::Byte*, const Ice::Byte*>& inEncaps, + const Ice::Current& current) { Ice::InputStream in(current.adapter->getCommunicator(), current.encoding, inEncaps); vector<Ice::Byte> outEncaps; diff --git a/cpp/test/Ice/invoke/Client.cpp b/cpp/test/Ice/invoke/Client.cpp index d03ef2238d0..3c557329d9c 100644 --- a/cpp/test/Ice/invoke/Client.cpp +++ b/cpp/test/Ice/invoke/Client.cpp @@ -8,53 +8,25 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> -DEFINE_TEST("client") - using namespace std; -int -run(int, char**, - const Ice::CommunicatorPtr& communicator, - const Ice::InitializationData&) +class Client : public Test::TestHelper { - Test::MyClassPrxPtr allTests(const Ice::CommunicatorPtr&); - Test::MyClassPrxPtr myClass = allTests(communicator); +public: - myClass->shutdown(); + void run(int, char**); +}; - return EXIT_SUCCESS; -} - -int -main(int argc, char* argv[]) +void +Client::run(int argc, char** argv) { -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - int status; - Ice::CommunicatorPtr communicator; - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator, initData); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; + Ice::CommunicatorHolder holder = initialize(argc, argv); + Test::MyClassPrxPtr allTests(Test::TestHelper*); + Test::MyClassPrxPtr myClass = allTests(this); + myClass->shutdown(); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/invoke/Server.cpp b/cpp/test/Ice/invoke/Server.cpp index d6c022f44d3..ccee3948daf 100644 --- a/cpp/test/Ice/invoke/Server.cpp +++ b/cpp/test/Ice/invoke/Server.cpp @@ -8,12 +8,10 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <IceUtil/Options.h> #include <BlobjectI.h> -DEFINE_TEST("server") - using namespace std; class ServantLocatorI : public Ice::ServantLocator @@ -82,6 +80,21 @@ private: int run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator) { + + return EXIT_SUCCESS; +} + +class Server : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); IceUtilInternal::Options opts; opts.addOpt("", "array"); opts.addOpt("", "async"); @@ -94,50 +107,19 @@ run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator) catch(const IceUtilInternal::BadOptException& e) { cout << argv[0] << ": " << e.reason << endl; - return false; + throw; } bool array = opts.isSet("array"); bool async = opts.isSet("async"); - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->addServantLocator(ICE_MAKE_SHARED(ServantLocatorI, array, async), ""); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerIceUDP(true); -#endif - - int status; - Ice::CommunicatorPtr communicator; - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/library/Client.cpp b/cpp/test/Ice/library/Client.cpp index f5f7483b4a8..093495bd69e 100644 --- a/cpp/test/Ice/library/Client.cpp +++ b/cpp/test/Ice/library/Client.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> ICE_DECLSPEC_IMPORT void allTests(const Ice::ObjectAdapterPtr&); @@ -17,28 +17,24 @@ allTests(const Ice::ObjectAdapterPtr&); # pragma comment(lib, ICE_LIBNAME("alltests")) #endif -DEFINE_TEST("client") - using namespace std; -int -main(int argc, char* argv[]) +class Client : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Client::run(int argc, char** argv) { - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - - // Collocated-only OA - Ice::ObjectAdapterPtr oa = ich->createObjectAdapter(""); - - oa->activate(); - allTests(oa); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } - return EXIT_SUCCESS; + Ice::CommunicatorHolder communicator = initialize(argc, argv); + // Collocated-only OA + Ice::ObjectAdapterPtr oa = communicator->createObjectAdapter(""); + + oa->activate(); + allTests(oa); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/library/Consumer.cpp b/cpp/test/Ice/library/Consumer.cpp index b8a06bd9f69..a879e9bea30 100644 --- a/cpp/test/Ice/library/Consumer.cpp +++ b/cpp/test/Ice/library/Consumer.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Test.h> -#include <TestCommon.h> +#include <TestHelper.h> #if defined(_MSC_VER) # pragma comment(lib, ICE_LIBNAME("gencode")) diff --git a/cpp/test/Ice/location/AllTests.cpp b/cpp/test/Ice/location/AllTests.cpp index 0dd99ef0e48..becce4b6e6d 100644 --- a/cpp/test/Ice/location/AllTests.cpp +++ b/cpp/test/Ice/location/AllTests.cpp @@ -10,7 +10,7 @@ #include <Ice/Ice.h> #include <Ice/Router.h> #include <IceUtil/IceUtil.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #include <list> @@ -60,8 +60,9 @@ public: typedef IceUtil::Handle<AMICallback> AMICallbackPtr; void -allTests(const Ice::CommunicatorPtr& communicator, const string& ref) +allTests(Test::TestHelper* helper, const string& ref) { + Ice::CommunicatorPtr communicator = helper->communicator(); ServerManagerPrxPtr manager = ICE_CHECKED_CAST(ServerManagerPrx, communicator->stringToProxy(ref)); TestLocatorPrxPtr locator = ICE_UNCHECKED_CAST(TestLocatorPrx, communicator->getDefaultLocator()); test(manager); diff --git a/cpp/test/Ice/location/Client.cpp b/cpp/test/Ice/location/Client.cpp index e73221fc55c..2fc6532f9ff 100644 --- a/cpp/test/Ice/location/Client.cpp +++ b/cpp/test/Ice/location/Client.cpp @@ -8,38 +8,26 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> -DEFINE_TEST("client") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - void allTests(const Ice::CommunicatorPtr&, const string&); - allTests(communicator, "ServerManager:" + getTestEndpoint(communicator, 0)); - return EXIT_SUCCESS; -} +public: -int -main(int argc, char* argv[]) + void run(int, char**); +}; + +void +Client::run(int argc, char** argv) { -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Default.Locator", "locator:" + getTestEndpoint(initData.properties, 0)); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Default.Locator", "locator:" + getTestEndpoint(properties)); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + void allTests(Test::TestHelper*, const string&); + allTests(this, "ServerManager:" + getTestEndpoint()); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/location/Server.cpp b/cpp/test/Ice/location/Server.cpp index 962efc36023..755e4ae721d 100644 --- a/cpp/test/Ice/location/Server.cpp +++ b/cpp/test/Ice/location/Server.cpp @@ -9,16 +9,25 @@ #include <Ice/Ice.h> #include <ServerLocator.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("server") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator, const Ice::InitializationData& initData) +class Server : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) { + Ice::InitializationData initData; + initData.properties = createTestProperties(argc, argv); + + Ice::CommunicatorHolder communicator = initialize(argc, argv, initData); // // Register the server manager. The server manager creates a new // 'server' (a server isn't a different process, it's just a new @@ -26,7 +35,7 @@ run(int, char**, const Ice::CommunicatorPtr& communicator, const Ice::Initializa // Ice::PropertiesPtr properties = communicator->getProperties(); properties->setProperty("Ice.ThreadPool.Server.Size", "2"); - properties->setProperty("ServerManager.Endpoints", getTestEndpoint(communicator, 0)); + properties->setProperty("ServerManager.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("ServerManager"); @@ -48,30 +57,8 @@ run(int, char**, const Ice::CommunicatorPtr& communicator, const Ice::Initializa adapter->add(locator, Ice::stringToIdentity("locator")); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerIceUDP(true); -#endif - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - assert(initData.properties != ich->getProperties()); - return run(argc, argv, ich.communicator(), initData); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/location/ServerLocator.cpp b/cpp/test/Ice/location/ServerLocator.cpp index 5dd30a48061..9c55595006e 100644 --- a/cpp/test/Ice/location/ServerLocator.cpp +++ b/cpp/test/Ice/location/ServerLocator.cpp @@ -9,7 +9,7 @@ #include <Ice/Ice.h> #include <Ice/BuiltinSequences.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <ServerLocator.h> using namespace std; diff --git a/cpp/test/Ice/location/TestI.cpp b/cpp/test/Ice/location/TestI.cpp index 583f86f20ff..be4045a4571 100644 --- a/cpp/test/Ice/location/TestI.cpp +++ b/cpp/test/Ice/location/TestI.cpp @@ -10,7 +10,7 @@ #include <Ice/Ice.h> #include <Ice/Locator.h> #include <TestI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace Test; @@ -60,14 +60,15 @@ ServerManagerI::startServer(const Ice::Current&) { Ice::PropertiesPtr props = _initData.properties; serverCommunicator->getProperties()->setProperty("TestAdapter.Endpoints", - getTestEndpoint(props, _nextPort++)); + TestHelper::getTestEndpoint(props, _nextPort++)); serverCommunicator->getProperties()->setProperty("TestAdapter2.Endpoints", - getTestEndpoint(props, _nextPort++)); + TestHelper::getTestEndpoint(props, _nextPort++)); adapter = serverCommunicator->createObjectAdapter("TestAdapter"); adapter2 = serverCommunicator->createObjectAdapter("TestAdapter2"); - Ice::ObjectPrxPtr locator = serverCommunicator->stringToProxy("locator:" + getTestEndpoint(props, 0)); + Ice::ObjectPrxPtr locator = + serverCommunicator->stringToProxy("locator:" + TestHelper::getTestEndpoint(props)); adapter->setLocator(ICE_UNCHECKED_CAST(Ice::LocatorPrx, locator)); adapter2->setLocator(ICE_UNCHECKED_CAST(Ice::LocatorPrx, locator)); diff --git a/cpp/test/Ice/location/TestI.h b/cpp/test/Ice/location/TestI.h index c9b72508c86..beaf1c7287a 100644 --- a/cpp/test/Ice/location/TestI.h +++ b/cpp/test/Ice/location/TestI.h @@ -11,6 +11,7 @@ #define TEST_I_H #include <Test.h> +#include <TestHelper.h> #include <vector> #include <ServerLocator.h> diff --git a/cpp/test/Ice/logger/Client1.cpp b/cpp/test/Ice/logger/Client1.cpp index 2ed7ce33e46..2dfe7245ab2 100644 --- a/cpp/test/Ice/logger/Client1.cpp +++ b/cpp/test/Ice/logger/Client1.cpp @@ -8,44 +8,29 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <fstream> using namespace std; -namespace -{ - -class Client : public Ice::Application +class Client1 : public Test::TestHelper { public: - virtual int - run(int, char*[]) - { - communicator()->getLogger()->trace("info", "XXX"); - return EXIT_SUCCESS; - }; -}; -} + void run(int, char**); +}; -int -main(int argc, char* argv[]) +void +Client1::run(int argc, char** argv) { -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - cout << "testing logger encoding with Ice.LogFile... " << flush; - Ice::InitializationData id; - id.properties = Ice::createProperties(); - id.properties->load("config.client"); - id.properties->setProperty("Ice.LogFile", "log.txt"); - const string programName = id.properties->getProperty("Ice.ProgramName"); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->load("config.client"); + properties->setProperty("Ice.LogFile", "log.txt"); + const string programName = properties->getProperty("Ice.ProgramName"); - Client c; - c.main(argc, argv, id); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + communicator->getLogger()->trace("info", "XXX"); ifstream in("log.txt"); if(!in) @@ -61,5 +46,6 @@ main(int argc, char* argv[]) in.close(); remove("log.txt"); cout << "ok" << endl; - return EXIT_SUCCESS; } + +DEFINE_TEST(Client1) diff --git a/cpp/test/Ice/logger/Client2.cpp b/cpp/test/Ice/logger/Client2.cpp index 299791408b9..b7ee10f4763 100644 --- a/cpp/test/Ice/logger/Client2.cpp +++ b/cpp/test/Ice/logger/Client2.cpp @@ -8,34 +8,20 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; -namespace -{ - -class Client : public Ice::Application +class Client2 : public Test::TestHelper { public: - virtual int - run(int, char*[]) - { - communicator()->getLogger()->trace("info", "XXX"); - return EXIT_SUCCESS; - }; -}; -} + void run(int, char**); +}; -int -main(int argc, char* argv[]) +void +Client2::run(int argc, char** argv) { -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - #ifdef _WIN32 int cp = GetConsoleOutputCP(); // @@ -46,14 +32,16 @@ main(int argc, char* argv[]) #else setProcessStringConverter(Ice::createIconvStringConverter<char>("ISO8859-15")); #endif - Ice::InitializationData id; - id.properties = Ice::createProperties(); - id.properties->load("config.client"); - Client c; - int status = c.main(argc, argv, id); + + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->load("config.client"); + + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + communicator->getLogger()->trace("info", "XXX"); #ifdef _WIN32 SetConsoleOutputCP(cp); #endif - return status; } + +DEFINE_TEST(Client2) diff --git a/cpp/test/Ice/logger/Client3.cpp b/cpp/test/Ice/logger/Client3.cpp index 9d96ce59263..1accdb71add 100644 --- a/cpp/test/Ice/logger/Client3.cpp +++ b/cpp/test/Ice/logger/Client3.cpp @@ -8,46 +8,32 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; -namespace -{ - -class Client : public Ice::Application +class Client3 : public Test::TestHelper { public: - virtual int - run(int, char*[]) - { - communicator()->getLogger()->trace("info", "XXX"); - return EXIT_SUCCESS; - }; -}; -} + void run(int, char**); +}; -int -main(int argc, char* argv[]) +void +Client3::run(int argc, char** argv) { -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - #ifdef _WIN32 int cp = GetConsoleOutputCP(); SetConsoleOutputCP(CP_UTF8); #endif - Ice::InitializationData id; - id.properties = Ice::createProperties(); - id.properties->load("config.client"); - Client c; - int status = c.main(argc, argv, id); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->load("config.client"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + communicator->getLogger()->trace("info", "XXX"); #ifdef _WIN32 SetConsoleOutputCP(cp); #endif - return status; } + +DEFINE_TEST(Client3) diff --git a/cpp/test/Ice/logger/Client4.cpp b/cpp/test/Ice/logger/Client4.cpp index 991bca47780..83459ce09e7 100644 --- a/cpp/test/Ice/logger/Client4.cpp +++ b/cpp/test/Ice/logger/Client4.cpp @@ -8,34 +8,20 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; -namespace -{ - -class Client : public Ice::Application +class Client4 : public Test::TestHelper { public: - virtual int - run(int, char*[]) - { - communicator()->getLogger()->trace("info", "XXX"); - return EXIT_SUCCESS; - }; -}; -} + void run(int, char**); +}; -int -main(int argc, char* argv[]) +void +Client4::run(int argc, char** argv) { -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - #ifdef _WIN32 // // 28605 == ISO 8859-15 codepage @@ -46,13 +32,13 @@ main(int argc, char* argv[]) #else setProcessStringConverter(Ice::createIconvStringConverter<char>("ISO8859-15")); #endif - Ice::InitializationData id; - id.properties = Ice::createProperties(); - id.properties->load("config.client"); - Client c; - int status = c.main(argc, argv, id); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->load("config.client"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + communicator->getLogger()->trace("info", "XXX"); #ifdef _WIN32 SetConsoleOutputCP(cp); #endif - return status; } + +DEFINE_TEST(Client4) diff --git a/cpp/test/Ice/logger/Client5.cpp b/cpp/test/Ice/logger/Client5.cpp index e831348d874..2d7442a98c6 100644 --- a/cpp/test/Ice/logger/Client5.cpp +++ b/cpp/test/Ice/logger/Client5.cpp @@ -8,29 +8,19 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; -namespace +void +runTest(const Ice::CommunicatorPtr& communicator) { - -class Client : public Ice::Application -{ -public: - virtual int - run(int, char*[]) + int count = communicator->getProperties()->getPropertyAsInt("Client.Iterations"); + const string message = communicator->getProperties()->getProperty("Client.Message"); + for(int i = 0; i < count; ++i) { - int count = communicator()->getProperties()->getPropertyAsInt("Client.Iterations"); - const string message = communicator()->getProperties()->getProperty("Client.Message"); - for(int i = 0; i < count; ++i) - { - communicator()->getLogger()->print(message); - } - return EXIT_SUCCESS; - }; -}; - + communicator->getLogger()->print(message); + } } // @@ -47,14 +37,16 @@ const string message = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. "Fusce dictum turpis ante, sit amet finibus eros commodo vel. Sed amet."; #endif -int -main(int argc, char* argv[]) +class Client5 : public Test::TestHelper { -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif +public: + void run(int, char**); +}; + +void +Client5::run(int argc, char** argv) +{ // // Run Client application 20 times, each times it generate 512 bytes of log messages, // the application logger is configured to archive log files larger than 512 bytes. @@ -71,11 +63,9 @@ main(int argc, char* argv[]) id.properties->setProperty("Client.Message", message); id.properties->setProperty("Ice.LogFile", "client5-0.log"); id.properties->setProperty("Ice.LogFile.SizeMax", "512"); - Client c; - if(c.main(argc, argv, id) != EXIT_SUCCESS) - { - return EXIT_FAILURE; - } + + Ice::CommunicatorHolder ich = Ice::initialize(id); + runTest(ich.communicator()); } // @@ -91,11 +81,9 @@ main(int argc, char* argv[]) id.properties->setProperty("Client.Message", message); id.properties->setProperty("Ice.LogFile", "client5-1.log"); id.properties->setProperty("Ice.LogFile.SizeMax", "0"); - Client c; - if(c.main(argc, argv, id) != EXIT_SUCCESS) - { - return EXIT_FAILURE; - } + + Ice::CommunicatorHolder ich = Ice::initialize(id); + runTest(ich.communicator()); } // @@ -111,11 +99,9 @@ main(int argc, char* argv[]) id.properties->setProperty("Client.Message", message); id.properties->setProperty("Ice.LogFile", "client5-2.log"); id.properties->setProperty("Ice.LogFile.SizeMax", "128"); - Client c; - if(c.main(argc, argv, id) != EXIT_SUCCESS) - { - return EXIT_FAILURE; - } + + Ice::CommunicatorHolder ich = Ice::initialize(id); + runTest(ich.communicator()); } // @@ -130,11 +116,9 @@ main(int argc, char* argv[]) id.properties->setProperty("Client.Message", message); id.properties->setProperty("Ice.LogFile", "client5-3.log"); id.properties->setProperty("Ice.LogFile.SizeMax", "64"); - Client c; - if(c.main(argc, argv, id) != EXIT_SUCCESS) - { - return EXIT_FAILURE; - } + + Ice::CommunicatorHolder ich = Ice::initialize(id); + runTest(ich.communicator()); } // @@ -151,10 +135,10 @@ main(int argc, char* argv[]) id.properties->setProperty("Client.Message", message); id.properties->setProperty("Ice.LogFile", "log/client5-4.log"); id.properties->setProperty("Ice.LogFile.SizeMax", "512"); - Client c; - if(c.main(argc, argv, id) != EXIT_SUCCESS) - { - return EXIT_FAILURE; - } + + Ice::CommunicatorHolder ich = Ice::initialize(id); + runTest(ich.communicator()); } } + +DEFINE_TEST(Client5) diff --git a/cpp/test/Ice/metrics/AllTests.cpp b/cpp/test/Ice/metrics/AllTests.cpp index 94636136c36..c21cc22e94a 100644 --- a/cpp/test/Ice/metrics/AllTests.cpp +++ b/cpp/test/Ice/metrics/AllTests.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <InstrumentationI.h> #include <Test.h> @@ -59,7 +59,7 @@ string getPort(const Ice::PropertiesAdminPrxPtr& p) { ostringstream os; - os << getTestPort(p->ice_getCommunicator()->getProperties(), 0); + os << TestHelper::getTestPort(p->ice_getCommunicator()->getProperties(), 0); return os.str(); } @@ -384,7 +384,8 @@ clearView(const Ice::PropertiesAdminPrxPtr& cprops, const Ice::PropertiesAdminPr } void -checkFailure(const IceMX::MetricsAdminPrxPtr& m, const string& map, const string& id, const string& failure, int count = 0) +checkFailure(const IceMX::MetricsAdminPrxPtr& m, const string& map, const string& id, const string& failure, + int count = 0) { IceMX::MetricsFailures f = m->getMetricsFailures("View", map, id); if(f.failures.find(failure) == f.failures.end()) @@ -414,18 +415,18 @@ toMap(const IceMX::MetricsMap& mmap) } MetricsPrxPtr -allTests(const Ice::CommunicatorPtr& communicator, const CommunicatorObserverIPtr& obsv) +allTests(Test::TestHelper* helper, const CommunicatorObserverIPtr& obsv) { - Ice::PropertiesPtr properties = communicator->getProperties(); - string host = getTestHost(properties); + Ice::CommunicatorPtr communicator = helper->communicator(); + string host = helper->getTestHost(); string port; { ostringstream os; - os << getTestPort(properties, 0); + os << helper->getTestPort(); port = os.str(); } string hostAndPort = host + ":" + port; - string protocol = getTestProtocol(properties); + string protocol = helper->getTestProtocol(); string endpoint; { ostringstream os; @@ -638,7 +639,7 @@ allTests(const Ice::CommunicatorPtr& communicator, const CommunicatorObserverIPt map = toMap(clientMetrics->getMetricsView("View", timestamp)["Connection"]); test(map["active"]->current == 1); - Ice::ObjectPrxPtr cprx = communicator->stringToProxy("controller:" + getTestEndpoint(communicator, 1)); + Ice::ObjectPrxPtr cprx = communicator->stringToProxy("controller:" + helper->getTestEndpoint(1)); ControllerPrxPtr controller = ICE_CHECKED_CAST(ControllerPrx, cprx); controller->hold(); diff --git a/cpp/test/Ice/metrics/Client.cpp b/cpp/test/Ice/metrics/Client.cpp index 33a7c909d0e..18be573689c 100644 --- a/cpp/test/Ice/metrics/Client.cpp +++ b/cpp/test/Ice/metrics/Client.cpp @@ -8,46 +8,36 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #include <InstrumentationI.h> -DEFINE_TEST("client") - using namespace std; using namespace Test; -int -run(int, char**, const Ice::CommunicatorPtr& communicator, const CommunicatorObserverIPtr& observer) +class Client : public Test::TestHelper { - MetricsPrxPtr allTests(const Ice::CommunicatorPtr&, const CommunicatorObserverIPtr&); - MetricsPrxPtr metrics = allTests(communicator, observer); - metrics->shutdown(); - return EXIT_SUCCESS; -} +public: + + void run(int, char**); +}; -int -main(int argc, char* argv[]) +void +Client::run(int argc, char** argv) { -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Admin.Endpoints", "default"); - initData.properties->setProperty("Ice.Admin.InstanceName", "client"); - initData.properties->setProperty("Ice.Admin.DelayCreation", "1"); - initData.properties->setProperty("Ice.Warn.Connections", "0"); - CommunicatorObserverIPtr observer = ICE_MAKE_SHARED(CommunicatorObserverI); - initData.observer = observer; - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator(), observer); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } + Ice::InitializationData initData; + initData.properties = createTestProperties(argc, argv); + initData.properties->setProperty("Ice.Admin.Endpoints", "default"); + initData.properties->setProperty("Ice.Admin.InstanceName", "client"); + initData.properties->setProperty("Ice.Admin.DelayCreation", "1"); + initData.properties->setProperty("Ice.Warn.Connections", "0"); + CommunicatorObserverIPtr observer = ICE_MAKE_SHARED(CommunicatorObserverI); + initData.observer = observer; + Ice::CommunicatorHolder communicator = initialize(argc, argv, initData); + + MetricsPrxPtr allTests(Test::TestHelper*, const CommunicatorObserverIPtr&); + MetricsPrxPtr metrics = allTests(this, observer); + metrics->shutdown(); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/metrics/Collocated.cpp b/cpp/test/Ice/metrics/Collocated.cpp index 156673ff1e1..4dc2e316e46 100644 --- a/cpp/test/Ice/metrics/Collocated.cpp +++ b/cpp/test/Ice/metrics/Collocated.cpp @@ -8,57 +8,47 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> #include <InstrumentationI.h> -DEFINE_TEST("client") - using namespace std; using namespace Test; -int -run(int, char**, const Ice::CommunicatorPtr& communicator, const CommunicatorObserverIPtr& observer) +class Collocated : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Collocated::run(int argc, char** argv) { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); + Ice::InitializationData initData; + initData.properties = createTestProperties(argc, argv); + initData.properties->setProperty("Ice.Admin.Endpoints", "tcp"); + initData.properties->setProperty("Ice.Admin.InstanceName", "client"); + initData.properties->setProperty("Ice.Admin.DelayCreation", "1"); + initData.properties->setProperty("Ice.Warn.Connections", "0"); + initData.properties->setProperty("Ice.Warn.Dispatch", "0"); + CommunicatorObserverIPtr observer = ICE_MAKE_SHARED(CommunicatorObserverI); + initData.observer = observer; + Ice::CommunicatorHolder communicator = initialize(argc, argv, initData); + + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->add(ICE_MAKE_SHARED(MetricsI), Ice::stringToIdentity("metrics")); //adapter->activate(); // Don't activate OA to ensure collocation is used. - communicator->getProperties()->setProperty("ControllerAdapter.Endpoints", getTestEndpoint(communicator, 1)); + communicator->getProperties()->setProperty("ControllerAdapter.Endpoints", getTestEndpoint(1)); Ice::ObjectAdapterPtr controllerAdapter = communicator->createObjectAdapter("ControllerAdapter"); controllerAdapter->add(ICE_MAKE_SHARED(ControllerI, adapter), Ice::stringToIdentity("controller")); //controllerAdapter->activate(); // Don't activate OA to ensure collocation is used. - MetricsPrxPtr allTests(const Ice::CommunicatorPtr&, const CommunicatorObserverIPtr&); - MetricsPrxPtr metrics = allTests(communicator, observer); + MetricsPrxPtr allTests(Test::TestHelper*, const CommunicatorObserverIPtr&); + MetricsPrxPtr metrics = allTests(this, observer); metrics->shutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Admin.Endpoints", "tcp"); - initData.properties->setProperty("Ice.Admin.InstanceName", "client"); - initData.properties->setProperty("Ice.Admin.DelayCreation", "1"); - initData.properties->setProperty("Ice.Warn.Connections", "0"); - initData.properties->setProperty("Ice.Warn.Dispatch", "0"); - CommunicatorObserverIPtr observer = ICE_MAKE_SHARED(CommunicatorObserverI); - initData.observer = observer; - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator(), observer); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Collocated) diff --git a/cpp/test/Ice/metrics/Server.cpp b/cpp/test/Ice/metrics/Server.cpp index d0c9e3ecaf7..05ee94509cd 100644 --- a/cpp/test/Ice/metrics/Server.cpp +++ b/cpp/test/Ice/metrics/Server.cpp @@ -8,55 +8,41 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("server") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Admin.Endpoints", "tcp"); + properties->setProperty("Ice.Admin.InstanceName", "server"); + properties->setProperty("Ice.Warn.Connections", "0"); + properties->setProperty("Ice.Warn.Dispatch", "0"); + properties->setProperty("Ice.MessageSizeMax", "50000"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->add(ICE_MAKE_SHARED(MetricsI), Ice::stringToIdentity("metrics")); adapter->activate(); - communicator->getProperties()->setProperty("ControllerAdapter.Endpoints", getTestEndpoint(communicator, 1)); + communicator->getProperties()->setProperty("ControllerAdapter.Endpoints", getTestEndpoint(1)); Ice::ObjectAdapterPtr controllerAdapter = communicator->createObjectAdapter("ControllerAdapter"); controllerAdapter->add(ICE_MAKE_SHARED(ControllerI, adapter), Ice::stringToIdentity("controller")); controllerAdapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - //initData.properties->setProperty("Ice.ThreadPool.Server.Size", "1"); - //initData.properties->setProperty("Ice.ThreadPool.Server.SizeMax", "1"); - initData.properties->setProperty("Ice.Admin.Endpoints", "tcp"); - initData.properties->setProperty("Ice.Admin.InstanceName", "server"); - initData.properties->setProperty("Ice.Warn.Connections", "0"); - initData.properties->setProperty("Ice.Warn.Dispatch", "0"); - initData.properties->setProperty("Ice.MessageSizeMax", "50000"); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/metrics/ServerAMD.cpp b/cpp/test/Ice/metrics/ServerAMD.cpp index 5b04664ff84..8f5a723523b 100644 --- a/cpp/test/Ice/metrics/ServerAMD.cpp +++ b/cpp/test/Ice/metrics/ServerAMD.cpp @@ -8,55 +8,41 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestAMDI.h> -DEFINE_TEST("serveramd") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class ServerAMD : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +ServerAMD::run(int argc, char** argv) { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Admin.Endpoints", "tcp"); + properties->setProperty("Ice.Admin.InstanceName", "server"); + properties->setProperty("Ice.Warn.Connections", "0"); + properties->setProperty("Ice.Warn.Dispatch", "0"); + properties->setProperty("Ice.MessageSizeMax", "50000"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->add(ICE_MAKE_SHARED(MetricsI), Ice::stringToIdentity("metrics")); adapter->activate(); - communicator->getProperties()->setProperty("ControllerAdapter.Endpoints", getTestEndpoint(communicator, 1)); + communicator->getProperties()->setProperty("ControllerAdapter.Endpoints", getTestEndpoint(1)); Ice::ObjectAdapterPtr controllerAdapter = communicator->createObjectAdapter("ControllerAdapter"); controllerAdapter->add(ICE_MAKE_SHARED(ControllerI, adapter), Ice::stringToIdentity("controller")); controllerAdapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - //initData.properties->setProperty("Ice.ThreadPool.Server.Size", "1"); - //initData.properties->setProperty("Ice.ThreadPool.Server.SizeMax", "1"); - initData.properties->setProperty("Ice.Admin.Endpoints", "tcp"); - initData.properties->setProperty("Ice.Admin.InstanceName", "server"); - initData.properties->setProperty("Ice.Warn.Connections", "0"); - initData.properties->setProperty("Ice.Warn.Dispatch", "0"); - initData.properties->setProperty("Ice.MessageSizeMax", "50000"); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(ServerAMD) diff --git a/cpp/test/Ice/metrics/TestI.h b/cpp/test/Ice/metrics/TestI.h index b0114348aa7..50edd4474a5 100644 --- a/cpp/test/Ice/metrics/TestI.h +++ b/cpp/test/Ice/metrics/TestI.h @@ -11,7 +11,6 @@ #define TEST_I_H #include <Test.h> -#include <TestCommon.h> class MetricsI : public Test::Metrics { diff --git a/cpp/test/Ice/networkProxy/AllTests.cpp b/cpp/test/Ice/networkProxy/AllTests.cpp index 9f6111888fd..ae7534bd99f 100644 --- a/cpp/test/Ice/networkProxy/AllTests.cpp +++ b/cpp/test/Ice/networkProxy/AllTests.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; @@ -34,9 +34,10 @@ getIPConnectionInfo(const Ice::ConnectionInfoPtr& info) } void -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { - string sref = "test:" + getTestEndpoint(communicator, 0); + Ice::CommunicatorPtr communicator = helper->communicator(); + string sref = "test:" + helper->getTestEndpoint(); Ice::ObjectPrxPtr obj = communicator->stringToProxy(sref); test(obj); diff --git a/cpp/test/Ice/networkProxy/Client.cpp b/cpp/test/Ice/networkProxy/Client.cpp index cb0b70071ac..50558f8f63f 100644 --- a/cpp/test/Ice/networkProxy/Client.cpp +++ b/cpp/test/Ice/networkProxy/Client.cpp @@ -8,38 +8,25 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> -DEFINE_TEST("client") - using namespace std; using namespace Test; -int -run(int, char**, const Ice::CommunicatorPtr& communicator){ - void allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - return EXIT_SUCCESS; -} - -int -main(int argc, char* argv[]) +class Client : public Test::TestHelper { -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif +public: - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } + void run(int, char**); +}; + +void +Client::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + void allTests(Test::TestHelper*); + allTests(this); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/networkProxy/Server.cpp b/cpp/test/Ice/networkProxy/Server.cpp index 2eb40102b16..b66e6f92f1a 100644 --- a/cpp/test/Ice/networkProxy/Server.cpp +++ b/cpp/test/Ice/networkProxy/Server.cpp @@ -8,11 +8,9 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> -DEFINE_TEST("server") - using namespace std; namespace @@ -31,37 +29,24 @@ public: } -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); Ice::ObjectPtr object = ICE_MAKE_SHARED(TestI); adapter->add(object, Ice::stringToIdentity("test")); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerIceUDP(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/objects/AllTests.cpp b/cpp/test/Ice/objects/AllTests.cpp index 977838a2948..324cb2af3a1 100644 --- a/cpp/test/Ice/objects/AllTests.cpp +++ b/cpp/test/Ice/objects/AllTests.cpp @@ -8,16 +8,13 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -#ifdef _MSC_VER -// For 'Ice::Communicator::addObjectFactory()' deprecation -#pragma warning( disable : 4996 ) -#endif - -#if defined(__GNUC__) // For 'Ice::Communicator::addObjectFactory()' deprecation +#if defined(_MSC_VER) +# pragma warning( disable : 4996 ) +#elif defined(__GNUC__) # pragma GCC diagnostic ignored "-Wdeprecated-declarations" #endif @@ -39,7 +36,7 @@ public: void testUOE(const Ice::CommunicatorPtr& communicator) { - string ref = "uoet:" + getTestEndpoint(communicator, 0); + string ref = "uoet:" + TestHelper::getTestEndpoint(communicator->getProperties()); Ice::ObjectPrxPtr base = communicator->stringToProxy(ref); test(base); UnexpectedObjectExceptionTestPrxPtr uoet = ICE_UNCHECKED_CAST(UnexpectedObjectExceptionTestPrx, base); @@ -116,10 +113,11 @@ clear(const DPtr& d) } InitialPrxPtr -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { + Ice::CommunicatorPtr communicator = helper->communicator(); cout << "testing stringToProxy... " << flush; - string ref = "initial:" + getTestEndpoint(communicator, 0); + string ref = "initial:" + helper->getTestEndpoint(); Ice::ObjectPrxPtr base = communicator->stringToProxy(ref); test(base); cout << "ok" << endl; @@ -471,8 +469,10 @@ allTests(const Ice::CommunicatorPtr& communicator) try { - TestIntfPrxPtr p = ICE_CHECKED_CAST(TestIntfPrx, - communicator->stringToProxy("test:" + getTestEndpoint(communicator, 0))); + Ice::PropertiesPtr properties = communicator->getProperties(); + TestIntfPrxPtr p = + ICE_CHECKED_CAST(TestIntfPrx, + communicator->stringToProxy("test:" + TestHelper::getTestEndpoint(properties))); cout << "testing Object factory registration... " << flush; { diff --git a/cpp/test/Ice/objects/Client.cpp b/cpp/test/Ice/objects/Client.cpp index bdc86082d50..677d60e32a8 100644 --- a/cpp/test/Ice/objects/Client.cpp +++ b/cpp/test/Ice/objects/Client.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> // @@ -21,15 +21,10 @@ // #include <DerivedEx.h> -DEFINE_TEST("client") - -#ifdef _MSC_VER -// For 'Ice::Communicator::addObjectFactory()' deprecation -#pragma warning( disable : 4996 ) -#endif - -#if defined(__GNUC__) // For 'Ice::Communicator::addObjectFactory()' deprecation +#if defined(_MSC_VER) +# pragma warning( disable : 4996 ) +#elif defined(__GNUC__) # pragma GCC diagnostic ignored "-Wdeprecated-declarations" #endif @@ -84,13 +79,13 @@ public: { return new HI; } - assert(false); // Should never be reached return 0; } }; #endif + class MyObjectFactory : public Ice::ObjectFactory { public: @@ -117,9 +112,23 @@ private: bool _destroyed; }; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { +public: + + void run(int, char**); +}; + +void +Client::run(int argc, char** argv) +{ + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + +#ifndef ICE_CPP11_MAPPING + properties->setProperty("Ice.CollectObjects", "1"); +#endif + + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); #ifdef ICE_CPP11_MAPPING communicator->getValueFactoryManager()->add(makeFactory<BI>(), "::Test::B"); communicator->getValueFactoryManager()->add(makeFactory<CI>(), "::Test::C"); @@ -143,35 +152,9 @@ run(int, char**, const Ice::CommunicatorPtr& communicator) communicator->addObjectFactory(new MyObjectFactory(), "TestOF"); #endif - InitialPrxPtr allTests(const Ice::CommunicatorPtr&); - InitialPrxPtr initial = allTests(communicator); + InitialPrxPtr allTests(Test::TestHelper*); + InitialPrxPtr initial = allTests(this); initial->shutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -# ifdef ICE_HAS_BT - Ice::registerIceBT(false); -# endif -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); -#ifndef ICE_CPP11_MAPPING - initData.properties->setProperty("Ice.CollectObjects", "1"); -#endif - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/objects/Collocated.cpp b/cpp/test/Ice/objects/Collocated.cpp index acba14e7df0..01a2e3c99a8 100644 --- a/cpp/test/Ice/objects/Collocated.cpp +++ b/cpp/test/Ice/objects/Collocated.cpp @@ -8,18 +8,15 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("collocated") - -#ifdef _MSC_VER -// For 'Ice::Communicator::addObjectFactory()' deprecation -#pragma warning( disable : 4996 ) -#endif - -#if defined(__GNUC__) +// // For 'Ice::Communicator::addObjectFactory()' deprecation +// +#if defined(_MSC_VER) +# pragma warning( disable : 4996 ) +#elif defined(__GNUC__) # pragma GCC diagnostic ignored "-Wdeprecated-declarations" #endif @@ -81,6 +78,7 @@ public: }; #endif + class MyObjectFactory : public Ice::ObjectFactory { public: @@ -106,9 +104,23 @@ private: bool _destroyed; }; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Collocated : public Test::TestHelper { +public: + + void run(int, char**); +}; + +void +Collocated::run(int argc, char** argv) +{ + Ice::PropertiesPtr properties = createTestProperties(argc, argv); +#ifndef ICE_CPP11_MAPPING + properties->setProperty("Ice.CollectObjects", "1"); +#endif + properties->setProperty("Ice.Warn.Dispatch", "0"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + #ifdef ICE_CPP11_MAPPING communicator->getValueFactoryManager()->add(makeFactory<BI>(), "::Test::B"); communicator->getValueFactoryManager()->add(makeFactory<CI>(), "::Test::C"); @@ -132,39 +144,15 @@ run(int, char**, const Ice::CommunicatorPtr& communicator) communicator->addObjectFactory(new MyObjectFactory(), "TestOF"); #endif - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->add(ICE_MAKE_SHARED(InitialI, adapter), Ice::stringToIdentity("initial")); adapter->add(ICE_MAKE_SHARED(TestIntfI), Ice::stringToIdentity("test")); adapter->add(ICE_MAKE_SHARED(UnexpectedObjectExceptionTestI), Ice::stringToIdentity("uoet")); - InitialPrxPtr allTests(const Ice::CommunicatorPtr&); - InitialPrxPtr initial = allTests(communicator); + InitialPrxPtr allTests(Test::TestHelper*); + InitialPrxPtr initial = allTests(this); // We must call shutdown even in the collocated case for cyclic dependency cleanup initial->shutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); -#ifndef ICE_CPP11_MAPPING - initData.properties->setProperty("Ice.CollectObjects", "1"); -#endif - initData.properties->setProperty("Ice.Warn.Dispatch", "0"); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Collocated) diff --git a/cpp/test/Ice/objects/Server.cpp b/cpp/test/Ice/objects/Server.cpp index 0e895811984..05d864a93a0 100644 --- a/cpp/test/Ice/objects/Server.cpp +++ b/cpp/test/Ice/objects/Server.cpp @@ -8,11 +8,9 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("server") - using namespace std; using namespace Test; @@ -52,9 +50,21 @@ public: }; #endif -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) { + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Warn.Dispatch", "0"); + + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + #ifdef ICE_CPP11_MAPPING communicator->getValueFactoryManager()->add(makeFactory<II>(), "::Test::I"); communicator->getValueFactoryManager()->add(makeFactory<JI>(), "::Test::J"); @@ -66,36 +76,15 @@ run(int, char**, const Ice::CommunicatorPtr& communicator) communicator->getValueFactoryManager()->add(factory, "::Test::H"); #endif - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->add(ICE_MAKE_SHARED(InitialI, adapter), Ice::stringToIdentity("initial")); adapter->add(ICE_MAKE_SHARED(TestIntfI), Ice::stringToIdentity("test")); adapter->add(ICE_MAKE_SHARED(UnexpectedObjectExceptionTestI), Ice::stringToIdentity("uoet")); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Warn.Dispatch", "0"); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/objects/TestI.h b/cpp/test/Ice/objects/TestI.h index b577518a3eb..1061864de50 100644 --- a/cpp/test/Ice/objects/TestI.h +++ b/cpp/test/Ice/objects/TestI.h @@ -11,7 +11,6 @@ #define TEST_I_H #include <Test.h> -#include <TestCommon.h> class BI : public Test::B { diff --git a/cpp/test/Ice/operations/AllTests.cpp b/cpp/test/Ice/operations/AllTests.cpp index b107f636c7d..5f0acf61547 100644 --- a/cpp/test/Ice/operations/AllTests.cpp +++ b/cpp/test/Ice/operations/AllTests.cpp @@ -9,15 +9,16 @@ #include <Ice/Ice.h> #include <Ice/Locator.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; Test::MyClassPrxPtr -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { - string ref = "test:" + getTestEndpoint(communicator, 0); + Ice::CommunicatorPtr communicator = helper->communicator(); + string ref = "test:" + helper->getTestEndpoint(); Ice::ObjectPrxPtr base = communicator->stringToProxy(ref); Test::MyClassPrxPtr cl = ICE_CHECKED_CAST(Test::MyClassPrx, base); Test::MyDerivedClassPrxPtr derived = ICE_CHECKED_CAST(Test::MyDerivedClassPrx, cl); diff --git a/cpp/test/Ice/operations/BatchOneways.cpp b/cpp/test/Ice/operations/BatchOneways.cpp index 4e594aa3ffa..517847e6b53 100644 --- a/cpp/test/Ice/operations/BatchOneways.cpp +++ b/cpp/test/Ice/operations/BatchOneways.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; diff --git a/cpp/test/Ice/operations/BatchOnewaysAMI.cpp b/cpp/test/Ice/operations/BatchOnewaysAMI.cpp index c77cd07789e..47709bd958a 100644 --- a/cpp/test/Ice/operations/BatchOnewaysAMI.cpp +++ b/cpp/test/Ice/operations/BatchOnewaysAMI.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; diff --git a/cpp/test/Ice/operations/Client.cpp b/cpp/test/Ice/operations/Client.cpp index 29452d3d0c4..a3efb33e179 100644 --- a/cpp/test/Ice/operations/Client.cpp +++ b/cpp/test/Ice/operations/Client.cpp @@ -8,18 +8,34 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> -DEFINE_TEST("client") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - Test::MyClassPrxPtr allTests(const Ice::CommunicatorPtr&); - Test::MyClassPrxPtr myClass = allTests(communicator); +public: + + void run(int, char**); +}; + +void +Client::run(int argc, char** argv) +{ + // + // In this test, we need at least two threads in the + // client side thread pool for nested AMI. + // + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.ThreadPool.Client.Size", "2"); + properties->setProperty("Ice.ThreadPool.Client.SizeWarn", "0"); + properties->setProperty("Ice.BatchAutoFlushSize", "100"); + + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + + Test::MyClassPrxPtr allTests(Test::TestHelper*); + Test::MyClassPrxPtr myClass = allTests(this); myClass->shutdown(); cout << "testing server shutdown... " << flush; @@ -35,38 +51,6 @@ run(int, char**, const Ice::CommunicatorPtr& communicator) { cout << "ok" << endl; } - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -# ifdef ICE_HAS_BT - Ice::registerIceBT(false); -# endif -#endif - - try - { - // - // In this test, we need at least two threads in the - // client side thread pool for nested AMI. - // - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.ThreadPool.Client.Size", "2"); - initData.properties->setProperty("Ice.ThreadPool.Client.SizeWarn", "0"); - initData.properties->setProperty("Ice.BatchAutoFlushSize", "100"); - - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/operations/Collocated.cpp b/cpp/test/Ice/operations/Collocated.cpp index 2b2020e63fc..c3833fc1729 100644 --- a/cpp/test/Ice/operations/Collocated.cpp +++ b/cpp/test/Ice/operations/Collocated.cpp @@ -8,17 +8,25 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("collocated") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Collocated : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Collocated::run(int argc, char** argv) { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.BatchAutoFlushSize", "100"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); communicator->getProperties()->setProperty("TestAdapter.AdapterId", "test"); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); Ice::ObjectPrxPtr prx = adapter->add(ICE_MAKE_SHARED(MyDerivedClassI), Ice::stringToIdentity("test")); @@ -26,31 +34,8 @@ run(int, char**, const Ice::CommunicatorPtr& communicator) test(!prx->ice_getConnection()); - Test::MyClassPrxPtr allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - - return EXIT_SUCCESS; + Test::MyClassPrxPtr allTests(Test::TestHelper*); + allTests(this); } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.BatchAutoFlushSize", "100"); - - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Collocated) diff --git a/cpp/test/Ice/operations/Oneways.cpp b/cpp/test/Ice/operations/Oneways.cpp index 4ceef346381..f88f26a4877 100644 --- a/cpp/test/Ice/operations/Oneways.cpp +++ b/cpp/test/Ice/operations/Oneways.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; diff --git a/cpp/test/Ice/operations/OnewaysAMI.cpp b/cpp/test/Ice/operations/OnewaysAMI.cpp index c686284c92a..1338071e166 100644 --- a/cpp/test/Ice/operations/OnewaysAMI.cpp +++ b/cpp/test/Ice/operations/OnewaysAMI.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; diff --git a/cpp/test/Ice/operations/Server.cpp b/cpp/test/Ice/operations/Server.cpp index 6eb60873c8c..988d818ac46 100644 --- a/cpp/test/Ice/operations/Server.cpp +++ b/cpp/test/Ice/operations/Server.cpp @@ -8,51 +8,36 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("server") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper { - string endpt = getTestEndpoint(communicator, 0); - communicator->getProperties()->setProperty("TestAdapter.Endpoints", endpt); +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) +{ + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + // + // Its possible to have batch oneway requests dispatched after + // the adapter is deactivated due to thread scheduling so we + // supress this warning. + // + properties->setProperty("Ice.Warn.Dispatch", "0"); + + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->add(ICE_MAKE_SHARED(MyDerivedClassI), Ice::stringToIdentity("test")); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerIceUDP(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - // - // Its possible to have batch oneway requests dispatched after - // the adapter is deactivated due to thread scheduling so we - // supress this warning. - // - initData.properties->setProperty("Ice.Warn.Dispatch", "0"); - - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/operations/ServerAMD.cpp b/cpp/test/Ice/operations/ServerAMD.cpp index 088f6e003a7..83a8675f62b 100644 --- a/cpp/test/Ice/operations/ServerAMD.cpp +++ b/cpp/test/Ice/operations/ServerAMD.cpp @@ -8,51 +8,36 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestAMDI.h> -DEFINE_TEST("serveramd") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class ServerAMD : public Test::TestHelper { - string endpt = getTestEndpoint(communicator, 0); - communicator->getProperties()->setProperty("TestAdapter.Endpoints", endpt); +public: + + void run(int, char**); +}; + +void +ServerAMD::run(int argc, char** argv) +{ + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + // + // Its possible to have batch oneway requests dispatched after + // the adapter is deactivated due to thread scheduling so we + // supress this warning. + // + properties->setProperty("Ice.Warn.Dispatch", "0"); + + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->add(ICE_MAKE_SHARED(MyDerivedClassI), Ice::stringToIdentity("test")); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerIceUDP(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - // - // Its possible to have batch oneway requests dispatched after - // the adapter is deactivated due to thread scheduling so we - // supress this warning. - // - initData.properties->setProperty("Ice.Warn.Dispatch", "0"); - - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(ServerAMD) diff --git a/cpp/test/Ice/operations/TestAMDI.cpp b/cpp/test/Ice/operations/TestAMDI.cpp index 83ea89e6eaf..55f0c53023f 100644 --- a/cpp/test/Ice/operations/TestAMDI.cpp +++ b/cpp/test/Ice/operations/TestAMDI.cpp @@ -9,7 +9,7 @@ #include <Ice/Ice.h> #include <TestAMDI.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <functional> #include <iterator> diff --git a/cpp/test/Ice/operations/TestAMDI.h b/cpp/test/Ice/operations/TestAMDI.h index 4628e1ae54b..afd23239048 100644 --- a/cpp/test/Ice/operations/TestAMDI.h +++ b/cpp/test/Ice/operations/TestAMDI.h @@ -12,7 +12,6 @@ #include <IceUtil/Thread.h> #include <TestAMD.h> -#include <TestCommon.h> class MyDerivedClassI : public Test::MyDerivedClass { diff --git a/cpp/test/Ice/operations/TestI.cpp b/cpp/test/Ice/operations/TestI.cpp index 963ff2885d1..96651a25d4b 100644 --- a/cpp/test/Ice/operations/TestI.cpp +++ b/cpp/test/Ice/operations/TestI.cpp @@ -10,7 +10,7 @@ #include <Ice/Ice.h> #include <IceUtil/IceUtil.h> #include <TestI.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <functional> #include <iterator> diff --git a/cpp/test/Ice/operations/TestI.h b/cpp/test/Ice/operations/TestI.h index 94ac7b0f8ff..2d14f50b990 100644 --- a/cpp/test/Ice/operations/TestI.h +++ b/cpp/test/Ice/operations/TestI.h @@ -11,7 +11,6 @@ #define TEST_I_H #include <Test.h> -#include <TestCommon.h> class MyDerivedClassI : public Test::MyDerivedClass { diff --git a/cpp/test/Ice/operations/Twoways.cpp b/cpp/test/Ice/operations/Twoways.cpp index 88a40ac4d4f..c2222899420 100644 --- a/cpp/test/Ice/operations/Twoways.cpp +++ b/cpp/test/Ice/operations/Twoways.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #include <limits> @@ -1753,8 +1753,10 @@ twoways(const Ice::CommunicatorPtr& communicator, const Test::MyClassPrxPtr& p) ctx["two"] = "TWO"; ctx["three"] = "THREE"; - Test::MyClassPrxPtr p = ICE_UNCHECKED_CAST(Test::MyClassPrx, - ic->stringToProxy("test:" + getTestEndpoint(ic, 0))); + Ice::PropertiesPtr properties = ic->getProperties(); + Test::MyClassPrxPtr p = + ICE_UNCHECKED_CAST(Test::MyClassPrx, + ic->stringToProxy("test:" + TestHelper::getTestEndpoint(properties, 0))); ic->getImplicitContext()->setContext(ctx); test(ic->getImplicitContext()->getContext() == ctx); diff --git a/cpp/test/Ice/operations/TwowaysAMI.cpp b/cpp/test/Ice/operations/TwowaysAMI.cpp index ff8abb7897a..47451f5c41a 100644 --- a/cpp/test/Ice/operations/TwowaysAMI.cpp +++ b/cpp/test/Ice/operations/TwowaysAMI.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> // @@ -2475,8 +2475,10 @@ twowaysAMI(const Ice::CommunicatorPtr& communicator, const Test::MyClassPrxPtr& ctx["two"] = "TWO"; ctx["three"] = "THREE"; + Ice::PropertiesPtr properties = ic->getProperties(); Test::MyClassPrxPtr p = - ICE_UNCHECKED_CAST(Test::MyClassPrx, ic->stringToProxy("test:" + getTestEndpoint(ic, 0))); + ICE_UNCHECKED_CAST(Test::MyClassPrx, + ic->stringToProxy("test:" + TestHelper::getTestEndpoint(properties))); ic->getImplicitContext()->setContext(ctx); test(ic->getImplicitContext()->getContext() == ctx); { diff --git a/cpp/test/Ice/optional/AllTests.cpp b/cpp/test/Ice/optional/AllTests.cpp index ff23f109af9..8a19969ac03 100644 --- a/cpp/test/Ice/optional/AllTests.cpp +++ b/cpp/test/Ice/optional/AllTests.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #ifdef ICE_CPP11_MAPPING @@ -371,18 +371,23 @@ typedef IceUtil::Handle<FactoryI> FactoryIPtr; #endif InitialPrxPtr -allTests(const Ice::CommunicatorPtr& communicator, bool) +allTests(Test::TestHelper* helper, bool) { + Ice::CommunicatorPtr communicator = helper->communicator(); FactoryIPtr factory = ICE_MAKE_SHARED(FactoryI); #ifdef ICE_CPP11_MAPPING - communicator->getValueFactoryManager()->add([factory](const string& typeId) { return factory->create(typeId); }, ""); + communicator->getValueFactoryManager()->add([factory](const string& typeId) + { + return factory->create(typeId); + }, + ""); #else communicator->getValueFactoryManager()->add(factory, ""); #endif cout << "testing stringToProxy... " << flush; - string ref = "initial:" + getTestEndpoint(communicator, 0); + string ref = "initial:" + helper->getTestEndpoint(); Ice::ObjectPrxPtr base = communicator->stringToProxy(ref); test(base); cout << "ok" << endl; diff --git a/cpp/test/Ice/optional/Client.cpp b/cpp/test/Ice/optional/Client.cpp index cd025c208ca..c4afb448df3 100644 --- a/cpp/test/Ice/optional/Client.cpp +++ b/cpp/test/Ice/optional/Client.cpp @@ -8,46 +8,30 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("client") - using namespace std; using namespace Test; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - InitialPrxPtr allTests(const Ice::CommunicatorPtr&, bool); - InitialPrxPtr initial = allTests(communicator, false); - initial->shutdown(); - return EXIT_SUCCESS; -} +public: -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -# ifdef ICE_HAS_BT - Ice::registerIceBT(false); -# endif -#endif + void run(int, char**); +}; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); +void +Client::run(int argc, char** argv) +{ + Ice::PropertiesPtr properties = createTestProperties(argc, argv); #ifndef ICE_CPP11_MAPPING - initData.properties->setProperty("Ice.CollectObjects", "1"); + properties->setProperty("Ice.CollectObjects", "1"); #endif - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + InitialPrxPtr allTests(Test::TestHelper*, bool); + InitialPrxPtr initial = allTests(this, false); + initial->shutdown(); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/optional/Server.cpp b/cpp/test/Ice/optional/Server.cpp index e92c7e9a15b..b5de88b1c5b 100644 --- a/cpp/test/Ice/optional/Server.cpp +++ b/cpp/test/Ice/optional/Server.cpp @@ -8,56 +8,33 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("server"); - using namespace std; using namespace Test; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); +#ifndef ICE_CPP11_MAPPING + properties->setProperty("Ice.CollectObjects", "1"); +#endif + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->add(ICE_MAKE_SHARED(InitialI), Ice::stringToIdentity("initial")); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - int status; - Ice::CommunicatorPtr communicator; - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); -#ifndef ICE_CPP11_MAPPING - initData.properties->setProperty("Ice.CollectObjects", "1"); -#endif - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/optional/ServerAMD.cpp b/cpp/test/Ice/optional/ServerAMD.cpp index aa93c5873eb..3da6271f1a5 100644 --- a/cpp/test/Ice/optional/ServerAMD.cpp +++ b/cpp/test/Ice/optional/ServerAMD.cpp @@ -8,56 +8,32 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestAMDI.h> -DEFINE_TEST("serveramd") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class ServerAMD : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +ServerAMD::run(int argc, char** argv) { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); +#ifndef ICE_CPP11_MAPPING + properties->setProperty("Ice.CollectObjects", "1"); +#endif + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->add(ICE_MAKE_SHARED(InitialI), Ice::stringToIdentity("initial")); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - int status; - Ice::CommunicatorPtr communicator; - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); -#ifndef ICE_CPP11_MAPPING - initData.properties->setProperty("Ice.CollectObjects", "1"); -#endif - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator); - - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(ServerAMD) diff --git a/cpp/test/Ice/optional/msbuild/server/server.vcxproj b/cpp/test/Ice/optional/msbuild/server/server.vcxproj index 84083e414f2..a2f3675c0f6 100644 --- a/cpp/test/Ice/optional/msbuild/server/server.vcxproj +++ b/cpp/test/Ice/optional/msbuild/server/server.vcxproj @@ -40,7 +40,7 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{76FA117F-D41E-4136-933C-DE93E74AE88B}</ProjectGuid> + <ProjectGuid>{E64764EB-2B8E-454F-9635-0729D07CCA24}</ProjectGuid> <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion> </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> diff --git a/cpp/test/Ice/plugin/Client.cpp b/cpp/test/Ice/plugin/Client.cpp index b4600d2cc55..a78a3ea50a4 100644 --- a/cpp/test/Ice/plugin/Client.cpp +++ b/cpp/test/Ice/plugin/Client.cpp @@ -8,12 +8,10 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; -DEFINE_TEST("client") - namespace { @@ -23,8 +21,8 @@ class MyPlugin : public Ice::Plugin public: MyPlugin() : - _initialized(false), - _destroyed(false) + _initialized(false), + _destroyed(false) { } @@ -59,7 +57,6 @@ public: private: - const Ice::CommunicatorPtr _communicator; bool _initialized; bool _destroyed; }; @@ -78,16 +75,22 @@ createMyPlugin(const ::Ice::CommunicatorPtr&, const std::string&, const ::Ice::S } -int -main(int argc, char* argv[]) +class Client : public Test::TestHelper { - int status = EXIT_SUCCESS; - Ice::CommunicatorPtr communicator; +public: + void run(int, char**); +}; + +void +Client::run(int argc, char** argv) +{ if(argc < 2) { - cerr << "usage: " << argv[0] << " <plugindir>"; - return 1; + ostringstream os; + os << "usage: " << argv[0] << " <plugindir>"; + cerr << os.str() << endl; + throw invalid_argument(os.str()); } // @@ -106,8 +109,7 @@ main(int argc, char* argv[]) cout << "testing static plugin factory... " << flush; try { - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); + Ice::CommunicatorHolder communicator = initialize(argc, argv); MyPluginPtr plugin = ICE_DYNAMIC_CAST(MyPlugin, communicator->getPluginManager()->getPlugin("Static1")); test(plugin && plugin->isInitialized()); try @@ -117,23 +119,22 @@ main(int argc, char* argv[]) catch(const Ice::NotRegisteredException&) { } - communicator->destroy(); } catch(const Ice::Exception& ex) { cerr << ex << endl; test(false); } + try { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Plugin.Static2", "1"); - communicator = Ice::initialize(argc, argv, initData); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Plugin.Static2", "1"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); MyPluginPtr plugin = ICE_DYNAMIC_CAST(MyPlugin, communicator->getPluginManager()->getPlugin("Static1")); test(plugin && plugin->isInitialized()); plugin = ICE_DYNAMIC_CAST(MyPlugin, communicator->getPluginManager()->getPlugin("Static2")); test(plugin && plugin->isInitialized()); - communicator->destroy(); } catch(const Ice::Exception& ex) { @@ -145,16 +146,16 @@ main(int argc, char* argv[]) cout << "testing a simple plug-in... " << flush; try { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Plugin.Test", pluginDir + "TestPlugin:createPlugin"); - communicator = Ice::initialize(argc, argv, initData); - communicator->destroy(); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Plugin.Test", pluginDir + "TestPlugin:createPlugin"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); } catch(const Ice::Exception& ex) { cerr << ex << endl; test(false); } + try { int majorVersion = (ICE_INT_VERSION / 10000); @@ -172,44 +173,45 @@ main(int argc, char* argv[]) os << 'a' << (patchVersion - 50); } os << ":createPlugin"; - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Plugin.Test", os.str()); - communicator = Ice::initialize(argc, argv, initData); - communicator->destroy(); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Plugin.Test", os.str()); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); } catch(const Ice::Exception& ex) { cerr << ex << endl; test(false); } + try { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Plugin.Test", pluginDir + "TestPlugin,10:createPlugin"); - communicator = Ice::initialize(argc, argv, initData); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Plugin.Test", pluginDir + "TestPlugin,10:createPlugin"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); test(false); } catch(const Ice::PluginInitializationException&) { } + try { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Plugin.Test", "TestPlugin,1.0.0:createPlugin"); - communicator = Ice::initialize(argc, argv, initData); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Plugin.Test", "TestPlugin,1.0.0:createPlugin"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); test(false); } catch(const Ice::PluginInitializationException&) { } + try { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Plugin.Test", - pluginDir + "TestPlugin:createPluginWithArgs 'C:\\Program Files\\' --DatabasePath " - "'C:\\Program Files\\Application\\db'" ); - communicator = Ice::initialize(argc, argv, initData); - communicator->destroy(); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Plugin.Test", + pluginDir + "TestPlugin:createPluginWithArgs 'C:\\Program Files\\' --DatabasePath " + "'C:\\Program Files\\Application\\db'" ); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); } catch(const Ice::Exception& ex) { @@ -219,31 +221,28 @@ main(int argc, char* argv[]) cout << "ok" << endl; cout << "testing a simple plug-in that fails to initialize... " << flush; - communicator = 0; try { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Plugin.Test", pluginDir + "TestPlugin:createPluginInitializeFail"); - communicator = Ice::initialize(argc, argv, initData); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Plugin.Test", pluginDir + "TestPlugin:createPluginInitializeFail"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); test(false); } catch(const Ice::PluginInitializationException& ex) { test(ex.reason.find("PluginInitializeFailExeption") > 0); } - test(!communicator); cout << "ok" << endl; cout << "testing plug-in load order... " << flush; try { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Plugin.PluginOne", pluginDir + "TestPlugin:createPluginOne"); - initData.properties->setProperty("Ice.Plugin.PluginTwo", pluginDir + "TestPlugin:createPluginTwo"); - initData.properties->setProperty("Ice.Plugin.PluginThree", pluginDir + "TestPlugin:createPluginThree"); - initData.properties->setProperty("Ice.PluginLoadOrder", "PluginOne, PluginTwo"); // Exclude PluginThree - communicator = Ice::initialize(argc, argv, initData); - communicator->destroy(); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Plugin.PluginOne", pluginDir + "TestPlugin:createPluginOne"); + properties->setProperty("Ice.Plugin.PluginTwo", pluginDir + "TestPlugin:createPluginTwo"); + properties->setProperty("Ice.Plugin.PluginThree", pluginDir + "TestPlugin:createPluginThree"); + properties->setProperty("Ice.PluginLoadOrder", "PluginOne, PluginTwo"); // Exclude PluginThree + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); } catch(const Ice::Exception& ex) { @@ -255,13 +254,13 @@ main(int argc, char* argv[]) cout << "testing plug-in manager... " << flush; try { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Plugin.PluginOne", pluginDir + "TestPlugin:createPluginOne"); - initData.properties->setProperty("Ice.Plugin.PluginTwo", pluginDir + "TestPlugin:createPluginTwo"); - initData.properties->setProperty("Ice.Plugin.PluginThree", pluginDir + "TestPlugin:createPluginThree"); - initData.properties->setProperty("Ice.PluginLoadOrder", "PluginOne, PluginTwo"); - initData.properties->setProperty("Ice.InitPlugins", "0"); - communicator = Ice::initialize(argc, argv, initData); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Plugin.PluginOne", pluginDir + "TestPlugin:createPluginOne"); + properties->setProperty("Ice.Plugin.PluginTwo", pluginDir + "TestPlugin:createPluginTwo"); + properties->setProperty("Ice.Plugin.PluginThree", pluginDir + "TestPlugin:createPluginThree"); + properties->setProperty("Ice.PluginLoadOrder", "PluginOne, PluginTwo"); + properties->setProperty("Ice.InitPlugins", "0"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); Ice::PluginManagerPtr pm = communicator->getPluginManager(); test(pm->getPlugin("PluginOne")); @@ -288,23 +287,21 @@ main(int argc, char* argv[]) cout << "ok" << endl; cout << "testing destroy when a plug-in fails to initialize... " << flush; - communicator = 0; try { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Plugin.PluginOneFail", pluginDir + "TestPlugin:createPluginOneFail"); - initData.properties->setProperty("Ice.Plugin.PluginTwoFail", pluginDir + "TestPlugin:createPluginTwoFail"); - initData.properties->setProperty("Ice.Plugin.PluginThreeFail", pluginDir + "TestPlugin:createPluginThreeFail"); - initData.properties->setProperty("Ice.PluginLoadOrder", "PluginOneFail, PluginTwoFail, PluginThreeFail"); - communicator = Ice::initialize(argc, argv, initData); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Plugin.PluginOneFail", pluginDir + "TestPlugin:createPluginOneFail"); + properties->setProperty("Ice.Plugin.PluginTwoFail", pluginDir + "TestPlugin:createPluginTwoFail"); + properties->setProperty("Ice.Plugin.PluginThreeFail", pluginDir + "TestPlugin:createPluginThreeFail"); + properties->setProperty("Ice.PluginLoadOrder", "PluginOneFail, PluginTwoFail, PluginThreeFail"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); test(false); } catch(const Ice::PluginInitializationException& ex) { test(ex.reason.find("PluginInitializeFailExeption") > 0); } - test(!communicator); cout << "ok" << endl; - - return status; } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/plugin/Plugin.cpp b/cpp/test/Ice/plugin/Plugin.cpp index 73aaf474990..4ff2f7bccd4 100644 --- a/cpp/test/Ice/plugin/Plugin.cpp +++ b/cpp/test/Ice/plugin/Plugin.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; diff --git a/cpp/test/Ice/properties/Client.cpp b/cpp/test/Ice/properties/Client.cpp index afb70b12dfa..368b789eeef 100644 --- a/cpp/test/Ice/properties/Client.cpp +++ b/cpp/test/Ice/properties/Client.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <fstream> using namespace std; @@ -18,9 +18,10 @@ namespace string configPath; -class Client : public Ice::Application +class TestApplication : public Ice::Application { public: + virtual int run(int, char*[]) { @@ -31,19 +32,21 @@ public: test(properties->getProperty("Ice.ProgramName") == "PropertiesClient"); test(appName() == properties->getProperty("Ice.ProgramName")); return EXIT_SUCCESS; - }; + } }; } -int -main(int argc, char* argv[]) +class Client : public Test::TestHelper { -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif +public: + + void run(int, char**); +}; +void +Client::run(int argc, char** argv) +{ ifstream in("./config/configPath"); if(!in) { @@ -54,7 +57,7 @@ main(int argc, char* argv[]) { test(false); } - try + { cout << "testing load properties from UTF-8 path... " << flush; Ice::PropertiesPtr properties = Ice::createProperties(); @@ -65,22 +68,15 @@ main(int argc, char* argv[]) test(properties->getProperty("Ice.ProgramName") == "PropertiesClient"); cout << "ok" << endl; } - catch(const Ice::Exception& ex) + { - cerr << ex << endl; - return EXIT_FAILURE; + cout << "testing load properties from UTF-8 path using Ice::Application... " << flush; + TestApplication app; + app.main(argc, argv, configPath.c_str()); + cout << "ok" << endl; } - cout << "testing load properties from UTF-8 path using Ice::Application... " << flush; - Client c; - c.main(argc, argv, configPath.c_str()); - cout << "ok" << endl; - - try { - // - // Try to load multiple config files. - // cout << "testing using Ice.Config with multiple config files... " << flush; Ice::PropertiesPtr properties; Ice::StringSeq args; @@ -91,13 +87,7 @@ main(int argc, char* argv[]) test(properties->getProperty("Config3") == "Config3"); cout << "ok" << endl; } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } - try { cout << "testing configuration file escapes... " << flush; Ice::PropertiesPtr properties; @@ -105,42 +95,37 @@ main(int argc, char* argv[]) args.push_back("--Ice.Config=config/escapes.cfg"); properties = Ice::createProperties(args); - string props[] = { "Foo\tBar", "3", - "Foo\\tBar", "4", - "Escape\\ Space", "2", - "Prop1", "1", - "Prop2", "2", - "Prop3", "3", - "My Prop1", "1", - "My Prop2", "2", - "My.Prop1", "a property", - "My.Prop2", "a property", - "My.Prop3", " a property ", - "My.Prop4", " a property ", - "My.Prop5", "a \\ property", - "foo=bar", "1", - "foo#bar", "2", - "foo bar", "3", - "A", "1", - "B", "2 3 4", - "C", "5=#6", - "AServer", "\\\\server\\dir", - "BServer", "\\server\\dir", - "" - } ; + string props[] = { + "Foo\tBar", "3", + "Foo\\tBar", "4", + "Escape\\ Space", "2", + "Prop1", "1", + "Prop2", "2", + "Prop3", "3", + "My Prop1", "1", + "My Prop2", "2", + "My.Prop1", "a property", + "My.Prop2", "a property", + "My.Prop3", " a property ", + "My.Prop4", " a property ", + "My.Prop5", "a \\ property", + "foo=bar", "1", + "foo#bar", "2", + "foo bar", "3", + "A", "1", + "B", "2 3 4", + "C", "5=#6", + "AServer", "\\\\server\\dir", + "BServer", "\\server\\dir", + "" + }; for(size_t i = 0; props[i] != ""; i += 2) { test(properties->getProperty(props[i]) == props[i + 1]); } - cout << "ok" << endl; } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } - - return EXIT_SUCCESS; } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/proxy/AllTests.cpp b/cpp/test/Ice/proxy/AllTests.cpp index bfbe6882776..e82b881397b 100644 --- a/cpp/test/Ice/proxy/AllTests.cpp +++ b/cpp/test/Ice/proxy/AllTests.cpp @@ -10,17 +10,18 @@ #include <Ice/Ice.h> #include <Ice/Locator.h> #include <Ice/Router.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; Test::MyClassPrxPtr -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { + Ice::CommunicatorPtr communicator = helper->communicator(); const string protocol = communicator->getProperties()->getProperty("Ice.Default.Protocol"); - const string endp = getTestEndpoint(communicator, 0); + const string endp = helper->getTestEndpoint(); cout << "testing stringToProxy... " << flush; string ref = "test:" + endp; diff --git a/cpp/test/Ice/proxy/Client.cpp b/cpp/test/Ice/proxy/Client.cpp index 8cbbe2873b5..0e4155bf810 100644 --- a/cpp/test/Ice/proxy/Client.cpp +++ b/cpp/test/Ice/proxy/Client.cpp @@ -8,44 +8,26 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> -DEFINE_TEST("client") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - Test::MyClassPrxPtr allTests(const Ice::CommunicatorPtr&); - Test::MyClassPrxPtr myClass = allTests(communicator); - - myClass->shutdown(); +public: - return EXIT_SUCCESS; -} + void run(int, char**); +}; -int -main(int argc, char* argv[]) +void +Client::run(int argc, char** argv) { -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -# ifdef ICE_HAS_BT - Ice::registerIceBT(false); -# endif -#endif + Ice::CommunicatorHolder communicator = initialize(argc, argv); + Test::MyClassPrxPtr allTests(Test::TestHelper*); + Test::MyClassPrxPtr myClass = allTests(this); - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } + myClass->shutdown(); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/proxy/Collocated.cpp b/cpp/test/Ice/proxy/Collocated.cpp index ac4fe5d0f91..ebf2f911398 100644 --- a/cpp/test/Ice/proxy/Collocated.cpp +++ b/cpp/test/Ice/proxy/Collocated.cpp @@ -8,46 +8,31 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("collocated") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Collocated : public Test::TestHelper { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); +public: + + void run(int, char**); +}; + +void +Collocated::run(int argc, char** argv) +{ + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Warn.Dispatch", "0"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->add(ICE_MAKE_SHARED(MyDerivedClassI), Ice::stringToIdentity("test")); //adapter->activate(); // Don't activate OA to ensure collocation is used. - Test::MyClassPrxPtr allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - - return EXIT_SUCCESS; + Test::MyClassPrxPtr allTests(Test::TestHelper*); + allTests(this); } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Warn.Dispatch", "0"); - - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Collocated) diff --git a/cpp/test/Ice/proxy/Server.cpp b/cpp/test/Ice/proxy/Server.cpp index 544dc0e3cc5..9ba1190c83b 100644 --- a/cpp/test/Ice/proxy/Server.cpp +++ b/cpp/test/Ice/proxy/Server.cpp @@ -8,43 +8,30 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("server") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Warn.Dispatch", "0"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->add(ICE_MAKE_SHARED(MyDerivedClassI), Ice::stringToIdentity("test")); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Warn.Dispatch", "0"); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/proxy/ServerAMD.cpp b/cpp/test/Ice/proxy/ServerAMD.cpp index ef1403f489b..1f37b96fb16 100644 --- a/cpp/test/Ice/proxy/ServerAMD.cpp +++ b/cpp/test/Ice/proxy/ServerAMD.cpp @@ -8,45 +8,32 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestAMDI.h> -DEFINE_TEST("serveramd") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class ServerAMD : public Test::TestHelper { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); +public: + + void run(int, char**); +}; + +void +ServerAMD::run(int argc, char** argv) +{ + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Warn.Connections", "0"); + properties->setProperty("Ice.Warn.Dispatch", "0"); + + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->add(ICE_MAKE_SHARED(MyDerivedClassI), Ice::stringToIdentity("test")); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Warn.Connections", "0"); - initData.properties->setProperty("Ice.Warn.Dispatch", "0"); - - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(ServerAMD) diff --git a/cpp/test/Ice/proxy/TestAMDI.cpp b/cpp/test/Ice/proxy/TestAMDI.cpp index fbc89418469..ce8785d3ea6 100644 --- a/cpp/test/Ice/proxy/TestAMDI.cpp +++ b/cpp/test/Ice/proxy/TestAMDI.cpp @@ -9,7 +9,7 @@ #include <Ice/Ice.h> #include <TestAMDI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; diff --git a/cpp/test/Ice/proxy/TestI.cpp b/cpp/test/Ice/proxy/TestI.cpp index 464e9dd3179..f2e6082f530 100644 --- a/cpp/test/Ice/proxy/TestI.cpp +++ b/cpp/test/Ice/proxy/TestI.cpp @@ -9,7 +9,6 @@ #include <Ice/Ice.h> #include <TestI.h> -#include <TestCommon.h> using namespace std; diff --git a/cpp/test/Ice/retry/AllTests.cpp b/cpp/test/Ice/retry/AllTests.cpp index 7001e244641..4b6fba39b02 100644 --- a/cpp/test/Ice/retry/AllTests.cpp +++ b/cpp/test/Ice/retry/AllTests.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #include <InstrumentationI.h> #include <SystemFailure.h> diff --git a/cpp/test/Ice/retry/Client.cpp b/cpp/test/Ice/retry/Client.cpp index ead1c6e6c64..63ef0a4a905 100644 --- a/cpp/test/Ice/retry/Client.cpp +++ b/cpp/test/Ice/retry/Client.cpp @@ -8,63 +8,54 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #include <InstrumentationI.h> -DEFINE_TEST("client") - using namespace std; using namespace Test; -int -run(int, char**, const Ice::CommunicatorPtr& communicator, const Ice::CommunicatorPtr& communicator2) -{ - RetryPrxPtr allTests(const Ice::CommunicatorPtr&, const Ice::CommunicatorPtr&, const string&); - RetryPrxPtr retry = allTests(communicator, communicator2, "retry:" + getTestEndpoint(communicator, 0)); - retry->shutdown(); - return EXIT_SUCCESS; -} - -int -main(int argc, char* argv[]) +class Client : public Test::TestHelper { -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - try - { - initCounts(); +public: - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.observer = getObserver(); - // - // This test kills connections, so we don't want warnings. - // - initData.properties->setProperty("Ice.Warn.Connections", "0"); + void run(int, char**); +}; - // Disable PrintStackTraces otherwise the test can fail on Windows/Debug - initData.properties->setProperty("Ice.PrintStackTraces", "0"); - - initData.properties->setProperty("Ice.RetryIntervals", "0 1 10 1"); - Ice::CommunicatorHolder ich(argc, argv, initData); +void +Client::run(int argc, char** argv) +{ + initCounts(); + + Ice::InitializationData initData; + initData.properties = createTestProperties(argc, argv); + initData.observer = getObserver(); + // + // This test kills connections, so we don't want warnings. + // + initData.properties->setProperty("Ice.Warn.Connections", "0"); + + // Disable PrintStackTraces otherwise the test can fail on Windows/Debug + initData.properties->setProperty("Ice.PrintStackTraces", "0"); + + initData.properties->setProperty("Ice.RetryIntervals", "0 1 10 1"); + Ice::CommunicatorHolder ich1 = Ice::initialize(argc, argv, initData); + + // + // Configure a second communicator for the invocation timeout + // + retry test, we need to configure a large retry interval + // to avoid time-sensitive failures. + // + initData.properties = initData.properties->clone(); + initData.properties->setProperty("Ice.RetryIntervals", "0 1 10000"); + initData.observer = getObserver(); + Ice::CommunicatorHolder ich2 = Ice::initialize(initData); - // - // Configure a second communicator for the invocation timeout - // + retry test, we need to configure a large retry interval - // to avoid time-sensitive failures. - // - Ice::InitializationData initData2; - initData2.properties = initData.properties->clone(); - initData2.properties->setProperty("Ice.RetryIntervals", "0 1 10000"); - initData2.observer = getObserver(); - Ice::CommunicatorHolder ich2(initData2); - return run(argc, argv, ich.communicator(), ich2.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } + RetryPrxPtr allTests(const Ice::CommunicatorPtr&, const Ice::CommunicatorPtr&, const string&); + RetryPrxPtr retry = allTests(ich1.communicator(), + ich2.communicator(), + "retry:" + TestHelper::getTestEndpoint(ich1->getProperties())); + retry->shutdown(); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/retry/Collocated.cpp b/cpp/test/Ice/retry/Collocated.cpp index d77c6b65de0..00a90a31b77 100644 --- a/cpp/test/Ice/retry/Collocated.cpp +++ b/cpp/test/Ice/retry/Collocated.cpp @@ -8,13 +8,11 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #include <TestI.h> #include <InstrumentationI.h> -DEFINE_TEST("collocated") - using namespace std; using namespace Test; @@ -26,59 +24,49 @@ setupObjectAdapter(const Ice::CommunicatorPtr& communicator) //adapter->activate(); // Don't activate OA to ensure collocation is used. } -int -run(int, char**, const Ice::CommunicatorPtr& communicator, const Ice::CommunicatorPtr& communicator2) +class Collocated : public Test::TestHelper { - setupObjectAdapter(communicator); - setupObjectAdapter(communicator2); +public: - RetryPrxPtr allTests(const Ice::CommunicatorPtr&, const Ice::CommunicatorPtr&, const string&); - RetryPrxPtr retry = allTests(communicator, communicator2, "retry"); - retry->shutdown(); - return EXIT_SUCCESS; -} + void run(int, char**); +}; -int -main(int argc, char* argv[]) +void +Collocated::run(int argc, char** argv) { -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - try - { - initCounts(); + initCounts(); - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.observer = getObserver(); + Ice::InitializationData initData; + initData.properties = createTestProperties(argc, argv); + initData.observer = getObserver(); - initData.properties->setProperty("Ice.RetryIntervals", "0 1 10 1"); + initData.properties->setProperty("Ice.RetryIntervals", "0 1 10 1"); - // - // This test kills connections, so we don't want warnings. - // - initData.properties->setProperty("Ice.Warn.Connections", "0"); - initData.properties->setProperty("Ice.Warn.Dispatch", "0"); + // + // This test kills connections, so we don't want warnings. + // + initData.properties->setProperty("Ice.Warn.Connections", "0"); + initData.properties->setProperty("Ice.Warn.Dispatch", "0"); - Ice::CommunicatorHolder ich(argc, argv, initData); + Ice::CommunicatorHolder ich1 = Ice::initialize(argc, argv, initData); - // - // Configure a second communicator for the invocation timeout - // + retry test, we need to configure a large retry interval - // to avoid time-sensitive failures. - // - Ice::InitializationData initData2; - initData2.properties = initData.properties->clone(); - initData2.properties->setProperty("Ice.RetryIntervals", "0 1 10000"); - initData2.observer = getObserver(); + // + // Configure a second communicator for the invocation timeout + // + retry test, we need to configure a large retry interval + // to avoid time-sensitive failures. + // + initData.properties = initData.properties->clone(); + initData.properties->setProperty("Ice.RetryIntervals", "0 1 10000"); + initData.observer = getObserver(); - Ice::CommunicatorHolder ich2(initData2); + Ice::CommunicatorHolder ich2 = Ice::initialize(initData);; - return run(argc, argv, ich.communicator(), ich2.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } + setupObjectAdapter(ich1.communicator()); + setupObjectAdapter(ich2.communicator()); + + RetryPrxPtr allTests(const Ice::CommunicatorPtr&, const Ice::CommunicatorPtr&, const string&); + RetryPrxPtr retry = allTests(ich1.communicator(), ich2.communicator(), "retry"); + retry->shutdown(); } + +DEFINE_TEST(Collocated) diff --git a/cpp/test/Ice/retry/InstrumentationI.cpp b/cpp/test/Ice/retry/InstrumentationI.cpp index 60d025cf7d9..6abfb14ac9f 100644 --- a/cpp/test/Ice/retry/InstrumentationI.cpp +++ b/cpp/test/Ice/retry/InstrumentationI.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> namespace { diff --git a/cpp/test/Ice/retry/Server.cpp b/cpp/test/Ice/retry/Server.cpp index b0bbaef4253..6a0f9b4324b 100644 --- a/cpp/test/Ice/retry/Server.cpp +++ b/cpp/test/Ice/retry/Server.cpp @@ -8,46 +8,32 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("server") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Warn.Dispatch", "0"); + properties->setProperty("Ice.PrintStackTraces", "0"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->add(ICE_MAKE_SHARED(RetryI), Ice::stringToIdentity("retry")); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerIceUDP(true); -#endif - int status = EXIT_FAILURE; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Warn.Dispatch", "0"); - initData.properties->setProperty("Ice.PrintStackTraces", "0"); - Ice::CommunicatorHolder ich(argc, argv, initData); - status = run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } - return status; -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/servantLocator/AllTests.cpp b/cpp/test/Ice/servantLocator/AllTests.cpp index 3ca184196a6..73d9afc24ae 100644 --- a/cpp/test/Ice/servantLocator/AllTests.cpp +++ b/cpp/test/Ice/servantLocator/AllTests.cpp @@ -8,15 +8,17 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; using namespace Ice; using namespace Test; -#if defined(_MSC_VER) && (_MSC_VER >= 1900 && _MSC_VER < 2000) && defined(NDEBUG) && defined(ICE_CPP11_MAPPING) +// // Work-around for strange VS2017 15.5 optimizer bug, see ICE-8611 +// +#if defined(_MSC_VER) && (_MSC_VER >= 1900 && _MSC_VER < 2000) && defined(NDEBUG) && defined(ICE_CPP11_MAPPING) # pragma optimize("g", off) #endif @@ -218,15 +220,18 @@ testExceptions(const TestIntfPrxPtr& obj) } } -#if defined(_MSC_VER) && (_MSC_VER >= 1900 && _MSC_VER < 2000) && defined(NDEBUG) && defined(ICE_CPP11_MAPPING) +// // See above +// +#if defined(_MSC_VER) && (_MSC_VER >= 1900 && _MSC_VER < 2000) && defined(NDEBUG) && defined(ICE_CPP11_MAPPING) # pragma optimize("g", on) #endif TestIntfPrxPtr -allTests(const CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { - const string endp = getTestEndpoint(communicator, 0); + CommunicatorPtr communicator = helper->communicator(); + const string endp = helper->getTestEndpoint(); cout << "testing stringToProxy... " << flush; ObjectPrxPtr base = communicator->stringToProxy("asm:" + endp); test(base); @@ -279,8 +284,7 @@ allTests(const CommunicatorPtr& communicator) obj = ICE_CHECKED_CAST(TestIntfPrx, base); try { - ICE_CHECKED_CAST(TestIntfPrx, - communicator->stringToProxy("category/unknown:" + getTestEndpoint(communicator, 0))); + ICE_CHECKED_CAST(TestIntfPrx, communicator->stringToProxy("category/unknown:" + endp)); } catch(const ObjectNotExistException&) { @@ -294,8 +298,7 @@ allTests(const CommunicatorPtr& communicator) obj = ICE_CHECKED_CAST(TestIntfPrx, base); try { - ICE_CHECKED_CAST(TestIntfPrx, - communicator->stringToProxy("anothercategory/unknown:" + getTestEndpoint(communicator, 0))); + ICE_CHECKED_CAST(TestIntfPrx, communicator->stringToProxy("anothercategory/unknown:" + endp)); } catch(const ObjectNotExistException&) { diff --git a/cpp/test/Ice/servantLocator/Client.cpp b/cpp/test/Ice/servantLocator/Client.cpp index 267eb82b4df..c3e360e7f09 100644 --- a/cpp/test/Ice/servantLocator/Client.cpp +++ b/cpp/test/Ice/servantLocator/Client.cpp @@ -8,43 +8,26 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> -DEFINE_TEST("client") - using namespace std; using namespace Test; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - TestIntfPrxPtr allTests(const Ice::CommunicatorPtr&); - TestIntfPrxPtr obj = allTests(communicator); - obj->shutdown(); - return EXIT_SUCCESS; -} +public: -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -# ifdef ICE_HAS_BT - Ice::registerIceBT(false); -# endif -#endif + void run(int, char**); +}; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } +void +Client::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + TestIntfPrxPtr allTests(Test::TestHelper*); + TestIntfPrxPtr obj = allTests(this); + obj->shutdown(); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/servantLocator/Collocated.cpp b/cpp/test/Ice/servantLocator/Collocated.cpp index 6f9b63d5035..7cab9ea5c8b 100644 --- a/cpp/test/Ice/servantLocator/Collocated.cpp +++ b/cpp/test/Ice/servantLocator/Collocated.cpp @@ -7,14 +7,11 @@ // // ********************************************************************** -#include <Ice/Application.h> #include <ServantLocatorI.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #include <TestI.h> -DEFINE_TEST("collocated") - using namespace std; using namespace Ice; @@ -87,11 +84,19 @@ public: } }; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Collocated : public Test::TestHelper { +public: + + void run(int, char**); +}; + +void +Collocated::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); communicator->getProperties()->setProperty("Ice.Warn.Dispatch", "0"); - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->addServantLocator(ICE_MAKE_SHARED(ServantLocatorI, ""), ""); @@ -99,28 +104,8 @@ run(int, char**, const Ice::CommunicatorPtr& communicator) adapter->add(ICE_MAKE_SHARED(TestI), Ice::stringToIdentity("asm")); adapter->add(ICE_MAKE_SHARED(TestActivationI), Ice::stringToIdentity("test/activation")); - Test::TestIntfPrxPtr allTests(const CommunicatorPtr&); - allTests(communicator); - - return EXIT_SUCCESS; + Test::TestIntfPrxPtr allTests(Test::TestHelper*); + allTests(this); } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Collocated) diff --git a/cpp/test/Ice/servantLocator/ServantLocatorI.cpp b/cpp/test/Ice/servantLocator/ServantLocatorI.cpp index 186dd3729ad..9a8cac4b28c 100644 --- a/cpp/test/Ice/servantLocator/ServantLocatorI.cpp +++ b/cpp/test/Ice/servantLocator/ServantLocatorI.cpp @@ -13,7 +13,7 @@ #else # include <Test.h> #endif -#include <TestCommon.h> +#include <TestHelper.h> #include <stdexcept> diff --git a/cpp/test/Ice/servantLocator/Server.cpp b/cpp/test/Ice/servantLocator/Server.cpp index ce5b9bda5fa..6860a8765ce 100644 --- a/cpp/test/Ice/servantLocator/Server.cpp +++ b/cpp/test/Ice/servantLocator/Server.cpp @@ -7,13 +7,10 @@ // // ********************************************************************** -#include <Ice/Application.h> #include <ServantLocatorI.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("server") - using namespace std; using namespace Ice; @@ -87,10 +84,18 @@ public: } }; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); communicator->getProperties()->setProperty("Ice.Warn.Dispatch", "0"); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); @@ -100,28 +105,8 @@ run(int, char**, const Ice::CommunicatorPtr& communicator) adapter->add(ICE_MAKE_SHARED(TestI), Ice::stringToIdentity("asm")); adapter->add(ICE_MAKE_SHARED(TestActivationI), Ice::stringToIdentity("test/activation")); adapter->activate(); - TEST_READY + serverReady(); adapter->waitForDeactivate(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerIceUDP(true); -#endif - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/servantLocator/ServerAMD.cpp b/cpp/test/Ice/servantLocator/ServerAMD.cpp index a55857f0839..0db6585f3da 100644 --- a/cpp/test/Ice/servantLocator/ServerAMD.cpp +++ b/cpp/test/Ice/servantLocator/ServerAMD.cpp @@ -7,13 +7,10 @@ // // ********************************************************************** -#include <Ice/Application.h> #include <ServantLocatorI.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestAMDI.h> -DEFINE_TEST("serveramd") - using namespace std; using namespace Ice; @@ -86,10 +83,18 @@ public: } }; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class ServerAMD : public Test::TestHelper { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); +public: + + void run(int, char**); +}; + +void +ServerAMD::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); communicator->getProperties()->setProperty("Ice.Warn.Dispatch", "0"); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); @@ -99,28 +104,8 @@ run(int, char**, const Ice::CommunicatorPtr& communicator) adapter->add(ICE_MAKE_SHARED(TestAMDI), Ice::stringToIdentity("asm")); adapter->add(ICE_MAKE_SHARED(TestActivationI), Ice::stringToIdentity("test/activation")); adapter->activate(); - TEST_READY + serverReady(); adapter->waitForDeactivate(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerIceUDP(true); -#endif - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(ServerAMD) diff --git a/cpp/test/Ice/servantLocator/msbuild/uwp/collocated/collocated.vcxproj b/cpp/test/Ice/servantLocator/msbuild/uwp/collocated/collocated.vcxproj index 009a2b9e42b..a659000bca1 100644 --- a/cpp/test/Ice/servantLocator/msbuild/uwp/collocated/collocated.vcxproj +++ b/cpp/test/Ice/servantLocator/msbuild/uwp/collocated/collocated.vcxproj @@ -30,7 +30,7 @@ </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> - <ProjectGuid>{5B0C8615-BB38-41DE-A2B7-EC0835.0.442}</ProjectGuid> + <ProjectGuid>{5B0C8615-BB38-41DE-A2B7-EC0835000000}</ProjectGuid> <Keyword>DynamicLibrary</Keyword> <DefaultLanguage>en-US</DefaultLanguage> <MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion> diff --git a/cpp/test/Ice/services/AllTests.cpp b/cpp/test/Ice/services/AllTests.cpp index 6f2aaf60c4b..c88a66a0fdc 100644 --- a/cpp/test/Ice/services/AllTests.cpp +++ b/cpp/test/Ice/services/AllTests.cpp @@ -11,7 +11,7 @@ #include <Glacier2/Glacier2.h> #include <IceStorm/IceStorm.h> #include <IceGrid/IceGrid.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; @@ -85,8 +85,9 @@ private: } // Anonymous namespace end void -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { + Ice::CommunicatorPtr communicator = helper->communicator(); { cout << "Testing Glacier2 stub... " << flush; char** argv = 0; @@ -143,7 +144,7 @@ allTests(const Ice::CommunicatorPtr& communicator) { cout << "Testing IceGrid stub... " << flush; - Ice::ObjectPrxPtr base = communicator->stringToProxy("test:" + getTestEndpoint(communicator, 0)); + Ice::ObjectPrxPtr base = communicator->stringToProxy("test:" + helper->getTestEndpoint()); IceGrid::RegistryPrxPtr registry = ICE_UNCHECKED_CAST(IceGrid::RegistryPrx, base); IceGrid::AdminSessionPrxPtr session; IceGrid::AdminPrxPtr admin; diff --git a/cpp/test/Ice/services/Client.cpp b/cpp/test/Ice/services/Client.cpp index 70042e447d4..d0da580a3e3 100644 --- a/cpp/test/Ice/services/Client.cpp +++ b/cpp/test/Ice/services/Client.cpp @@ -8,40 +8,27 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; using namespace Test; -DEFINE_TEST("client") - -int -run(int, char**, const Ice::CommunicatorPtr& communicator, const Ice::InitializationData&) +class Client : public Test::TestHelper { - void allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - return EXIT_SUCCESS; -} +public: -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif + void run(int, char**); +}; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.NullHandleAbort", "0"); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator(), initData); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } +void +Client::run(int argc, char** argv) +{ + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.NullHandleAbort", "0"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + void allTests(Test::TestHelper*); + allTests(this); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/services/Makefile.mk b/cpp/test/Ice/services/Makefile.mk index ce4a940bf11..d8c45368959 100644 --- a/cpp/test/Ice/services/Makefile.mk +++ b/cpp/test/Ice/services/Makefile.mk @@ -7,6 +7,6 @@ # # ********************************************************************** -$(test)_dependencies = Glacier2 IceStorm IceGrid Ice TestCommon +$(test)_dependencies = Glacier2 IceStorm IceGrid TestCommon IceSSL Ice tests += $(test) diff --git a/cpp/test/Ice/slicing/exceptions/AllTests.cpp b/cpp/test/Ice/slicing/exceptions/AllTests.cpp index 5e72d1cc904..27d7060161c 100644 --- a/cpp/test/Ice/slicing/exceptions/AllTests.cpp +++ b/cpp/test/Ice/slicing/exceptions/AllTests.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <ClientPrivate.h> using namespace std; @@ -369,9 +369,10 @@ class RelayI : public Relay }; TestIntfPrxPtr -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { - Ice::ObjectPrxPtr obj = communicator->stringToProxy("Test:" + getTestEndpoint(communicator, 0)); + Ice::CommunicatorPtr communicator = helper->communicator(); + Ice::ObjectPrxPtr obj = communicator->stringToProxy("Test:" + helper->getTestEndpoint()); TestIntfPrxPtr test = ICE_CHECKED_CAST(TestIntfPrx, obj); cout << "base... " << flush; diff --git a/cpp/test/Ice/slicing/exceptions/Client.cpp b/cpp/test/Ice/slicing/exceptions/Client.cpp index aea5588afb1..7608a75d7ed 100644 --- a/cpp/test/Ice/slicing/exceptions/Client.cpp +++ b/cpp/test/Ice/slicing/exceptions/Client.cpp @@ -8,43 +8,26 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; using namespace Test; -DEFINE_TEST("client") +class Client : public Test::TestHelper +{ +public: + + void run(int, char**); +}; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +void +Client::run(int argc, char** argv) { - TestIntfPrxPtr allTests(const Ice::CommunicatorPtr&); - TestIntfPrxPtr Test = allTests(communicator); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + TestIntfPrxPtr allTests(Test::TestHelper*); + TestIntfPrxPtr Test = allTests(this); Test->shutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -# ifdef ICE_HAS_BT - Ice::registerIceBT(false); -# endif -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/slicing/exceptions/Server.cpp b/cpp/test/Ice/slicing/exceptions/Server.cpp index bdd2231a8a9..e9b99711968 100644 --- a/cpp/test/Ice/slicing/exceptions/Server.cpp +++ b/cpp/test/Ice/slicing/exceptions/Server.cpp @@ -9,42 +9,29 @@ #include <Ice/Ice.h> #include <TestI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; -DEFINE_TEST("server") +class Server : public Test::TestHelper +{ +public: + + void run(int, char**); +}; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +void +Server::run(int argc, char** argv) { + Ice::CommunicatorHolder communicator = initialize(argc, argv); Ice::PropertiesPtr properties = communicator->getProperties(); properties->setProperty("Ice.Warn.Dispatch", "0"); - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0) + " -t 2000"); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint() + " -t 2000"); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->add(ICE_MAKE_SHARED(TestI), Ice::stringToIdentity("Test")); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/slicing/exceptions/ServerAMD.cpp b/cpp/test/Ice/slicing/exceptions/ServerAMD.cpp index b728b9304c9..028c950ba1f 100644 --- a/cpp/test/Ice/slicing/exceptions/ServerAMD.cpp +++ b/cpp/test/Ice/slicing/exceptions/ServerAMD.cpp @@ -9,42 +9,29 @@ #include <Ice/Ice.h> #include <TestAMDI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; -DEFINE_TEST("serveramd") +class ServerAMD : public Test::TestHelper +{ +public: + + void run(int, char**); +}; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +void +ServerAMD::run(int argc, char** argv) { + Ice::CommunicatorHolder communicator = initialize(argc, argv); Ice::PropertiesPtr properties = communicator->getProperties(); properties->setProperty("Ice.Warn.Dispatch", "0"); - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0) + " -t 2000"); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint() + " -t 2000"); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->add(ICE_MAKE_SHARED(TestI), Ice::stringToIdentity("Test")); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(ServerAMD) diff --git a/cpp/test/Ice/slicing/exceptions/TestAMDI.cpp b/cpp/test/Ice/slicing/exceptions/TestAMDI.cpp index 0ba112bbef5..169b40cd0ae 100644 --- a/cpp/test/Ice/slicing/exceptions/TestAMDI.cpp +++ b/cpp/test/Ice/slicing/exceptions/TestAMDI.cpp @@ -9,7 +9,7 @@ #include <TestAMDI.h> #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace Test; using namespace std; diff --git a/cpp/test/Ice/slicing/exceptions/TestI.cpp b/cpp/test/Ice/slicing/exceptions/TestI.cpp index 0a9f23b26dc..28ce24af15a 100644 --- a/cpp/test/Ice/slicing/exceptions/TestI.cpp +++ b/cpp/test/Ice/slicing/exceptions/TestI.cpp @@ -9,7 +9,7 @@ #include <TestI.h> #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace Test; diff --git a/cpp/test/Ice/slicing/exceptions/TestI.h b/cpp/test/Ice/slicing/exceptions/TestI.h index 261bf80870d..1e429d97323 100644 --- a/cpp/test/Ice/slicing/exceptions/TestI.h +++ b/cpp/test/Ice/slicing/exceptions/TestI.h @@ -11,7 +11,6 @@ #define TESTI_H #include <ServerPrivate.h> -#include <TestCommon.h> class TestI : public virtual Test::TestIntf { diff --git a/cpp/test/Ice/slicing/objects/AllTests.cpp b/cpp/test/Ice/slicing/objects/AllTests.cpp index 3cecc2f4b18..9ca6c17e42b 100644 --- a/cpp/test/Ice/slicing/objects/AllTests.cpp +++ b/cpp/test/Ice/slicing/objects/AllTests.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <ClientPrivate.h> using namespace std; @@ -754,9 +754,10 @@ testUOO(const TestIntfPrxPtr& test) } TestIntfPrxPtr -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { - Ice::ObjectPrxPtr obj = communicator->stringToProxy("Test:" + getTestEndpoint(communicator, 0)); + Ice::CommunicatorPtr communicator = helper->communicator(); + Ice::ObjectPrxPtr obj = communicator->stringToProxy("Test:" + helper->getTestEndpoint()); TestIntfPrxPtr test = ICE_CHECKED_CAST(TestIntfPrx, obj); cout << "base as Object... " << flush; diff --git a/cpp/test/Ice/slicing/objects/Client.cpp b/cpp/test/Ice/slicing/objects/Client.cpp index 82a6dcfe273..63c933f044a 100644 --- a/cpp/test/Ice/slicing/objects/Client.cpp +++ b/cpp/test/Ice/slicing/objects/Client.cpp @@ -8,48 +8,32 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <ClientPrivate.h> using namespace std; using namespace Test; -DEFINE_TEST("client") - -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - TestIntfPrxPtr allTests(const Ice::CommunicatorPtr&); - TestIntfPrxPtr Test = allTests(communicator); - Test->shutdown(); - return EXIT_SUCCESS; -} +public: -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -# ifdef ICE_HAS_BT - Ice::registerIceBT(false); -# endif -#endif + void run(int, char**); +}; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - // - // For this test, we enable object collection. - // - initData.properties->setProperty("Ice.CollectObjects", "1"); +void +Client::run(int argc, char** argv) +{ + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + // + // For this test, we enable object collection. + // + properties->setProperty("Ice.CollectObjects", "1"); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + TestIntfPrxPtr allTests(Test::TestHelper*); + TestIntfPrxPtr prx = allTests(this); + prx->shutdown(); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/slicing/objects/Server.cpp b/cpp/test/Ice/slicing/objects/Server.cpp index a11ab43bd55..d1a83987b42 100644 --- a/cpp/test/Ice/slicing/objects/Server.cpp +++ b/cpp/test/Ice/slicing/objects/Server.cpp @@ -9,47 +9,33 @@ #include <Ice/Ice.h> #include <TestI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; -DEFINE_TEST("server") +class Server : public Test::TestHelper +{ +public: + + void run(int, char**); +}; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +void +Server::run(int argc, char** argv) { - Ice::PropertiesPtr properties = communicator->getProperties(); - properties->setProperty("Ice.Warn.Dispatch", "0"); - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0) + " -t 2000"); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); +#ifndef ICE_CPP11_MAPPING + properties->setProperty("Ice.CollectObjects", "1"); +#endif + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + communicator->getProperties()->setProperty("Ice.Warn.Dispatch", "0"); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint() + " -t 2000"); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); Ice::ObjectPtr object = ICE_MAKE_SHARED(TestI); adapter->add(object, Ice::stringToIdentity("Test")); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); -#ifndef ICE_CPP11_MAPPING - initData.properties->setProperty("Ice.CollectObjects", "1"); -#endif - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/slicing/objects/ServerAMD.cpp b/cpp/test/Ice/slicing/objects/ServerAMD.cpp index 44d627ea95b..7898b8087ee 100644 --- a/cpp/test/Ice/slicing/objects/ServerAMD.cpp +++ b/cpp/test/Ice/slicing/objects/ServerAMD.cpp @@ -9,47 +9,33 @@ #include <Ice/Ice.h> #include <TestAMDI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; -DEFINE_TEST("serveramd") +class ServerAMD : public Test::TestHelper +{ +public: + + void run(int, char**); +}; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +void +ServerAMD::run(int argc, char** argv) { - Ice::PropertiesPtr properties = communicator->getProperties(); - properties->setProperty("Ice.Warn.Dispatch", "0"); - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0) + " -t 2000"); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); +#ifndef ICE_CPP11_MAPPING + properties->setProperty("Ice.CollectObjects", "1"); +#endif + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + communicator->getProperties()->setProperty("Ice.Warn.Dispatch", "0"); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint() + " -t 2000"); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); Ice::ObjectPtr object = ICE_MAKE_SHARED(TestI); adapter->add(object, Ice::stringToIdentity("Test")); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); -#ifndef ICE_CPP11_MAPPING - initData.properties->setProperty("Ice.CollectObjects", "1"); -#endif - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(ServerAMD) diff --git a/cpp/test/Ice/slicing/objects/TestAMDI.cpp b/cpp/test/Ice/slicing/objects/TestAMDI.cpp index 17c3aa5ceba..88ee664f3a6 100644 --- a/cpp/test/Ice/slicing/objects/TestAMDI.cpp +++ b/cpp/test/Ice/slicing/objects/TestAMDI.cpp @@ -9,7 +9,7 @@ #include <TestAMDI.h> #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace Test; using namespace std; diff --git a/cpp/test/Ice/slicing/objects/TestI.cpp b/cpp/test/Ice/slicing/objects/TestI.cpp index 623b3902c36..b7ab0719ecc 100644 --- a/cpp/test/Ice/slicing/objects/TestI.cpp +++ b/cpp/test/Ice/slicing/objects/TestI.cpp @@ -9,7 +9,7 @@ #include <TestI.h> #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace Test; using namespace std; diff --git a/cpp/test/Ice/slicing/objects/TestI.h b/cpp/test/Ice/slicing/objects/TestI.h index d2cc4ef50e0..d757b4ce796 100644 --- a/cpp/test/Ice/slicing/objects/TestI.h +++ b/cpp/test/Ice/slicing/objects/TestI.h @@ -11,7 +11,6 @@ #define TESTI_H #include <ServerPrivate.h> -#include <TestCommon.h> class TestI : public virtual Test::TestIntf { diff --git a/cpp/test/Ice/stream/Client.cpp b/cpp/test/Ice/stream/Client.cpp index 6c7087ed1bb..a88f05ea86e 100644 --- a/cpp/test/Ice/stream/Client.cpp +++ b/cpp/test/Ice/stream/Client.cpp @@ -8,11 +8,9 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> -DEFINE_TEST("client") - using namespace std; using namespace Test; using namespace Test::Sub; @@ -227,9 +225,10 @@ public: }; #endif -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +void +allTests(Test::TestHelper* helper) { + Ice::CommunicatorPtr communicator = helper->communicator(); #ifdef ICE_CPP11_MAPPING MyClassFactoryWrapper factoryWrapper; function<Ice::ValuePtr(const string&)> f = @@ -1334,36 +1333,21 @@ run(int, char**, const Ice::CommunicatorPtr& communicator) } cout << "ok" << endl; - return 0; } -int -main(int argc, char* argv[]) +class Client : public Test::TestHelper { -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - int status; - Ice::CommunicatorPtr communicator; - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } +public: - if(communicator) - { - communicator->destroy(); - } + void run(int, char**); +}; - return status; +void +Client::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + void allTests(Test::TestHelper*); + allTests(this); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/stringConverter/Client.cpp b/cpp/test/Ice/stringConverter/Client.cpp index 66c10dc9682..d59d99a389c 100644 --- a/cpp/test/Ice/stringConverter/Client.cpp +++ b/cpp/test/Ice/stringConverter/Client.cpp @@ -8,30 +8,32 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #include <iostream> #include <locale.h> -DEFINE_TEST("client") - using namespace std; static bool useLocale = false; static bool useIconv = true; -int -main(int argc, char* argv[]) +class Client : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Client::run(int argc, char** argv) { + Ice::PropertiesPtr properties = createTestProperties(argc, argv); #ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); Ice::registerIceStringConverter(false); #endif - Ice::InitializationData initData = getTestInitData(argc, argv); - string narrowEncoding; string wideEncoding; @@ -109,10 +111,9 @@ main(int argc, char* argv[]) #endif - Ice::CommunicatorPtr communicator = Ice::initialize(initData); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); Test::MyObjectPrxPtr proxy = - ICE_UNCHECKED_CAST(Test::MyObjectPrx, - communicator->stringToProxy("test:" + getTestEndpoint(communicator, 0))); + ICE_UNCHECKED_CAST(Test::MyObjectPrx, communicator->stringToProxy("test:" + getTestEndpoint())); char oe = char(0xBD); // A single character in ISO Latin 9 string msg = string("tu me fends le c") + oe + "ur!"; @@ -145,7 +146,6 @@ main(int argc, char* argv[]) test(identStr == "cat/tu me fends le c\\305\\223ur!"); test(Ice::stringToIdentity(identStr) == ident); - communicator->destroy(); cout << "ok" << endl; } @@ -159,12 +159,11 @@ main(int argc, char* argv[]) } propValue += " windows=28605"; - initData.properties->setProperty("Ice.Plugin.IceStringConverter", propValue); + properties->setProperty("Ice.Plugin.IceStringConverter", propValue); - Ice::CommunicatorPtr communicator = Ice::initialize(initData); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); Test::MyObjectPrxPtr proxy = - ICE_UNCHECKED_CAST(Test::MyObjectPrx, - communicator->stringToProxy("test:" + getTestEndpoint(communicator, 0))); + ICE_UNCHECKED_CAST(Test::MyObjectPrx, communicator->stringToProxy("test:" + getTestEndpoint())); char oe = char(0xBD); // A single character in ISO Latin 9 string msg = string("tu me fends le c") + oe + "ur!"; @@ -184,7 +183,6 @@ main(int argc, char* argv[]) cout << "ok" << endl; proxy->shutdown(); - communicator->destroy(); - - return EXIT_SUCCESS; } + +DEFINE_TEST(Client); diff --git a/cpp/test/Ice/stringConverter/Server.cpp b/cpp/test/Ice/stringConverter/Server.cpp index 1e12e180eba..5df179b6ff7 100644 --- a/cpp/test/Ice/stringConverter/Server.cpp +++ b/cpp/test/Ice/stringConverter/Server.cpp @@ -8,11 +8,9 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> -DEFINE_TEST("server"); - using namespace std; // @@ -40,47 +38,23 @@ public: } }; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->add(ICE_MAKE_SHARED(MyObjectI), Ice::stringToIdentity("test")); adapter->activate(); - - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerIceUDP(true); -#endif - - int status; - Ice::CommunicatorPtr communicator; - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/threadPoolPriority/AllTests.cpp b/cpp/test/Ice/threadPoolPriority/AllTests.cpp index 68c837e52a5..2e4e4f44dab 100644 --- a/cpp/test/Ice/threadPoolPriority/AllTests.cpp +++ b/cpp/test/Ice/threadPoolPriority/AllTests.cpp @@ -10,16 +10,17 @@ #include <Ice/Ice.h> #include <Ice/Locator.h> #include <Ice/Router.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; Test::PriorityPrxPtr -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { + Ice::CommunicatorPtr communicator = helper->communicator(); cout << "testing server priority... " << flush; - string ref = "test:" + getTestEndpoint(communicator, 0) + " -t 10000"; + string ref = "test:" + helper->getTestEndpoint() + " -t 10000"; Ice::ObjectPrxPtr base = communicator->stringToProxy(ref); test(base); diff --git a/cpp/test/Ice/threadPoolPriority/Client.cpp b/cpp/test/Ice/threadPoolPriority/Client.cpp index ae0e1c370d6..39238afc054 100644 --- a/cpp/test/Ice/threadPoolPriority/Client.cpp +++ b/cpp/test/Ice/threadPoolPriority/Client.cpp @@ -8,49 +8,26 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - Test::PriorityPrxPtr allTests(const Ice::CommunicatorPtr&); - Test::PriorityPrxPtr priority = allTests(communicator); +public: - priority->shutdown(); - - return EXIT_SUCCESS; -} + void run(int, char**); +}; -int -main(int argc, char* argv[]) +void +Client::run(int argc, char** argv) { -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - int status; - Ice::CommunicatorPtr communicator; + Ice::CommunicatorHolder communicator = initialize(argc, argv); + Test::PriorityPrxPtr allTests(Test::TestHelper*); + Test::PriorityPrxPtr priority = allTests(this); - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; + priority->shutdown(); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/threadPoolPriority/Server.cpp b/cpp/test/Ice/threadPoolPriority/Server.cpp index dfbad8118f7..b046dd1a88c 100644 --- a/cpp/test/Ice/threadPoolPriority/Server.cpp +++ b/cpp/test/Ice/threadPoolPriority/Server.cpp @@ -9,15 +9,23 @@ #include <Ice/Ice.h> #include <TestI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper { +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); Ice::PropertiesPtr properties = communicator->getProperties(); - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0) + " -t 10000"); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint() + " -t 10000"); // // First try to use an invalid priority. @@ -51,36 +59,6 @@ run(int, char**, const Ice::CommunicatorPtr& communicator) adapter->add(object, Ice::stringToIdentity("test")); adapter->activate(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - int status; - Ice::CommunicatorPtr communicator; - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/threadPoolPriority/ServerCustomThreadPool.cpp b/cpp/test/Ice/threadPoolPriority/ServerCustomThreadPool.cpp index 6bc8672c32d..863c4e3e391 100644 --- a/cpp/test/Ice/threadPoolPriority/ServerCustomThreadPool.cpp +++ b/cpp/test/Ice/threadPoolPriority/ServerCustomThreadPool.cpp @@ -9,16 +9,24 @@ #include <Ice/Ice.h> #include <TestI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class ServerCustomThreadPool : public Test::TestHelper { +public: + + void run(int, char**); +}; + +void +ServerCustomThreadPool::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); Ice::PropertiesPtr properties = communicator->getProperties(); properties->setProperty("Ice.Warn.Dispatch", "0"); - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0) + " -t 10000"); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint() + " -t 10000"); communicator->getProperties()->setProperty("TestAdapter.ThreadPool.Size", "1"); // @@ -55,36 +63,6 @@ run(int, char**, const Ice::CommunicatorPtr& communicator) adapter->add(object, Ice::stringToIdentity("test")); adapter->activate(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - int status; - Ice::CommunicatorPtr communicator; - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(ServerCustomThreadPool) diff --git a/cpp/test/Ice/timeout/AllTests.cpp b/cpp/test/Ice/timeout/AllTests.cpp index 50d279460c6..7daff168666 100644 --- a/cpp/test/Ice/timeout/AllTests.cpp +++ b/cpp/test/Ice/timeout/AllTests.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #include <TestI.h> @@ -111,9 +111,10 @@ connect(const Ice::ObjectPrxPtr& prx) } void -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { - string sref = "timeout:" + getTestEndpoint(communicator, 0); + Ice::CommunicatorPtr communicator = helper->communicator(); + string sref = "timeout:" + helper->getTestEndpoint(); Ice::ObjectPrxPtr obj = communicator->stringToProxy(sref); test(obj); @@ -121,7 +122,7 @@ allTests(const Ice::CommunicatorPtr& communicator) test(timeout); ControllerPrxPtr controller = - ICE_CHECKED_CAST(ControllerPrx, communicator->stringToProxy("controller:" + getTestEndpoint(communicator, 1))); + ICE_CHECKED_CAST(ControllerPrx, communicator->stringToProxy("controller:" + helper->getTestEndpoint(1))); test(controller); cout << "testing connect timeout... " << flush; diff --git a/cpp/test/Ice/timeout/Client.cpp b/cpp/test/Ice/timeout/Client.cpp index 00414a2b16c..00968539885 100644 --- a/cpp/test/Ice/timeout/Client.cpp +++ b/cpp/test/Ice/timeout/Client.cpp @@ -8,64 +8,52 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> -DEFINE_TEST("client") - using namespace std; using namespace Test; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - void allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - return EXIT_SUCCESS; -} +public: -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif + void run(int, char**); +}; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); +void +Client::run(int argc, char** argv) +{ + Ice::PropertiesPtr properties = createTestProperties(argc, argv); - // - // For this test, we want to disable retries. - // - initData.properties->setProperty("Ice.RetryIntervals", "-1"); + // + // For this test, we want to disable retries. + // + properties->setProperty("Ice.RetryIntervals", "-1"); #if TARGET_OS_IPHONE != 0 - // - // COMPILERFIX: Disable connect timeout introduced for - // workaround to iOS device hangs when using SSL - // - initData.properties->setProperty("Ice.Override.ConnectTimeout", ""); + // + // COMPILERFIX: Disable connect timeout introduced for + // workaround to iOS device hangs when using SSL + // + properties->setProperty("Ice.Override.ConnectTimeout", ""); #endif - // - // This test kills connections, so we don't want warnings. - // - initData.properties->setProperty("Ice.Warn.Connections", "0"); + // + // This test kills connections, so we don't want warnings. + // + properties->setProperty("Ice.Warn.Connections", "0"); + + // + // Limit the send buffer size, this test relies on the socket + // send() blocking after sending a given amount of data. + // + properties->setProperty("Ice.TCP.SndSize", "50000"); - // - // Limit the send buffer size, this test relies on the socket - // send() blocking after sending a given amount of data. - // - initData.properties->setProperty("Ice.TCP.SndSize", "50000"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } + void allTests(Test::TestHelper*); + allTests(this); } + +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/timeout/Server.cpp b/cpp/test/Ice/timeout/Server.cpp index 1f5ce1ead38..0df9346c358 100644 --- a/cpp/test/Ice/timeout/Server.cpp +++ b/cpp/test/Ice/timeout/Server.cpp @@ -8,18 +8,52 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("server") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) { - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0)); - communicator->getProperties()->setProperty("ControllerAdapter.Endpoints", getTestEndpoint(communicator, 1)); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + +#if TARGET_OS_IPHONE != 0 + // + // COMPILERFIX: Disable connect timeout introduced for + // workaround to iOS device hangs when using SSL + // + properties->setProperty("Ice.Override.ConnectTimeout", ""); +#endif + + // + // This test kills connections, so we don't want warnings. + // + properties->setProperty("Ice.Warn.Connections", "0"); + + // + // The client sends large messages to cause the transport + // buffers to fill up. + // + properties->setProperty("Ice.MessageSizeMax", "20000"); + + // + // Limit the recv buffer size, this test relies on the socket + // send() blocking after sending a given amount of data. + // + properties->setProperty("Ice.TCP.RcvSize", "50000"); + + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint()); + communicator->getProperties()->setProperty("ControllerAdapter.Endpoints", getTestEndpoint(1)); communicator->getProperties()->setProperty("ControllerAdapter.ThreadPool.Size", "1"); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); @@ -30,55 +64,8 @@ run(int, char**, const Ice::CommunicatorPtr& communicator) controllerAdapter->add(ICE_MAKE_SHARED(ControllerI, adapter), Ice::stringToIdentity("controller")); controllerAdapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerIceUDP(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - -#if TARGET_OS_IPHONE != 0 - // - // COMPILERFIX: Disable connect timeout introduced for - // workaround to iOS device hangs when using SSL - // - initData.properties->setProperty("Ice.Override.ConnectTimeout", ""); -#endif - - // - // This test kills connections, so we don't want warnings. - // - initData.properties->setProperty("Ice.Warn.Connections", "0"); - - // - // The client sends large messages to cause the transport - // buffers to fill up. - // - initData.properties->setProperty("Ice.MessageSizeMax", "20000"); - - // - // Limit the recv buffer size, this test relies on the socket - // send() blocking after sending a given amount of data. - // - initData.properties->setProperty("Ice.TCP.RcvSize", "50000"); - - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/timeout/TestI.h b/cpp/test/Ice/timeout/TestI.h index a459b5c2a2c..63355101323 100644 --- a/cpp/test/Ice/timeout/TestI.h +++ b/cpp/test/Ice/timeout/TestI.h @@ -11,7 +11,6 @@ #define TEST_I_H #include <Test.h> -#include <TestCommon.h> class TimeoutI : public virtual Test::Timeout { diff --git a/cpp/test/Ice/udp/AllTests.cpp b/cpp/test/Ice/udp/AllTests.cpp index 6aecb8e8ad3..a1492c0c066 100644 --- a/cpp/test/Ice/udp/AllTests.cpp +++ b/cpp/test/Ice/udp/AllTests.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; @@ -60,8 +60,9 @@ private: ICE_DEFINE_PTR(PingReplyIPtr, PingReplyI); void -allTests(const CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { + Ice::CommunicatorPtr communicator = helper->communicator(); communicator->getProperties()->setProperty("ReplyAdapter.Endpoints", "udp"); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("ReplyAdapter"); PingReplyIPtr replyI = ICE_MAKE_SHARED(PingReplyI); @@ -69,7 +70,7 @@ allTests(const CommunicatorPtr& communicator) adapter->activate(); cout << "testing udp... " << flush; - ObjectPrxPtr base = communicator->stringToProxy("test -d:" + getTestEndpoint(communicator, 0, "udp")); + ObjectPrxPtr base = communicator->stringToProxy("test -d:" + helper->getTestEndpoint("udp")); TestIntfPrxPtr obj = ICE_UNCHECKED_CAST(TestIntfPrx, base); int nRetry = 5; @@ -137,14 +138,14 @@ allTests(const CommunicatorPtr& communicator) ostringstream endpoint; if(communicator->getProperties()->getProperty("Ice.IPv6") == "1") { - endpoint << "udp -h \"ff15::1:1\" -p " << getTestPort(communicator->getProperties(), 10); + endpoint << "udp -h \"ff15::1:1\" -p " << helper->getTestPort(10); #if defined(__APPLE__) || defined(_WIN32) endpoint << " --interface \"::1\""; // Use loopback to prevent other machines to answer. the multicast requests. #endif } else { - endpoint << "udp -h 239.255.1.1 -p " << getTestPort(communicator->getProperties(), 10); + endpoint << "udp -h 239.255.1.1 -p " << helper->getTestPort(10); #if defined(__APPLE__) || defined(_WIN32) endpoint << " --interface 127.0.0.1"; // Use loopback to prevent other machines to answer. #endif diff --git a/cpp/test/Ice/udp/Client.cpp b/cpp/test/Ice/udp/Client.cpp index 6a40d228007..dd3f8fe5492 100644 --- a/cpp/test/Ice/udp/Client.cpp +++ b/cpp/test/Ice/udp/Client.cpp @@ -8,52 +8,38 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> -DEFINE_TEST("client") - using namespace std; using namespace Test; -int -run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Client::run(int argc, char** argv) { - void allTests(const Ice::CommunicatorPtr&); - allTests(communicator); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Warn.Connections", "0"); + properties->setProperty("Ice.UDP.RcvSize", "16384"); + properties->setProperty("Ice.UDP.SndSize", "16384"); + + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + void allTests(Test::TestHelper*); + allTests(this); int num = argc == 2 ? atoi(argv[1]) : 1; for(int i = 0; i < num; i++) { ostringstream os; - os << "control:" << getTestEndpoint(communicator, i, "tcp"); + os << "control:" << getTestEndpoint(i, "tcp"); ICE_UNCHECKED_CAST(TestIntfPrx, communicator->stringToProxy(os.str()))->shutdown(); } - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerIceUDP(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Warn.Connections", "0"); - initData.properties->setProperty("Ice.UDP.RcvSize", "16384"); - initData.properties->setProperty("Ice.UDP.SndSize", "16384"); - - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Client) diff --git a/cpp/test/Ice/udp/Server.cpp b/cpp/test/Ice/udp/Server.cpp index a882c0d4d96..a5abf22df47 100644 --- a/cpp/test/Ice/udp/Server.cpp +++ b/cpp/test/Ice/udp/Server.cpp @@ -8,81 +8,66 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("server") - using namespace std; -int -run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) { - Ice::PropertiesPtr properties = communicator->getProperties(); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Warn.Connections", "0"); + properties->setProperty("Ice.UDP.SndSize", "16384"); + properties->setProperty("Ice.UDP.RcvSize", "16384"); + + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); int num = argc == 2 ? atoi(argv[1]) : 0; - properties->setProperty("ControlAdapter.Endpoints", getTestEndpoint(communicator, num, "tcp")); + communicator->getProperties()->setProperty("ControlAdapter.Endpoints", getTestEndpoint(num, "tcp")); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("ControlAdapter"); adapter->add(ICE_MAKE_SHARED(TestIntfI), Ice::stringToIdentity("control")); adapter->activate(); if(num == 0) { - properties->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, num, "udp")); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(num, "udp")); Ice::ObjectAdapterPtr adapter2 = communicator->createObjectAdapter("TestAdapter"); adapter2->add(ICE_MAKE_SHARED(TestIntfI), Ice::stringToIdentity("test")); adapter2->activate(); } ostringstream endpoint; - if(properties->getProperty("Ice.IPv6") == "1") + if(communicator->getProperties()->getProperty("Ice.IPv6") == "1") { - endpoint << "udp -h \"ff15::1:1\" -p " << getTestPort(properties, 10); + endpoint << "udp -h \"ff15::1:1\" -p " << getTestPort(10); #if defined(__APPLE__) || defined(_WIN32) endpoint << " --interface \"::1\""; // Use loopback to prevent other machines to answer. #endif } else { - endpoint << "udp -h 239.255.1.1 -p " << getTestPort(properties, 10); + endpoint << "udp -h 239.255.1.1 -p " << getTestPort(10); #if defined(__APPLE__) || defined(_WIN32) endpoint << " --interface 127.0.0.1"; // Use loopback to prevent other machines to answer. #endif } - properties->setProperty("McastTestAdapter.Endpoints", endpoint.str()); + communicator->getProperties()->setProperty("McastTestAdapter.Endpoints", endpoint.str()); Ice::ObjectAdapterPtr mcastAdapter = communicator->createObjectAdapter("McastTestAdapter"); mcastAdapter->add(ICE_MAKE_SHARED(TestIntfI), Ice::stringToIdentity("test")); mcastAdapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerIceUDP(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Warn.Connections", "0"); - initData.properties->setProperty("Ice.UDP.SndSize", "16384"); - initData.properties->setProperty("Ice.UDP.RcvSize", "16384"); - - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/Ice/udp/TestI.h b/cpp/test/Ice/udp/TestI.h index dc24cffbe8f..30bb326532e 100644 --- a/cpp/test/Ice/udp/TestI.h +++ b/cpp/test/Ice/udp/TestI.h @@ -11,7 +11,6 @@ #define TEST_I_H #include <Test.h> -#include <TestCommon.h> class TestIntfI : public Test::TestIntf { diff --git a/cpp/test/IceBox/admin/AllTests.cpp b/cpp/test/IceBox/admin/AllTests.cpp index 8d929e0a2b2..b16dae4b88e 100644 --- a/cpp/test/IceBox/admin/AllTests.cpp +++ b/cpp/test/IceBox/admin/AllTests.cpp @@ -8,15 +8,16 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; using namespace Test; void -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { + Ice::CommunicatorPtr communicator = helper->communicator(); string ref = "DemoIceBox/admin:default -p 9996 -t 10000"; Ice::ObjectPrxPtr admin = communicator->stringToProxy(ref); diff --git a/cpp/test/IceBox/admin/Client.cpp b/cpp/test/IceBox/admin/Client.cpp index 643ca5876fd..dd7588af837 100644 --- a/cpp/test/IceBox/admin/Client.cpp +++ b/cpp/test/IceBox/admin/Client.cpp @@ -9,50 +9,32 @@ #include <Ice/Ice.h> #include <IceUtil/IceUtil.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; using namespace Test; -int -run(int, char**, const Ice::CommunicatorPtr& comm) +class Client : public Test::TestHelper { - void allTests(const Ice::CommunicatorPtr&); - allTests(comm); +public: + + void run(int, char**); +}; + +void +Client::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + + void allTests(Test::TestHelper*); + allTests(this); // // Shutdown the IceBox server. // - ICE_UNCHECKED_CAST(Ice::ProcessPrx, comm->stringToProxy("DemoIceBox/admin -f Process:default -p 9996"))->shutdown(); - - return EXIT_SUCCESS; + ICE_UNCHECKED_CAST(Ice::ProcessPrx, + communicator->stringToProxy("DemoIceBox/admin -f Process:default -p 9996"))->shutdown(); } -int -main(int argc, char* argv[]) -{ - int status; - - Ice::CommunicatorPtr communicator; - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Default.Host", "127.0.0.1"); - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Client) diff --git a/cpp/test/IceBox/configuration/AllTests.cpp b/cpp/test/IceBox/configuration/AllTests.cpp index 0ae90b669d2..8a0f7c34f4e 100644 --- a/cpp/test/IceBox/configuration/AllTests.cpp +++ b/cpp/test/IceBox/configuration/AllTests.cpp @@ -8,19 +8,20 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; using namespace Test; void -allTests(const Ice::CommunicatorPtr& com) +allTests(Test::TestHelper* helper) { - TestIntfPrxPtr service1 = ICE_UNCHECKED_CAST(TestIntfPrx, com->stringToProxy("test:" + getTestEndpoint(com, 0))); - TestIntfPrxPtr service2 = ICE_UNCHECKED_CAST(TestIntfPrx, com->stringToProxy("test:" + getTestEndpoint(com, 1))); - TestIntfPrxPtr service3 = ICE_UNCHECKED_CAST(TestIntfPrx, com->stringToProxy("test:" + getTestEndpoint(com, 2))); - TestIntfPrxPtr service4 = ICE_UNCHECKED_CAST(TestIntfPrx, com->stringToProxy("test:" + getTestEndpoint(com, 3))); + Ice::CommunicatorPtr com = helper->communicator(); + TestIntfPrxPtr service1 = ICE_UNCHECKED_CAST(TestIntfPrx, com->stringToProxy("test:" + helper->getTestEndpoint(0))); + TestIntfPrxPtr service2 = ICE_UNCHECKED_CAST(TestIntfPrx, com->stringToProxy("test:" + helper->getTestEndpoint(1))); + TestIntfPrxPtr service3 = ICE_UNCHECKED_CAST(TestIntfPrx, com->stringToProxy("test:" + helper->getTestEndpoint(2))); + TestIntfPrxPtr service4 = ICE_UNCHECKED_CAST(TestIntfPrx, com->stringToProxy("test:" + helper->getTestEndpoint(3))); if(service1->getProperty("IceBox.InheritProperties") == "") { diff --git a/cpp/test/IceBox/configuration/Client.cpp b/cpp/test/IceBox/configuration/Client.cpp index 643ca5876fd..ff06f9667f0 100644 --- a/cpp/test/IceBox/configuration/Client.cpp +++ b/cpp/test/IceBox/configuration/Client.cpp @@ -9,50 +9,30 @@ #include <Ice/Ice.h> #include <IceUtil/IceUtil.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; using namespace Test; -int -run(int, char**, const Ice::CommunicatorPtr& comm) +class Client : public Test::TestHelper { - void allTests(const Ice::CommunicatorPtr&); - allTests(comm); +public: + void run(int, char**); +}; + +void +Client::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + void allTests(Test::TestHelper*); + allTests(this); // // Shutdown the IceBox server. // - ICE_UNCHECKED_CAST(Ice::ProcessPrx, comm->stringToProxy("DemoIceBox/admin -f Process:default -p 9996"))->shutdown(); - - return EXIT_SUCCESS; + ICE_UNCHECKED_CAST(Ice::ProcessPrx, + communicator->stringToProxy("DemoIceBox/admin -f Process:default -p 9996"))->shutdown(); } -int -main(int argc, char* argv[]) -{ - int status; - - Ice::CommunicatorPtr communicator; - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Default.Host", "127.0.0.1"); - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Client) diff --git a/cpp/test/IceBridge/simple/AllTests.cpp b/cpp/test/IceBridge/simple/AllTests.cpp index 8acbb9927a4..d73576dae3d 100644 --- a/cpp/test/IceBridge/simple/AllTests.cpp +++ b/cpp/test/IceBridge/simple/AllTests.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; @@ -83,11 +83,12 @@ private: } void -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { + Ice::CommunicatorPtr communicator = helper->communicator(); cout << "testing connection to bridge... " << flush; - Ice::ObjectPrx base = communicator->stringToProxy("test:" + getTestEndpoint(communicator, 1) + ":" + - getTestEndpoint(communicator, 1, "udp")); + Ice::ObjectPrx base = communicator->stringToProxy("test:" + helper->getTestEndpoint(1) + ":" + + helper->getTestEndpoint(1, "udp")); test(base); Test::MyClassPrx cl = Ice::checkedCast<Test::MyClassPrx>(base); cl->ice_ping(); @@ -237,7 +238,7 @@ allTests(const Ice::CommunicatorPtr& communicator) cout << "testing router... " << flush; { - Ice::ObjectPrx base = communicator->stringToProxy("Ice/RouterFinder:" + getTestEndpoint(communicator, 1)); + Ice::ObjectPrx base = communicator->stringToProxy("Ice/RouterFinder:" + helper->getTestEndpoint(1)); Ice::RouterFinderPrx finder = Ice::checkedCast<Ice::RouterFinderPrx>(base); Ice::RouterPrx router = finder->getRouter(); base = communicator->stringToProxy("test")->ice_router(router); @@ -272,7 +273,7 @@ allTests(const Ice::CommunicatorPtr& communicator) cout << "ok" << endl; cout << "testing bridge shutdown... " << flush; - Ice::ObjectPrx admin = communicator->stringToProxy("IceBridge/admin:" + getTestEndpoint(communicator, 2, "tcp")); + Ice::ObjectPrx admin = communicator->stringToProxy("IceBridge/admin:" + helper->getTestEndpoint(2, "tcp")); Ice::ProcessPrx process = Ice::checkedCast<Ice::ProcessPrx>(admin->ice_facet("Process")); process->shutdown(); cout << "ok" << endl; diff --git a/cpp/test/IceBridge/simple/Client.cpp b/cpp/test/IceBridge/simple/Client.cpp index cbb0c076897..dbb5d683820 100644 --- a/cpp/test/IceBridge/simple/Client.cpp +++ b/cpp/test/IceBridge/simple/Client.cpp @@ -8,42 +8,26 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> -DEFINE_TEST("client") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - void allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - return EXIT_SUCCESS; -} +public: -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -# ifdef ICE_HAS_BT - Ice::registerIceBT(false); -# endif -#endif + void run(int argc, char** argv); +}; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.RetryIntervals", "-1"); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } +void +Client::run(int argc, char** argv) +{ + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.RetryIntervals", "-1"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + void allTests(Test::TestHelper*); + allTests(this); } + +DEFINE_TEST(Client) diff --git a/cpp/test/IceBridge/simple/Server.cpp b/cpp/test/IceBridge/simple/Server.cpp index 36902c7d413..d46a83d4929 100644 --- a/cpp/test/IceBridge/simple/Server.cpp +++ b/cpp/test/IceBridge/simple/Server.cpp @@ -8,48 +8,36 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("server") - using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) { + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Warn.Dispatch", "0"); + + // Make sure requests are serialized, this is required for the ordering test. + properties->setProperty("Ice.ThreadPool.Server.Serialize", "1"); + + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); communicator->getProperties()->setProperty("TestAdapter.Endpoints", - getTestEndpoint(communicator, 0) + ":" + - getTestEndpoint(communicator, 0, "udp")); + getTestEndpoint() + ":" + + getTestEndpoint("udp")); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->add(ICE_MAKE_SHARED(MyClassI), Ice::stringToIdentity("test")); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Warn.Dispatch", "0"); - - // Make sure requests are serialized, this is required for the ordering test. - initData.properties->setProperty("Ice.ThreadPool.Server.Serialize", "1"); - Ice::CommunicatorHolder ich(argc, argv, initData); - return run(argc, argv, ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Server) diff --git a/cpp/test/IceBridge/simple/TestI.cpp b/cpp/test/IceBridge/simple/TestI.cpp index 5690f4d20f4..558323dda5e 100644 --- a/cpp/test/IceBridge/simple/TestI.cpp +++ b/cpp/test/IceBridge/simple/TestI.cpp @@ -9,7 +9,7 @@ #include <Ice/Ice.h> #include <TestI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace Test; diff --git a/cpp/test/IceDiscovery/simple/AllTests.cpp b/cpp/test/IceDiscovery/simple/AllTests.cpp index f0897121603..7e8da1372fc 100644 --- a/cpp/test/IceDiscovery/simple/AllTests.cpp +++ b/cpp/test/IceDiscovery/simple/AllTests.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; @@ -16,8 +16,9 @@ using namespace Ice; using namespace Test; void -allTests(const CommunicatorPtr& communicator, int num) +allTests(Test::TestHelper* helper, int num) { + CommunicatorPtr communicator = helper->communicator(); vector<ControllerPrxPtr> proxies; vector<ControllerPrxPtr> indirectProxies; for(int i = 0; i < num; ++i) diff --git a/cpp/test/IceDiscovery/simple/Client.cpp b/cpp/test/IceDiscovery/simple/Client.cpp index 2f8c897a828..bb06736c137 100644 --- a/cpp/test/IceDiscovery/simple/Client.cpp +++ b/cpp/test/IceDiscovery/simple/Client.cpp @@ -8,55 +8,32 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> -DEFINE_TEST("client") - using namespace std; using namespace Test; -int -run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - int num = argc == 2 ? atoi(argv[1]) : 1; +public: - void allTests(const Ice::CommunicatorPtr&, int); - allTests(communicator, num); - return EXIT_SUCCESS; -} + void run(int, char**); +}; -int -main(int argc, char* argv[]) +void +Client::run(int argc, char** argv) { -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(); - Ice::registerIceWS(); -#endif // // Explicitly register the IceDiscovery plugin to test registerIceDiscovery. // Ice::registerIceDiscovery(); - int status; - Ice::CommunicatorPtr communicator; - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; + Ice::CommunicatorHolder communicator = initialize(argc, argv); + int num = argc == 2 ? atoi(argv[1]) : 1; + + void allTests(Test::TestHelper*, int); + allTests(this, num); } + +DEFINE_TEST(Client) diff --git a/cpp/test/IceDiscovery/simple/Makefile.mk b/cpp/test/IceDiscovery/simple/Makefile.mk index dc5ec9d8960..39e7d822867 100644 --- a/cpp/test/IceDiscovery/simple/Makefile.mk +++ b/cpp/test/IceDiscovery/simple/Makefile.mk @@ -7,6 +7,6 @@ # # ********************************************************************** -$(test)_dependencies = IceDiscovery Ice TestCommon +$(test)_dependencies = IceDiscovery TestCommon IceSSL Ice tests += $(test) diff --git a/cpp/test/IceDiscovery/simple/Server.cpp b/cpp/test/IceDiscovery/simple/Server.cpp index 47a9cbd4775..e8793ae4911 100644 --- a/cpp/test/IceDiscovery/simple/Server.cpp +++ b/cpp/test/IceDiscovery/simple/Server.cpp @@ -8,25 +8,28 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <TestI.h> -DEFINE_TEST("server") - using namespace std; -int -run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper { +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); Ice::PropertiesPtr properties = communicator->getProperties(); int num = argc == 2 ? atoi(argv[1]) : 0; - { - ostringstream os; - os << getTestEndpoint(communicator, num); - properties->setProperty("ControlAdapter.Endpoints", os.str()); - } + properties->setProperty("ControlAdapter.Endpoints", getTestEndpoint(num)); + { ostringstream os; os << "control" << num; @@ -41,40 +44,9 @@ run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator) } adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(); - Ice::registerIceWS(); - Ice::registerIceDiscovery(); -#endif - - int status; - Ice::CommunicatorPtr communicator; - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Server) diff --git a/cpp/test/IceDiscovery/simple/TestI.h b/cpp/test/IceDiscovery/simple/TestI.h index 03179f13f0a..c2e4304766f 100644 --- a/cpp/test/IceDiscovery/simple/TestI.h +++ b/cpp/test/IceDiscovery/simple/TestI.h @@ -11,7 +11,6 @@ #define TEST_I_H #include <Test.h> -#include <TestCommon.h> class TestIntfI : public Test::TestIntf { diff --git a/cpp/test/IceGrid/activation/AllTests.cpp b/cpp/test/IceGrid/activation/AllTests.cpp index c9c2aaa6504..61503746c05 100644 --- a/cpp/test/IceGrid/activation/AllTests.cpp +++ b/cpp/test/IceGrid/activation/AllTests.cpp @@ -10,7 +10,7 @@ #include <Ice/Ice.h> #include <IceGrid/IceGrid.h> #include <IceUtil/Thread.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; @@ -86,8 +86,9 @@ private: typedef IceUtil::Handle<PingThread> PingThreadPtr; void -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { + Ice::CommunicatorPtr communicator = helper->communicator(); IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::checkedCast( communicator->stringToProxy(communicator->getDefaultLocator()->ice_getIdentity().category + "/Registry")); test(registry); @@ -97,7 +98,9 @@ allTests(const Ice::CommunicatorPtr& communicator) IceGrid::AdminSessionPrx session = registry->createAdminSession("foo", "bar"); - session->ice_getConnection()->setACM(registry->getACMTimeout(), IceUtil::None, Ice::ICE_ENUM(ACMHeartbeat, HeartbeatAlways)); + session->ice_getConnection()->setACM(registry->getACMTimeout(), + IceUtil::None, + Ice::ICE_ENUM(ACMHeartbeat, HeartbeatAlways)); IceGrid::AdminPrx admin = session->getAdmin(); test(admin); diff --git a/cpp/test/IceGrid/activation/Client.cpp b/cpp/test/IceGrid/activation/Client.cpp index 76241d98c50..50558f8f63f 100644 --- a/cpp/test/IceGrid/activation/Client.cpp +++ b/cpp/test/IceGrid/activation/Client.cpp @@ -8,42 +8,25 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; using namespace Test; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - void allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - return EXIT_SUCCESS; -} - -int -main(int argc, char* argv[]) -{ - int status; - Ice::CommunicatorPtr communicator; +public: - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } + void run(int, char**); +}; - if(communicator) - { - communicator->destroy(); - } - - return status; +void +Client::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + void allTests(Test::TestHelper*); + allTests(this); } + +DEFINE_TEST(Client) diff --git a/cpp/test/IceGrid/activation/Server.cpp b/cpp/test/IceGrid/activation/Server.cpp index 96d446b466c..0dad9d24103 100644 --- a/cpp/test/IceGrid/activation/Server.cpp +++ b/cpp/test/IceGrid/activation/Server.cpp @@ -10,33 +10,40 @@ #include <Ice/Ice.h> #include <IceUtil/Thread.h> #include <TestI.h> +#include <TestHelper.h> using namespace std; -class Server : public Ice::Application +class Server : public Test::TestHelper { public: - virtual int run(int argc, char* argv[]); + void run(int, char**); +}; + +class TestActivationFailure : public std::runtime_error +{ +public: + TestActivationFailure(const string& what_arg) : + runtime_error(what_arg) + { + } }; -int -Server::run(int argc, char* argv[]) +void +Server::run(int argc, char** argv) { - Ice::StringSeq args = Ice::argsToStringSeq(argc, argv); - Ice::PropertiesPtr properties = communicator()->getProperties(); - args = properties->parseCommandLineOptions("", args); - Ice::stringSeqToArgs(args, argc, argv); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); if(properties->getPropertyAsInt("FailOnStartup") > 0) { - return EXIT_FAILURE; + throw TestActivationFailure("FailOnStartup"); } + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); - Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("TestAdapter"); - TestI* test = new TestI(); - Ice::ObjectPtr obj = test; - adapter->add(test, Ice::stringToIdentity(properties->getProperty("Ice.Admin.ServerId"))); + Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); + TestIPtr testI = ICE_MAKE_SHARED(TestI); + adapter->add(testI, Ice::stringToIdentity(properties->getProperty("Ice.Admin.ServerId"))); int delay = properties->getPropertyAsInt("ActivationDelay"); if(delay > 0) @@ -44,7 +51,6 @@ Server::run(int argc, char* argv[]) IceUtil::ThreadControl::sleep(IceUtil::Time::seconds(delay)); } - shutdownOnInterrupt(); try { adapter->activate(); @@ -52,8 +58,7 @@ Server::run(int argc, char* argv[]) catch(const Ice::ObjectAdapterDeactivatedException&) { } - communicator()->waitForShutdown(); - ignoreInterrupt(); + communicator->waitForShutdown(); delay = properties->getPropertyAsInt("DeactivationDelay"); if(delay > 0) @@ -61,13 +66,29 @@ Server::run(int argc, char* argv[]) IceUtil::ThreadControl::sleep(IceUtil::Time::seconds(delay)); } - return test->isFailed() ? EXIT_FAILURE : EXIT_SUCCESS; + if(testI->isFailed()) + { + throw TestActivationFailure("test failed"); + } } int -main(int argc, char* argv[]) +main(int argc, char** argv) { - Server app; - int rc = app.main(argc, argv); - return rc; + int status = 0; + try + { + Server server; + server.run(argc, argv); + } + catch(const TestActivationFailure&) + { + status = 1; // excpected failure + } + catch(const std::exception& ex) + { + std::cerr << "error: " << ex.what() << std::endl; + status = 1; + } + return status; } diff --git a/cpp/test/IceGrid/activation/TestI.h b/cpp/test/IceGrid/activation/TestI.h index 9fce267c5f0..800e08dea17 100644 --- a/cpp/test/IceGrid/activation/TestI.h +++ b/cpp/test/IceGrid/activation/TestI.h @@ -27,5 +27,5 @@ private: bool _failed; }; - +ICE_DEFINE_PTR(TestIPtr, TestI); #endif diff --git a/cpp/test/IceGrid/admin/Server.cpp b/cpp/test/IceGrid/admin/Server.cpp index ddd7e15829a..00128656be4 100644 --- a/cpp/test/IceGrid/admin/Server.cpp +++ b/cpp/test/IceGrid/admin/Server.cpp @@ -8,26 +8,22 @@ // ********************************************************************** #include <Ice/Ice.h> +#include <TestHelper.h> using namespace std; -class Server : public Ice::Application +class Server : public Test::TestHelper { public: - virtual int run(int argc, char* argv[]); - + void run(int, char**); }; -int -Server::run(int argc, char* argv[]) +void +Server::run(int argc, char** argv) { - Ice::StringSeq args = Ice::argsToStringSeq(argc, argv); - args = communicator()->getProperties()->parseCommandLineOptions("TestAdapter", args); - Ice::stringSeqToArgs(args, argc, argv); - - Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("TestAdapter"); - shutdownOnInterrupt(); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); try { adapter->activate(); @@ -35,15 +31,7 @@ Server::run(int argc, char* argv[]) catch(const Ice::ObjectAdapterDeactivatedException&) { } - communicator()->waitForShutdown(); - ignoreInterrupt(); - return EXIT_SUCCESS; + communicator->waitForShutdown(); } -int -main(int argc, char* argv[]) -{ - Server app; - int rc = app.main(argc, argv); - return rc; -} +DEFINE_TEST(Server) diff --git a/cpp/test/IceGrid/allocation/AllTests.cpp b/cpp/test/IceGrid/allocation/AllTests.cpp index e67bde4ed01..f8ed209c2f6 100644 --- a/cpp/test/IceGrid/allocation/AllTests.cpp +++ b/cpp/test/IceGrid/allocation/AllTests.cpp @@ -12,7 +12,7 @@ #include <Ice/Ice.h> #include <IceGrid/IceGrid.h> #include <Glacier2/Router.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; @@ -269,13 +269,16 @@ protected: typedef IceUtil::Handle<StressClient> StressClientPtr; void -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { + Ice::CommunicatorPtr communicator = helper->communicator(); IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::checkedCast( communicator->stringToProxy(communicator->getDefaultLocator()->ice_getIdentity().category + "/Registry")); test(registry); AdminSessionPrx session = registry->createAdminSession("foo", "bar"); - session->ice_getConnection()->setACM(registry->getACMTimeout(), IceUtil::None, Ice::ICE_ENUM(ACMHeartbeat, HeartbeatAlways)); + session->ice_getConnection()->setACM(registry->getACMTimeout(), + IceUtil::None, + Ice::ICE_ENUM(ACMHeartbeat, HeartbeatAlways)); AdminPrx admin = session->getAdmin(); test(admin); diff --git a/cpp/test/IceGrid/allocation/Client.cpp b/cpp/test/IceGrid/allocation/Client.cpp index 1e8df96a8ca..33f90f5d9b1 100644 --- a/cpp/test/IceGrid/allocation/Client.cpp +++ b/cpp/test/IceGrid/allocation/Client.cpp @@ -8,41 +8,25 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - void allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - return EXIT_SUCCESS; -} - -int -main(int argc, char* argv[]) -{ - int status; - Ice::CommunicatorPtr communicator; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - communicator->getProperties()->parseCommandLineOptions("", Ice::argsToStringSeq(argc, argv)); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } +public: - if(communicator) - { - communicator->destroy(); - } + void run(int, char**); +}; - return status; +void +Client::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->parseCommandLineOptions("", Ice::argsToStringSeq(argc, argv)); + void allTests(Test::TestHelper*); + allTests(this); } + +DEFINE_TEST(Client) diff --git a/cpp/test/IceGrid/allocation/Server.cpp b/cpp/test/IceGrid/allocation/Server.cpp index 7c2f72c1b22..b4dee3f13b1 100644 --- a/cpp/test/IceGrid/allocation/Server.cpp +++ b/cpp/test/IceGrid/allocation/Server.cpp @@ -9,29 +9,26 @@ #include <Ice/Ice.h> #include <TestI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; -class Server : public Ice::Application +class Server : public Test::TestHelper { public: - virtual int run(int argc, char* argv[]); + void run(int, char**); }; -int -Server::run(int argc, char* argv[]) +void +Server::run(int argc, char** argv) { - Ice::PropertiesPtr properties = communicator()->getProperties(); - - Ice::StringSeq args = Ice::argsToStringSeq(argc, argv); - args = properties->parseCommandLineOptions("Test", args); - Ice::stringSeqToArgs(args, argc, argv); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + Ice::PropertiesPtr properties = communicator->getProperties(); string name = properties->getProperty("Ice.ProgramName"); - Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("Server"); + Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("Server"); adapter->add(new TestI(properties), Ice::stringToIdentity("allocatable")); adapter->add(new TestI(properties), Ice::stringToIdentity("nonallocatable")); adapter->add(new TestI(properties), Ice::stringToIdentity("allocatable1")); @@ -43,7 +40,6 @@ Server::run(int argc, char* argv[]) adapter->add(new TestI(properties), Ice::stringToIdentity("allocatable31")); adapter->add(new TestI(properties), Ice::stringToIdentity("allocatable41")); - shutdownOnInterrupt(); try { adapter->activate(); @@ -51,15 +47,7 @@ Server::run(int argc, char* argv[]) catch(const Ice::ObjectAdapterDeactivatedException&) { } - communicator()->waitForShutdown(); - ignoreInterrupt(); - return EXIT_SUCCESS; + communicator->waitForShutdown(); } -int -main(int argc, char* argv[]) -{ - Server app; - int rc = app.main(argc, argv); - return rc; -} +DEFINE_TEST(Server) diff --git a/cpp/test/IceGrid/deployer/AllTests.cpp b/cpp/test/IceGrid/deployer/AllTests.cpp index b1e7a80a931..3733a1fd2b8 100644 --- a/cpp/test/IceGrid/deployer/AllTests.cpp +++ b/cpp/test/IceGrid/deployer/AllTests.cpp @@ -10,7 +10,7 @@ #include <Ice/Ice.h> #include <IceGrid/IceGrid.h> #include <IceUtil/Thread.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #include <fstream> @@ -376,8 +376,9 @@ logTests(const Ice::CommunicatorPtr& comm, const AdminSessionPrx& session) } void -allTests(const Ice::CommunicatorPtr& comm) +allTests(Test::TestHelper* helper) { + Ice::CommunicatorPtr comm = helper->communicator(); IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::checkedCast( comm->stringToProxy(comm->getDefaultLocator()->ice_getIdentity().category + "/Registry")); test(registry); @@ -387,7 +388,9 @@ allTests(const Ice::CommunicatorPtr& comm) AdminSessionPrx session = registry->createAdminSession("foo", "bar"); - session->ice_getConnection()->setACM(registry->getACMTimeout(), IceUtil::None, Ice::ICE_ENUM(ACMHeartbeat, HeartbeatAlways)); + session->ice_getConnection()->setACM(registry->getACMTimeout(), + IceUtil::None, + Ice::ICE_ENUM(ACMHeartbeat, HeartbeatAlways)); AdminPrx admin = session->getAdmin(); test(admin); @@ -744,8 +747,9 @@ allTests(const Ice::CommunicatorPtr& comm) } void -allTestsWithTarget(const Ice::CommunicatorPtr& comm) +allTestsWithTarget(Test::TestHelper* helper) { + Ice::CommunicatorPtr comm = helper->communicator(); RegistryPrx registry = IceGrid::RegistryPrx::checkedCast( comm->stringToProxy(comm->getDefaultLocator()->ice_getIdentity().category + "/Registry")); test(registry); diff --git a/cpp/test/IceGrid/deployer/Client.cpp b/cpp/test/IceGrid/deployer/Client.cpp index 552850e630a..f63bafdcd44 100644 --- a/cpp/test/IceGrid/deployer/Client.cpp +++ b/cpp/test/IceGrid/deployer/Client.cpp @@ -8,14 +8,23 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; -int -run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { +public: + + void run(int, char**); +}; + +void +Client::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + bool withTarget = false; if(argc > 1) { @@ -37,40 +46,14 @@ run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator) if(!withTarget) { - void allTests(const Ice::CommunicatorPtr&); - allTests(communicator); + void allTests(Test::TestHelper*); + allTests(this); } else { - void allTestsWithTarget(const Ice::CommunicatorPtr&); - allTestsWithTarget(communicator); + void allTestsWithTarget(Test::TestHelper*); + allTestsWithTarget(this); } - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ - int status; - Ice::CommunicatorPtr communicator; - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Client) diff --git a/cpp/test/IceGrid/deployer/Server.cpp b/cpp/test/IceGrid/deployer/Server.cpp index 72835a3b0aa..4d57a94bdef 100644 --- a/cpp/test/IceGrid/deployer/Server.cpp +++ b/cpp/test/IceGrid/deployer/Server.cpp @@ -10,54 +10,20 @@ #include <IceUtil/DisableWarnings.h> #include <Ice/Ice.h> #include <TestI.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <fstream> using namespace std; -class Server : public Ice::Application +class Server : public Test::TestHelper { public: - virtual int run(int argc, char* argv[]); + void run(int, char**); }; -int -Server::run(int argc, char* argv[]) -{ - Ice::PropertiesPtr properties = communicator()->getProperties(); - - Ice::StringSeq args = Ice::argsToStringSeq(argc, argv); - args = properties->parseCommandLineOptions("Test", args); - Ice::stringSeqToArgs(args, argc, argv); - - string name = properties->getProperty("Ice.ProgramName"); - Ice::ObjectAdapterPtr adapter; - - if(!properties->getProperty("ReplicatedAdapter").empty()) - { - adapter = communicator()->createObjectAdapter("ReplicatedAdapter"); - adapter->activate(); - } - - adapter = communicator()->createObjectAdapter("Server"); - Ice::ObjectPtr object = new TestI(properties); - adapter->add(object, Ice::stringToIdentity(name)); - shutdownOnInterrupt(); - try - { - adapter->activate(); - } - catch(const Ice::ObjectAdapterDeactivatedException&) - { - } - communicator()->waitForShutdown(); - ignoreInterrupt(); - return EXIT_SUCCESS; -} - -int -main(int argc, char* argv[]) +void +Server::run(int argc, char** argv) { // // Test if MY_ENV_VARIABLE is set. @@ -106,7 +72,29 @@ main(int argc, char* argv[]) test(value5 != 0 && string(value5) == "BAR;12"); #endif - Server app; - int rc = app.main(argc, argv); - return rc; + Ice::CommunicatorHolder communicator = initialize(argc, argv); + + Ice::PropertiesPtr properties = communicator->getProperties(); + string name = properties->getProperty("Ice.ProgramName"); + Ice::ObjectAdapterPtr adapter; + + if(!properties->getProperty("ReplicatedAdapter").empty()) + { + adapter = communicator->createObjectAdapter("ReplicatedAdapter"); + adapter->activate(); + } + + adapter = communicator->createObjectAdapter("Server"); + Ice::ObjectPtr object = new TestI(properties); + adapter->add(object, Ice::stringToIdentity(name)); + try + { + adapter->activate(); + } + catch(const Ice::ObjectAdapterDeactivatedException&) + { + } + communicator->waitForShutdown(); } + +DEFINE_TEST(Server) diff --git a/cpp/test/IceGrid/distribution/AllTests.cpp b/cpp/test/IceGrid/distribution/AllTests.cpp index 1c26602e4a8..57ce9af3360 100644 --- a/cpp/test/IceGrid/distribution/AllTests.cpp +++ b/cpp/test/IceGrid/distribution/AllTests.cpp @@ -10,7 +10,7 @@ #include <IceUtil/Thread.h> #include <Ice/Ice.h> #include <IceGrid/IceGrid.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #include <iterator> @@ -20,14 +20,17 @@ using namespace Test; using namespace IceGrid; void -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { + Ice::CommunicatorPtr communicator = helper->communicator(); IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::checkedCast( communicator->stringToProxy(communicator->getDefaultLocator()->ice_getIdentity().category + "/Registry")); test(registry); AdminSessionPrx session = registry->createAdminSession("foo", "bar"); - session->ice_getConnection()->setACM(registry->getACMTimeout(), IceUtil::None, Ice::ICE_ENUM(ACMHeartbeat, HeartbeatAlways)); + session->ice_getConnection()->setACM(registry->getACMTimeout(), + IceUtil::None, + Ice::ICE_ENUM(ACMHeartbeat, HeartbeatAlways)); AdminPrx admin = session->getAdmin(); test(admin); diff --git a/cpp/test/IceGrid/distribution/Client.cpp b/cpp/test/IceGrid/distribution/Client.cpp index 1e8df96a8ca..33f90f5d9b1 100644 --- a/cpp/test/IceGrid/distribution/Client.cpp +++ b/cpp/test/IceGrid/distribution/Client.cpp @@ -8,41 +8,25 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - void allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - return EXIT_SUCCESS; -} - -int -main(int argc, char* argv[]) -{ - int status; - Ice::CommunicatorPtr communicator; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - communicator->getProperties()->parseCommandLineOptions("", Ice::argsToStringSeq(argc, argv)); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } +public: - if(communicator) - { - communicator->destroy(); - } + void run(int, char**); +}; - return status; +void +Client::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->parseCommandLineOptions("", Ice::argsToStringSeq(argc, argv)); + void allTests(Test::TestHelper*); + allTests(this); } + +DEFINE_TEST(Client) diff --git a/cpp/test/IceGrid/distribution/Server.cpp b/cpp/test/IceGrid/distribution/Server.cpp index 4d4c26923d0..da0d90a9430 100644 --- a/cpp/test/IceGrid/distribution/Server.cpp +++ b/cpp/test/IceGrid/distribution/Server.cpp @@ -9,33 +9,27 @@ #include <Ice/Ice.h> #include <TestI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; -class Server : public Ice::Application +class Server : public Test::TestHelper { public: - virtual int run(int argc, char* argv[]); + void run(int, char**); }; -int -Server::run(int argc, char* argv[]) +void +Server::run(int argc, char** argv) { - Ice::PropertiesPtr properties = communicator()->getProperties(); - - Ice::StringSeq args = Ice::argsToStringSeq(argc, argv); - args = properties->parseCommandLineOptions("Test", args); - Ice::stringSeqToArgs(args, argc, argv); - + Ice::CommunicatorHolder communicator = initialize(argc, argv); + Ice::PropertiesPtr properties = communicator->getProperties(); string name = properties->getProperty("Ice.ProgramName"); - - Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("Server"); + Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("Server"); Ice::ObjectPtr object = new TestI(properties); adapter->add(object, Ice::stringToIdentity(name)); - shutdownOnInterrupt(); try { adapter->activate(); @@ -43,15 +37,7 @@ Server::run(int argc, char* argv[]) catch(const Ice::ObjectAdapterDeactivatedException&) { } - communicator()->waitForShutdown(); - ignoreInterrupt(); - return EXIT_SUCCESS; + communicator->waitForShutdown(); } -int -main(int argc, char* argv[]) -{ - Server app; - int rc = app.main(argc, argv); - return rc; -} +DEFINE_TEST(Server) diff --git a/cpp/test/IceGrid/noRestartUpdate/AllTests.cpp b/cpp/test/IceGrid/noRestartUpdate/AllTests.cpp index 19debb3cb4a..10c0ae9f818 100644 --- a/cpp/test/IceGrid/noRestartUpdate/AllTests.cpp +++ b/cpp/test/IceGrid/noRestartUpdate/AllTests.cpp @@ -10,7 +10,7 @@ #include <IceUtil/Thread.h> #include <Ice/Ice.h> #include <IceGrid/IceGrid.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; @@ -149,14 +149,17 @@ updateServiceRuntimeProperties(const AdminPrx& admin, const ServiceDescriptorPtr } void -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { + Ice::CommunicatorPtr communicator = helper->communicator(); IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::checkedCast( communicator->stringToProxy(communicator->getDefaultLocator()->ice_getIdentity().category + "/Registry")); test(registry); AdminSessionPrx session = registry->createAdminSession("foo", "bar"); - session->ice_getConnection()->setACM(registry->getACMTimeout(), IceUtil::None, Ice::ICE_ENUM(ACMHeartbeat, HeartbeatAlways)); + session->ice_getConnection()->setACM(registry->getACMTimeout(), + IceUtil::None, + Ice::ICE_ENUM(ACMHeartbeat, HeartbeatAlways)); AdminPrx admin = session->getAdmin(); test(admin); diff --git a/cpp/test/IceGrid/noRestartUpdate/Client.cpp b/cpp/test/IceGrid/noRestartUpdate/Client.cpp index 1e8df96a8ca..33f90f5d9b1 100644 --- a/cpp/test/IceGrid/noRestartUpdate/Client.cpp +++ b/cpp/test/IceGrid/noRestartUpdate/Client.cpp @@ -8,41 +8,25 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - void allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - return EXIT_SUCCESS; -} - -int -main(int argc, char* argv[]) -{ - int status; - Ice::CommunicatorPtr communicator; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - communicator->getProperties()->parseCommandLineOptions("", Ice::argsToStringSeq(argc, argv)); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } +public: - if(communicator) - { - communicator->destroy(); - } + void run(int, char**); +}; - return status; +void +Client::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->parseCommandLineOptions("", Ice::argsToStringSeq(argc, argv)); + void allTests(Test::TestHelper*); + allTests(this); } + +DEFINE_TEST(Client) diff --git a/cpp/test/IceGrid/noRestartUpdate/Server.cpp b/cpp/test/IceGrid/noRestartUpdate/Server.cpp index 5bf7ffd8063..19ee0c414b2 100644 --- a/cpp/test/IceGrid/noRestartUpdate/Server.cpp +++ b/cpp/test/IceGrid/noRestartUpdate/Server.cpp @@ -9,33 +9,29 @@ #include <Ice/Ice.h> #include <TestI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; -class Server : public Ice::Application +class Server : public Test::TestHelper { public: - virtual int run(int argc, char* argv[]); + void run(int, char**); }; -int -Server::run(int argc, char* argv[]) +void +Server::run(int argc, char** argv) { - Ice::PropertiesPtr properties = communicator()->getProperties(); - - Ice::StringSeq args = Ice::argsToStringSeq(argc, argv); - args = properties->parseCommandLineOptions("Test", args); - Ice::stringSeqToArgs(args, argc, argv); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + Ice::PropertiesPtr properties = communicator->getProperties(); string name = properties->getProperty("Ice.ProgramName"); - Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("Server"); + Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("Server"); Ice::ObjectPtr object = new TestI(adapter, properties); adapter->add(object, Ice::stringToIdentity(name)); - shutdownOnInterrupt(); try { adapter->activate(); @@ -43,15 +39,7 @@ Server::run(int argc, char* argv[]) catch(const Ice::ObjectAdapterDeactivatedException&) { } - communicator()->waitForShutdown(); - ignoreInterrupt(); - return EXIT_SUCCESS; + communicator->waitForShutdown(); } -int -main(int argc, char* argv[]) -{ - Server app; - int rc = app.main(argc, argv); - return rc; -} +DEFINE_TEST(Server) diff --git a/cpp/test/IceGrid/replicaGroup/AllTests.cpp b/cpp/test/IceGrid/replicaGroup/AllTests.cpp index f7418749ce2..0a8daf190b8 100644 --- a/cpp/test/IceGrid/replicaGroup/AllTests.cpp +++ b/cpp/test/IceGrid/replicaGroup/AllTests.cpp @@ -11,7 +11,7 @@ #include <Ice/BuiltinSequences.h> #include <IceGrid/IceGrid.h> #include <IceUtil/Thread.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #include <set> @@ -105,8 +105,9 @@ removeServer(const AdminPrx& admin, const string& id) } void -allTests(const Ice::CommunicatorPtr& comm) +allTests(Test::TestHelper* helper) { + Ice::CommunicatorPtr comm = helper->communicator(); IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::checkedCast( comm->stringToProxy(comm->getDefaultLocator()->ice_getIdentity().category + "/Registry")); test(registry); @@ -115,7 +116,9 @@ allTests(const Ice::CommunicatorPtr& comm) test(query); AdminSessionPrx session = registry->createAdminSession("foo", "bar"); - session->ice_getConnection()->setACM(registry->getACMTimeout(), IceUtil::None, Ice::ICE_ENUM(ACMHeartbeat, HeartbeatAlways)); + session->ice_getConnection()->setACM(registry->getACMTimeout(), + IceUtil::None, + Ice::ICE_ENUM(ACMHeartbeat, HeartbeatAlways)); AdminPrx admin = session->getAdmin(); test(admin); diff --git a/cpp/test/IceGrid/replicaGroup/Client.cpp b/cpp/test/IceGrid/replicaGroup/Client.cpp index 6368aecea6c..7184106d732 100644 --- a/cpp/test/IceGrid/replicaGroup/Client.cpp +++ b/cpp/test/IceGrid/replicaGroup/Client.cpp @@ -8,41 +8,24 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - void allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - return EXIT_SUCCESS; -} - -int -main(int argc, char* argv[]) -{ - int status; - Ice::CommunicatorPtr communicator; +public: - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } + void run(int, char**); +}; - if(communicator) - { - communicator->destroy(); - } - - return status; +void +Client::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + void allTests(Test::TestHelper*); + allTests(this); } + +DEFINE_TEST(Client) diff --git a/cpp/test/IceGrid/replicaGroup/RegistryPlugin.cpp b/cpp/test/IceGrid/replicaGroup/RegistryPlugin.cpp index 434293ee7b8..e759070b0ee 100644 --- a/cpp/test/IceGrid/replicaGroup/RegistryPlugin.cpp +++ b/cpp/test/IceGrid/replicaGroup/RegistryPlugin.cpp @@ -10,7 +10,7 @@ #include <Ice/Ice.h> #include <IceGrid/IceGrid.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace IceGrid; diff --git a/cpp/test/IceGrid/replicaGroup/Server.cpp b/cpp/test/IceGrid/replicaGroup/Server.cpp index eb26ba14cb5..48106fea387 100644 --- a/cpp/test/IceGrid/replicaGroup/Server.cpp +++ b/cpp/test/IceGrid/replicaGroup/Server.cpp @@ -9,30 +9,30 @@ #include <Ice/Ice.h> #include <TestI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; -class Server : public Ice::Application +class Server : public Test::TestHelper { public: - virtual int run(int argc, char* argv[]); + void run(int, char**); }; -int -Server::run(int, char**) +void +Server::run(int argc, char** argv) { - Ice::ObjectAdapterPtr adpt = communicator()->createObjectAdapter("ReplicatedAdapter"); - Ice::PropertiesPtr properties = communicator()->getProperties(); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + Ice::ObjectAdapterPtr adpt = communicator->createObjectAdapter("ReplicatedAdapter"); + Ice::PropertiesPtr properties = communicator->getProperties(); Ice::ObjectPtr object = new TestI(properties); adpt->add(object, Ice::stringToIdentity(properties->getProperty("Ice.ProgramName"))); adpt->add(object, Ice::stringToIdentity(properties->getProperty("Identity"))); - shutdownOnInterrupt(); try { adpt->activate(); - communicator()->getAdmin(); + communicator->getAdmin(); } catch(const Ice::ObjectAdapterDeactivatedException&) { @@ -44,14 +44,7 @@ Server::run(int, char**) // servant. // } - communicator()->waitForShutdown(); - ignoreInterrupt(); - return EXIT_SUCCESS; + communicator->waitForShutdown(); } -int -main(int argc, char* argv[]) -{ - Server app; - return app.main(argc, argv); -} +DEFINE_TEST(Server) diff --git a/cpp/test/IceGrid/replication/AllTests.cpp b/cpp/test/IceGrid/replication/AllTests.cpp index 0d9b84aaafb..681b22656be 100644 --- a/cpp/test/IceGrid/replication/AllTests.cpp +++ b/cpp/test/IceGrid/replication/AllTests.cpp @@ -12,7 +12,7 @@ #include <Ice/Locator.h> #include <IceGrid/IceGrid.h> #include <IceUtil/Thread.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; @@ -247,14 +247,17 @@ createAdminSession(const Ice::LocatorPrx& locator, const string& replica) } void -allTests(const Ice::CommunicatorPtr& comm) +allTests(Test::TestHelper* helper) { + Ice::CommunicatorPtr comm = helper->communicator(); IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::checkedCast( comm->stringToProxy(comm->getDefaultLocator()->ice_getIdentity().category + "/Registry")); AdminSessionPrx session = registry->createAdminSession("foo", "bar"); - session->ice_getConnection()->setACM(registry->getACMTimeout(), IceUtil::None, Ice::ICE_ENUM(ACMHeartbeat, HeartbeatAlways)); + session->ice_getConnection()->setACM(registry->getACMTimeout(), + IceUtil::None, + Ice::ICE_ENUM(ACMHeartbeat, HeartbeatAlways)); AdminPrx admin = session->getAdmin(); test(admin); diff --git a/cpp/test/IceGrid/replication/Client.cpp b/cpp/test/IceGrid/replication/Client.cpp index 7f6297805d8..33f90f5d9b1 100644 --- a/cpp/test/IceGrid/replication/Client.cpp +++ b/cpp/test/IceGrid/replication/Client.cpp @@ -8,42 +8,25 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - void allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - return EXIT_SUCCESS; -} - -int -main(int argc, char* argv[]) -{ - int status; - Ice::CommunicatorPtr communicator; +public: - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - communicator->getProperties()->parseCommandLineOptions("", Ice::argsToStringSeq(argc, argv)); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } + void run(int, char**); +}; - if(communicator) - { - communicator->destroy(); - } - - return status; +void +Client::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->parseCommandLineOptions("", Ice::argsToStringSeq(argc, argv)); + void allTests(Test::TestHelper*); + allTests(this); } + +DEFINE_TEST(Client) diff --git a/cpp/test/IceGrid/replication/Server.cpp b/cpp/test/IceGrid/replication/Server.cpp index c1a1116d4e4..2046a002414 100644 --- a/cpp/test/IceGrid/replication/Server.cpp +++ b/cpp/test/IceGrid/replication/Server.cpp @@ -9,24 +9,23 @@ #include <Ice/Ice.h> #include <TestI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; -class Server : public Ice::Application +class Server : public Test::TestHelper { public: - virtual int run(int argc, char* argv[]); + void run(int, char**); }; -int -Server::run(int, char**) +void +Server::run(int argc, char** argv) { - Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("TestAdapter"); - Ice::ObjectPtr object = new TestI(); - adapter->add(object, Ice::stringToIdentity(communicator()->getProperties()->getProperty("Identity"))); - shutdownOnInterrupt(); + Ice::CommunicatorHolder communicator = initialize(argc, argv); + Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); + adapter->add(new TestI(), Ice::stringToIdentity(communicator->getProperties()->getProperty("Identity"))); try { adapter->activate(); @@ -34,14 +33,7 @@ Server::run(int, char**) catch(const Ice::ObjectAdapterDeactivatedException&) { } - communicator()->waitForShutdown(); - ignoreInterrupt(); - return EXIT_SUCCESS; + communicator->waitForShutdown(); } -int -main(int argc, char* argv[]) -{ - Server app; - return app.main(argc, argv); -} +DEFINE_TEST(Server) diff --git a/cpp/test/IceGrid/session/AllTests.cpp b/cpp/test/IceGrid/session/AllTests.cpp index 06f25d48dc8..742e2331f10 100644 --- a/cpp/test/IceGrid/session/AllTests.cpp +++ b/cpp/test/IceGrid/session/AllTests.cpp @@ -11,7 +11,7 @@ #include <Ice/Ice.h> #include <IceGrid/IceGrid.h> #include <Glacier2/Router.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; @@ -478,22 +478,25 @@ void testFailedAndPrintObservers(const char* expr, const char* file, unsigned int line) { ObserverBase::printStack(); - testFailed(expr, file, line); + Test::testFailed(expr, file, line); } #undef test #define test(ex) ((ex) ? ((void)0) : testFailedAndPrintObservers(#ex, __FILE__, __LINE__)) void -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { + Ice::CommunicatorPtr communicator = helper->communicator(); bool encoding10 = communicator->getProperties()->getProperty("Ice.Default.EncodingVersion") == "1.0"; IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::checkedCast( communicator->stringToProxy(communicator->getDefaultLocator()->ice_getIdentity().category + "/Registry")); AdminSessionPrx session = registry->createAdminSession("admin3", "test3"); - session->ice_getConnection()->setACM(registry->getACMTimeout(), IceUtil::None, Ice::ICE_ENUM(ACMHeartbeat, HeartbeatAlways)); + session->ice_getConnection()->setACM(registry->getACMTimeout(), + IceUtil::None, + Ice::ICE_ENUM(ACMHeartbeat, HeartbeatAlways)); AdminPrx admin = session->getAdmin(); test(admin); diff --git a/cpp/test/IceGrid/session/Client.cpp b/cpp/test/IceGrid/session/Client.cpp index 009743a4971..c16cf7c8bd2 100644 --- a/cpp/test/IceGrid/session/Client.cpp +++ b/cpp/test/IceGrid/session/Client.cpp @@ -8,41 +8,26 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - void allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - return EXIT_SUCCESS; -} - -int -main(int argc, char* argv[]) -{ - int status; - Ice::CommunicatorPtr communicator; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->setProperty("Ice.Warn.Connections", "0"); - communicator = Ice::initialize(argc, argv, initData); - communicator->getProperties()->parseCommandLineOptions("", Ice::argsToStringSeq(argc, argv)); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } +public: - if(communicator) - { - communicator->destroy(); - } + void run(int, char**); +}; - return status; +void +Client::run(int argc, char** argv) +{ + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->setProperty("Ice.Warn.Connections", "0"); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + communicator->getProperties()->parseCommandLineOptions("", Ice::argsToStringSeq(argc, argv)); + void allTests(Test::TestHelper*); + allTests(this); } + +DEFINE_TEST(Client) diff --git a/cpp/test/IceGrid/session/PermissionsVerifier.cpp b/cpp/test/IceGrid/session/PermissionsVerifier.cpp index 71d7732c284..00031f39cc8 100644 --- a/cpp/test/IceGrid/session/PermissionsVerifier.cpp +++ b/cpp/test/IceGrid/session/PermissionsVerifier.cpp @@ -11,7 +11,7 @@ #include <Glacier2/PermissionsVerifier.h> #include <IceSSL/Plugin.h> #include <Test.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; @@ -26,30 +26,30 @@ public: { throw Test::ExtendedPermissionDeniedException("reason"); } - return (userId == "admin1" && passwd == "test1") || (userId == "admin2" && passwd == "test2") || - (userId == "admin3" && passwd == "test3"); + return (userId == "admin1" && passwd == "test1") || + (userId == "admin2" && passwd == "test2") || + (userId == "admin3" && passwd == "test3"); } }; -class PermissionsVerifierServer : public Ice::Application +class PermissionsVerifierServer : public Test::TestHelper { public: - virtual int run(int, char*[]) - { - Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("PermissionsVerifier"); - adapter->add(new AdminPermissionsVerifierI, Ice::stringToIdentity("AdminPermissionsVerifier")); - adapter->activate(); - communicator()->waitForShutdown(); - return EXIT_SUCCESS; - } + void run(int, char**); }; -int -main(int argc, char* argv[]) +void +PermissionsVerifierServer::run(int argc, char** argv) { - PermissionsVerifierServer app; - Ice::InitializationData initData = getTestInitData(argc, argv); - initData.properties->parseCommandLineOptions("", Ice::argsToStringSeq(argc, argv)); - return app.main(argc, argv, initData); + shutdownOnInterrupt(); + Ice::PropertiesPtr properties = createTestProperties(argc, argv); + properties->parseCommandLineOptions("", Ice::argsToStringSeq(argc, argv)); + Ice::CommunicatorHolder communicator = initialize(argc, argv, properties); + Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("PermissionsVerifier"); + adapter->add(new AdminPermissionsVerifierI, Ice::stringToIdentity("AdminPermissionsVerifier")); + adapter->activate(); + communicator->waitForShutdown(); } + +DEFINE_TEST(PermissionsVerifierServer) diff --git a/cpp/test/IceGrid/session/Server.cpp b/cpp/test/IceGrid/session/Server.cpp index 7256a51859b..729e99e0e43 100644 --- a/cpp/test/IceGrid/session/Server.cpp +++ b/cpp/test/IceGrid/session/Server.cpp @@ -10,7 +10,7 @@ #include <Ice/Ice.h> #include <Glacier2/PermissionsVerifier.h> #include <IceSSL/Plugin.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; @@ -53,25 +53,25 @@ public: } }; -class Server : public Ice::Application +class Server : public Test::TestHelper { public: - virtual int run(int argc, char* argv[]); + void run(int, char**); }; -int -Server::run(int, char**) +void +Server::run(int argc, char** argv) { - Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("Server"); - if(communicator()->getProperties()->getPropertyAsInt("AddPermissionsVerifiers") > 0) + Ice::CommunicatorHolder communicator = initialize(argc, argv); + Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("Server"); + if(communicator->getProperties()->getPropertyAsInt("AddPermissionsVerifiers") > 0) { adapter->add(new ClientPermissionsVerifierI(), Ice::stringToIdentity("ClientPermissionsVerifier")); adapter->add(new SSLPermissionsVerifierI(), Ice::stringToIdentity("SSLPermissionsVerifier")); } adapter->activate(); - shutdownOnInterrupt(); try { adapter->activate(); @@ -79,15 +79,7 @@ Server::run(int, char**) catch(const Ice::ObjectAdapterDeactivatedException&) { } - communicator()->waitForShutdown(); - ignoreInterrupt(); - return EXIT_SUCCESS; + communicator->waitForShutdown(); } -int -main(int argc, char* argv[]) -{ - Server app; - int rc = app.main(argc, argv); - return rc; -} +DEFINE_TEST(Server) diff --git a/cpp/test/IceGrid/simple/AllTests.cpp b/cpp/test/IceGrid/simple/AllTests.cpp index 17e0ef06625..cc339dd8ac9 100644 --- a/cpp/test/IceGrid/simple/AllTests.cpp +++ b/cpp/test/IceGrid/simple/AllTests.cpp @@ -10,15 +10,16 @@ #include <IceUtil/IceUtil.h> #include <Ice/Ice.h> #include <IceGrid/IceGrid.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; using namespace Test; void -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { + Ice::CommunicatorPtr communicator = helper->communicator(); cout << "testing stringToProxy... " << flush; Ice::ObjectPrxPtr base = communicator->stringToProxy("test @ TestAdapter"); test(base); @@ -178,7 +179,7 @@ allTests(const Ice::CommunicatorPtr& communicator) intf = " --interface \"" + intf + "\""; } ostringstream port; - port << getTestPort(initData.properties, 99); + port << TestHelper::getTestPort(initData.properties, 99); initData.properties->setProperty("IceLocatorDiscovery.Lookup", "udp -h " + multicast + " --interface unknown:" + "udp -h " + multicast + " -p " + port.str() + intf); @@ -208,8 +209,9 @@ allTests(const Ice::CommunicatorPtr& communicator) } void -allTestsWithDeploy(const Ice::CommunicatorPtr& communicator) +allTestsWithDeploy(Test::TestHelper* helper) { + Ice::CommunicatorPtr communicator = helper->communicator(); cout << "testing stringToProxy... " << flush; Ice::ObjectPrxPtr base = communicator->stringToProxy("test @ TestAdapter"); test(base); diff --git a/cpp/test/IceGrid/simple/Client.cpp b/cpp/test/IceGrid/simple/Client.cpp index ec2cafcabba..e1414cda209 100644 --- a/cpp/test/IceGrid/simple/Client.cpp +++ b/cpp/test/IceGrid/simple/Client.cpp @@ -9,15 +9,27 @@ #include <Ice/Ice.h> #include <IceUtil/IceUtil.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; using namespace Test; -int -run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { +public: + + void run(int, char**); +}; + +void +Client::run(int argc, char** argv) +{ +#ifdef ICE_STATIC_LIBS + Ice::registerIceLocatorDiscovery(false); +#endif + Ice::CommunicatorHolder communicator = initialize(argc, argv); + bool withDeploy = false; for(int i = 1; i < argc; ++i) @@ -31,46 +43,14 @@ run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator) if(!withDeploy) { - void allTests(const Ice::CommunicatorPtr&); - allTests(communicator); + void allTests(Test::TestHelper*); + allTests(this); } else { - void allTestsWithDeploy(const Ice::CommunicatorPtr&); - allTestsWithDeploy(communicator); + void allTestsWithDeploy(Test::TestHelper*); + allTestsWithDeploy(this); } - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); - Ice::registerIceLocatorDiscovery(false); -#endif - int status; - - Ice::CommunicatorPtr communicator; - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Client) diff --git a/cpp/test/IceGrid/simple/Makefile.mk b/cpp/test/IceGrid/simple/Makefile.mk index 1c8fcbfe6fc..8fc07a2b020 100644 --- a/cpp/test/IceGrid/simple/Makefile.mk +++ b/cpp/test/IceGrid/simple/Makefile.mk @@ -7,6 +7,6 @@ # # ********************************************************************** -$(test)_dependencies = IceLocatorDiscovery IceGrid Glacier2 Ice TestCommon +$(test)_dependencies = IceLocatorDiscovery IceGrid Glacier2 TestCommon IceSSL Ice tests += $(test) diff --git a/cpp/test/IceGrid/simple/Server.cpp b/cpp/test/IceGrid/simple/Server.cpp index ad8bd7c6b65..9bc917e1bd5 100644 --- a/cpp/test/IceGrid/simple/Server.cpp +++ b/cpp/test/IceGrid/simple/Server.cpp @@ -9,30 +9,26 @@ #include <Ice/Ice.h> #include <TestI.h> +#include <TestHelper.h> using namespace std; -class Server : public Ice::Application +class Server : public Test::TestHelper { public: - virtual int run(int argc, char* argv[]); - + void run(int, char**); }; -int -Server::run(int argc, char* argv[]) +void +Server::run(int argc, char** argv) { - Ice::StringSeq args = Ice::argsToStringSeq(argc, argv); - args = communicator()->getProperties()->parseCommandLineOptions("TestAdapter", args); - Ice::stringSeqToArgs(args, argc, argv); + Ice::CommunicatorHolder communicator = initialize(argc, argv); - Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("TestAdapter"); - Ice::ObjectPtr object = ICE_MAKE_SHARED(TestI); - string id = communicator()->getProperties()->getPropertyWithDefault("Identity", "test"); - adapter->add(object, Ice::stringToIdentity(id)); + Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); + string id = communicator->getProperties()->getPropertyWithDefault("Identity", "test"); + adapter->add(ICE_MAKE_SHARED(TestI), Ice::stringToIdentity(id)); - shutdownOnInterrupt(); try { adapter->activate(); @@ -40,19 +36,7 @@ Server::run(int argc, char* argv[]) catch(const Ice::ObjectAdapterDeactivatedException&) { } - communicator()->waitForShutdown(); - ignoreInterrupt(); - return EXIT_SUCCESS; + communicator->waitForShutdown(); } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - Server app; - int rc = app.main(argc, argv); - return rc; -} +DEFINE_TEST(Server) diff --git a/cpp/test/IceGrid/update/AllTests.cpp b/cpp/test/IceGrid/update/AllTests.cpp index 301d7ad036b..a87c6d8d046 100644 --- a/cpp/test/IceGrid/update/AllTests.cpp +++ b/cpp/test/IceGrid/update/AllTests.cpp @@ -10,7 +10,7 @@ #include <IceUtil/Thread.h> #include <Ice/Ice.h> #include <IceGrid/IceGrid.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; @@ -63,14 +63,17 @@ hasProperty(const CommunicatorDescriptorPtr& desc, const string& name, const str } void -allTests(const Ice::CommunicatorPtr& communicator) +allTests(Test::TestHelper* helper) { + const Ice::CommunicatorPtr& communicator = helper->communicator(); IceGrid::RegistryPrx registry = IceGrid::RegistryPrx::checkedCast( communicator->stringToProxy(communicator->getDefaultLocator()->ice_getIdentity().category + "/Registry")); test(registry); AdminSessionPrx session = registry->createAdminSession("foo", "bar"); - session->ice_getConnection()->setACM(registry->getACMTimeout(), IceUtil::None, Ice::ICE_ENUM(ACMHeartbeat, HeartbeatAlways)); + session->ice_getConnection()->setACM(registry->getACMTimeout(), + IceUtil::None, + Ice::ICE_ENUM(ACMHeartbeat, HeartbeatAlways)); AdminPrx admin = session->getAdmin(); test(admin); diff --git a/cpp/test/IceGrid/update/Client.cpp b/cpp/test/IceGrid/update/Client.cpp index 1e8df96a8ca..33f90f5d9b1 100644 --- a/cpp/test/IceGrid/update/Client.cpp +++ b/cpp/test/IceGrid/update/Client.cpp @@ -8,41 +8,25 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; -int -run(int, char**, const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - void allTests(const Ice::CommunicatorPtr&); - allTests(communicator); - return EXIT_SUCCESS; -} - -int -main(int argc, char* argv[]) -{ - int status; - Ice::CommunicatorPtr communicator; - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - communicator->getProperties()->parseCommandLineOptions("", Ice::argsToStringSeq(argc, argv)); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } +public: - if(communicator) - { - communicator->destroy(); - } + void run(int, char**); +}; - return status; +void +Client::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); + communicator->getProperties()->parseCommandLineOptions("", Ice::argsToStringSeq(argc, argv)); + void allTests(Test::TestHelper*); + allTests(this); } + +DEFINE_TEST(Client) diff --git a/cpp/test/IceGrid/update/Server.cpp b/cpp/test/IceGrid/update/Server.cpp index 4d4c26923d0..319154e55bd 100644 --- a/cpp/test/IceGrid/update/Server.cpp +++ b/cpp/test/IceGrid/update/Server.cpp @@ -9,33 +9,28 @@ #include <Ice/Ice.h> #include <TestI.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; -class Server : public Ice::Application +class Server : public Test::TestHelper { public: - virtual int run(int argc, char* argv[]); + void run(int, char**); }; -int -Server::run(int argc, char* argv[]) +void +Server::run(int argc, char** argv) { - Ice::PropertiesPtr properties = communicator()->getProperties(); - - Ice::StringSeq args = Ice::argsToStringSeq(argc, argv); - args = properties->parseCommandLineOptions("Test", args); - Ice::stringSeqToArgs(args, argc, argv); - + Ice::CommunicatorHolder communicator = initialize(argc, argv); + Ice::PropertiesPtr properties = communicator->getProperties(); string name = properties->getProperty("Ice.ProgramName"); - Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("Server"); + Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("Server"); Ice::ObjectPtr object = new TestI(properties); adapter->add(object, Ice::stringToIdentity(name)); - shutdownOnInterrupt(); try { adapter->activate(); @@ -43,15 +38,7 @@ Server::run(int argc, char* argv[]) catch(const Ice::ObjectAdapterDeactivatedException&) { } - communicator()->waitForShutdown(); - ignoreInterrupt(); - return EXIT_SUCCESS; + communicator->waitForShutdown(); } -int -main(int argc, char* argv[]) -{ - Server app; - int rc = app.main(argc, argv); - return rc; -} +DEFINE_TEST(Server) diff --git a/cpp/test/IceSSL/configuration/AllTests.cpp b/cpp/test/IceSSL/configuration/AllTests.cpp index a6b1564066c..9460b31ac6a 100644 --- a/cpp/test/IceSSL/configuration/AllTests.cpp +++ b/cpp/test/IceSSL/configuration/AllTests.cpp @@ -9,20 +9,22 @@ #include <Ice/Ice.h> #include <IceSSL/IceSSL.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #include <fstream> #include <algorithm> #include <Ice/UniqueRef.h> + #if defined(__APPLE__) -# include <sys/sysctl.h> -# if TARGET_OS_IPHONE != 0 -# include <IceSSL/SecureTransportUtil.h> // For loadCertificateChain -# endif +# include <sys/sysctl.h> +# if TARGET_OS_IPHONE != 0 +# include <IceSSL/SecureTransportUtil.h> // For loadCertificateChain +# endif #elif defined(ICE_OS_UWP) -# include <ppltasks.h> -# include <nserror.h> +# include <ppltasks.h> +# include <nserror.h> + using namespace concurrency; using namespace Platform; using namespace Windows::Foundation; @@ -31,6 +33,7 @@ using namespace Windows::Storage; using namespace Windows::Storage::Streams; using namespace Windows::Security::Cryptography; using namespace Windows::Security::Cryptography::Certificates; + #endif #ifdef ICE_CPP11_MAPPING @@ -40,22 +43,22 @@ using namespace Windows::Security::Cryptography::Certificates; #endif #if defined(__APPLE__) -# define ICE_USE_SECURE_TRANSPORT 1 -#if defined(__APPLE__) && TARGET_OS_IPHONE != 0 -# define ICE_USE_SECURE_TRANSPORT_IOS 1 -#else -# define ICE_USE_SECURE_TRANSPORT_MACOS 1 -#endif +# define ICE_USE_SECURE_TRANSPORT 1 +# if defined(__APPLE__) && TARGET_OS_IPHONE != 0 +# define ICE_USE_SECURE_TRANSPORT_IOS 1 +# else +# define ICE_USE_SECURE_TRANSPORT_MACOS 1 +# endif #elif defined(_WIN32) -# if !defined(ICE_OS_UWP) && !defined(ICE_USE_OPENSSL) -# define ICE_USE_SCHANNEL 1 -# endif +# if !defined(ICE_OS_UWP) && !defined(ICE_USE_OPENSSL) +# define ICE_USE_SCHANNEL 1 +# endif #else -# define ICE_USE_OPENSSL 1 +# define ICE_USE_OPENSSL 1 #endif #if defined(_WIN32) && defined(ICE_USE_OPENSSL) -# include <IceSSL/OpenSSL.h> +# include <IceSSL/OpenSSL.h> #endif using namespace std; @@ -685,8 +688,9 @@ void verify(const IceSSL::CertificatePtr& cert, const IceSSL::CertificatePtr& ca } Test::ServerFactoryPrxPtr -allTests(const CommunicatorPtr& communicator, const string& testDir, bool p12) +allTests(Test::TestHelper* helper, const string& testDir, bool p12) { + Ice::CommunicatorPtr communicator = helper->communicator(); bool elCapitanUpdate2OrLower = false; #ifdef __APPLE__ bool isElCapitanOrGreater = false; @@ -706,7 +710,7 @@ allTests(const CommunicatorPtr& communicator, const string& testDir, bool p12) elCapitanUpdate2OrLower = (majorVersion == 15) && (minorVersion <= 2); } #endif - string factoryRef = "factory:" + getTestEndpoint(communicator, 0, "tcp"); + string factoryRef = "factory:" + helper->getTestEndpoint("tcp"); ObjectPrxPtr base = communicator->stringToProxy(factoryRef); test(base); Test::ServerFactoryPrxPtr factory = ICE_CHECKED_CAST(Test::ServerFactoryPrx, base); diff --git a/cpp/test/IceSSL/configuration/Client.cpp b/cpp/test/IceSSL/configuration/Client.cpp index 16834c0fa0f..16ce7baafc2 100644 --- a/cpp/test/IceSSL/configuration/Client.cpp +++ b/cpp/test/IceSSL/configuration/Client.cpp @@ -9,60 +9,28 @@ #include <Ice/Ice.h> #include <IceSSL/IceSSL.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> #if defined(ICE_USE_OPENSSL) -# include <IceSSL/OpenSSL.h> +# include <IceSSL/OpenSSL.h> #endif -DEFINE_TEST("client") - using namespace std; -int -run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - string testdir; -#if TARGET_OS_IPHONE == 0 - if(argc < 2) - { - cerr << "Usage: " << argv[0] << " testdir" << endl; - return 1; - } - testdir = argv[1]; -#endif +public: - Test::ServerFactoryPrxPtr allTests(const Ice::CommunicatorPtr&, const string&, bool); - - try - { - cerr << "testing with PKCS12 certificates..." << endl; - Test::ServerFactoryPrxPtr factory = allTests(communicator, testdir, true); -#if TARGET_OS_IPHONE == 0 && !defined(ICE_OS_UWP) - cerr << "testing with PEM certificates..." << endl; - factory = allTests(communicator, testdir, false); -#endif - if(factory) - { - factory->shutdown(); - } - } - catch(const IceSSL::CertificateReadException& ex) - { - cout << "couldn't read certificate: " << ex.reason << endl; - return EXIT_FAILURE; - } - catch(const std::exception& ex) + Client() : Test::TestHelper(false) { - cout << "unexpected exception: " << ex.what() << endl; - return EXIT_FAILURE; } - return EXIT_SUCCESS; -} -int -main(int argc, char* argv[]) + void run(int, char**); +}; + +void +Client::run(int argc, char** argv) { // // Explicitly register the IceSSL plugin to test registerIceSSL. The tests @@ -73,29 +41,30 @@ main(int argc, char* argv[]) Ice::registerIceSSL(); #endif -#ifdef ICE_STATIC_LIBS - Ice::registerIceWS(true); -#endif - - int status; - Ice::CommunicatorPtr communicator; - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) + Ice::CommunicatorHolder communicator = initialize(argc, argv); + string testdir; +#if TARGET_OS_IPHONE == 0 + if(argc < 2) { - cerr << ex << endl; - status = EXIT_FAILURE; + ostringstream os; + os << "Usage: " << argv[0] << " testdir"; + throw std::invalid_argument(os.str()); } + testdir = argv[1]; +#endif + + Test::ServerFactoryPrxPtr allTests(Test::TestHelper*, const string&, bool); - if(communicator) + cerr << "testing with PKCS12 certificates..." << endl; + Test::ServerFactoryPrxPtr factory = allTests(this, testdir, true); +#if TARGET_OS_IPHONE == 0 && !defined(ICE_OS_UWP) + cerr << "testing with PEM certificates..." << endl; + factory = allTests(this, testdir, false); +#endif + if(factory) { - communicator->destroy(); + factory->shutdown(); } - - return status; } + +DEFINE_TEST(Client) diff --git a/cpp/test/IceSSL/configuration/Makefile.mk b/cpp/test/IceSSL/configuration/Makefile.mk index 8cc27e3a8a8..f5f70d0b7b2 100644 --- a/cpp/test/IceSSL/configuration/Makefile.mk +++ b/cpp/test/IceSSL/configuration/Makefile.mk @@ -7,7 +7,7 @@ # # ********************************************************************** -$(test)_dependencies = IceSSL Ice TestCommon +$(test)_dependencies = TestCommon IceSSL Ice # # Disable var tracking assignments for Linux with this test diff --git a/cpp/test/IceSSL/configuration/Server.cpp b/cpp/test/IceSSL/configuration/Server.cpp index 51237ea3e77..0cd538506a1 100644 --- a/cpp/test/IceSSL/configuration/Server.cpp +++ b/cpp/test/IceSSL/configuration/Server.cpp @@ -9,68 +9,45 @@ #include <Ice/Ice.h> #include <TestI.h> -#include <TestCommon.h> +#include <TestHelper.h> #if defined(ICE_USE_OPENSSL) # include <IceSSL/OpenSSL.h> #endif -DEFINE_TEST("server") - using namespace std; -int -run(int argc, char** argv, const Ice::CommunicatorPtr& communicator) +class Server : public Test::TestHelper { +public: + + void run(int, char**); +}; + +void +Server::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); string testdir; #if !defined(__APPLE__) || TARGET_OS_IPHONE == 0 if(argc < 2) { - cerr << "Usage: " << argv[0] << " testdir" << endl; - return 1; + ostringstream os; + os << "Usage: " << argv[0] << " testdir"; + throw invalid_argument(os.str()); } testdir = string(argv[1]) + "/../certs"; #else testdir = "certs"; #endif - communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint(communicator, 0, "tcp")); + communicator->getProperties()->setProperty("TestAdapter.Endpoints", getTestEndpoint("tcp")); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); Ice::Identity id = Ice::stringToIdentity("factory"); adapter->add(ICE_MAKE_SHARED(ServerFactoryI, testdir), id); adapter->activate(); - TEST_READY + serverReady(); communicator->waitForShutdown(); - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ -#ifdef ICE_STATIC_LIBS - Ice::registerIceSSL(false); - Ice::registerIceWS(true); -#endif - - int status; - Ice::CommunicatorPtr communicator; - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = Ice::initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Server) diff --git a/cpp/test/IceSSL/configuration/TestI.cpp b/cpp/test/IceSSL/configuration/TestI.cpp index dfd127edd0f..f8e7c460d45 100644 --- a/cpp/test/IceSSL/configuration/TestI.cpp +++ b/cpp/test/IceSSL/configuration/TestI.cpp @@ -10,7 +10,7 @@ #include <Ice/Ice.h> #include <IceUtil/Thread.h> #include <TestI.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <IceSSL/Plugin.h> #include <IceSSL/ConnectionInfo.h> diff --git a/cpp/test/IceStorm/federation/Publisher.cpp b/cpp/test/IceStorm/federation/Publisher.cpp index 3bb14c51efa..fac42076f3d 100644 --- a/cpp/test/IceStorm/federation/Publisher.cpp +++ b/cpp/test/IceStorm/federation/Publisher.cpp @@ -9,7 +9,7 @@ #include <Ice/Ice.h> #include <IceStorm/IceStorm.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Event.h> using namespace std; @@ -17,101 +17,77 @@ using namespace Ice; using namespace IceStorm; using namespace Test; -int -run(int, char* argv[], const CommunicatorPtr& communicator) +class Publisher : public Test::TestHelper { +public: + + void run(int, char**); +}; + +void +Publisher::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); PropertiesPtr properties = communicator->getProperties(); - const char* managerProxyProperty = "IceStormAdmin.TopicManager.Default"; - string managerProxy = properties->getProperty(managerProxyProperty); + const string managerProxy = properties->getProperty("IceStormAdmin.TopicManager.Default"); if(managerProxy.empty()) { - cerr << argv[0] << ": property `" << managerProxyProperty << "' is not set" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": `IceStormAdmin.TopicManager.Default' is not set"; + throw runtime_error(os.str()); } ObjectPrx base = communicator->stringToProxy(managerProxy); IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast(base); if(!manager) { - cerr << argv[0] << ": `" << managerProxy << "' is not running" << endl; - return EXIT_FAILURE; - } - - TopicPrx fed1; - try - { - fed1 = manager->retrieve("fed1"); - } - catch(const NoSuchTopic& e) - { - cerr << argv[0] << ": NoSuchTopic: " << e.name << endl; - return EXIT_FAILURE; - - } - - TopicPrx fed2; - try - { - fed2 = manager->retrieve("fed2"); + ostringstream os; + os << argv[0] << ": `" << managerProxy << "' is not running"; + throw runtime_error(os.str()); } - catch(const NoSuchTopic& e) - { - cerr << argv[0] << ": NoSuchTopic: " << e.name << endl; - return EXIT_FAILURE; - } - - TopicPrx fed3; - try - { - fed3 = manager->retrieve("fed3"); - } - catch(const NoSuchTopic& e) - { - cerr << argv[0] << ": NoSuchTopic: " << e.name << endl; - return EXIT_FAILURE; - - } + TopicPrx fed1 = manager->retrieve("fed1"); + TopicPrx fed2 = manager->retrieve("fed2"); + TopicPrx fed3 = manager->retrieve("fed3"); EventPrx eventFed1 = EventPrx::uncheckedCast(fed1->getPublisher()->ice_oneway()); EventPrx eventFed2 = EventPrx::uncheckedCast(fed2->getPublisher()->ice_oneway()); EventPrx eventFed3 = EventPrx::uncheckedCast(fed3->getPublisher()->ice_oneway()); Ice::Context context; - int i; context["cost"] = "0"; - for(i = 0; i < 10; ++i) + for(int i = 0; i < 10; ++i) { eventFed1->pub("fed1:0", context); } context["cost"] = "10"; - for(i = 0; i < 10; ++i) + for(int i = 0; i < 10; ++i) { eventFed1->pub("fed1:10", context); } context["cost"] = "15"; - for(i = 0; i < 10; ++i) + for(int i = 0; i < 10; ++i) { eventFed1->pub("fed1:15", context); } context["cost"] = "0"; - for(i = 0; i < 10; ++i) + for(int i = 0; i < 10; ++i) { eventFed2->pub("fed2:0", context); } context["cost"] = "5"; - for(i = 0; i < 10; ++i) + for(int i = 0; i < 10; ++i) { eventFed2->pub("fed2:5", context); } context["cost"] = "0"; - for(i = 0; i < 10; ++i) + for(int i = 0; i < 10; ++i) { eventFed3->pub("fed3:0", context); } @@ -123,31 +99,6 @@ run(int, char* argv[], const CommunicatorPtr& communicator) EventPrx::uncheckedCast(eventFed1->ice_twoway())->ice_ping(); EventPrx::uncheckedCast(eventFed2->ice_twoway())->ice_ping(); EventPrx::uncheckedCast(eventFed3->ice_twoway())->ice_ping(); - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ - int status; - CommunicatorPtr communicator; - InitializationData initData = getTestInitData(argc, argv); - try - { - communicator = initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Publisher) diff --git a/cpp/test/IceStorm/federation/Subscriber.cpp b/cpp/test/IceStorm/federation/Subscriber.cpp index 333cb3f3c7e..7f75d6e6a95 100644 --- a/cpp/test/IceStorm/federation/Subscriber.cpp +++ b/cpp/test/IceStorm/federation/Subscriber.cpp @@ -12,7 +12,7 @@ #include <Event.h> #include <IceUtil/Mutex.h> #include <IceUtil/MutexPtrLock.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace Ice; @@ -23,19 +23,14 @@ class EventI : public Event { public: - EventI(const CommunicatorPtr& communicator) : - _communicator(communicator) - { - } - virtual void - pub(const string&, const Ice::Current&) + pub(const string&, const Ice::Current& current) { IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(_countMutex); if(++_count == 30 + 40 + 30) { - _communicator->shutdown(); + current.adapter->getCommunicator()->shutdown(); } } @@ -43,8 +38,6 @@ public: private: - CommunicatorPtr _communicator; - static int _count; }; @@ -83,13 +76,20 @@ usage(const char* appName) cerr << "Options:\n" "-h, --help Show this message.\n" - "-b Use batch reliability.\n" - ; + "-b Use batch reliability.\n"; } -int -run(int argc, char* argv[], const CommunicatorPtr& communicator) +class Subscriber : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Subscriber::run(int argc, char** argv) { + Ice::CommunicatorHolder communicator = initialize(argc, argv); bool batch = false; int idx = 1; @@ -108,44 +108,40 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) else if(strcmp(argv[idx], "-h") == 0 || strcmp(argv[idx], "--help") == 0) { usage(argv[0]); - return EXIT_SUCCESS; + return; } else if(argv[idx][0] == '-') { - cerr << argv[0] << ": unknown option `" << argv[idx] << "'" << endl; usage(argv[0]); - return EXIT_FAILURE; + ostringstream os; + os << argv[0] <<": unknown option `" << argv[idx] << "'"; + throw invalid_argument(os.str()); } } PropertiesPtr properties = communicator->getProperties(); - const char* managerProxyProperty = "IceStormAdmin.TopicManager.Default"; - string managerProxy = properties->getProperty(managerProxyProperty); + string managerProxy = properties->getProperty("IceStormAdmin.TopicManager.Default"); if(managerProxy.empty()) { - cerr << argv[0] << ": property `" << managerProxyProperty << "' is not set" << endl; - return EXIT_FAILURE; + throw runtime_error("property `IceStormAdmin.TopicManager.Default' is not set"); } ObjectPrx base = communicator->stringToProxy(managerProxy); IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast(base); if(!manager) { - cerr << argv[0] << ": `" << managerProxy << "' is not running" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": `" << managerProxy << "' is not running"; + throw runtime_error(os.str()); } ObjectAdapterPtr adapter = communicator->createObjectAdapterWithEndpoints("SubscriberAdapter", "default"); - EventIPtr eventFed1 = new EventI(communicator); - EventIPtr eventFed2 = new EventI(communicator); - EventIPtr eventFed3 = new EventI(communicator); - // // Activate the servants. // - ObjectPrx objFed1 = adapter->addWithUUID(eventFed1); - ObjectPrx objFed2 = adapter->addWithUUID(eventFed2); - ObjectPrx objFed3 = adapter->addWithUUID(eventFed3); + ObjectPrx objFed1 = adapter->addWithUUID(new EventI()); + ObjectPrx objFed2 = adapter->addWithUUID(new EventI()); + ObjectPrx objFed3 = adapter->addWithUUID(new EventI()); IceStorm::QoS qos; if(batch) @@ -161,21 +157,9 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) objFed3 = objFed1->ice_oneway(); } - TopicPrx fed1; - TopicPrx fed2; - TopicPrx fed3; - - try - { - fed1 = manager->retrieve("fed1"); - fed2 = manager->retrieve("fed2"); - fed3 = manager->retrieve("fed3"); - } - catch(const IceStorm::NoSuchTopic& e) - { - cerr << argv[0] << ": NoSuchTopic: " << e.name << endl; - return EXIT_FAILURE; - } + TopicPrx fed1 = manager->retrieve("fed1"); + TopicPrx fed2 = manager->retrieve("fed2"); + TopicPrx fed3 = manager->retrieve("fed3"); fed1->subscribeAndGetPublisher(qos, objFed1); fed2->subscribeAndGetPublisher(qos, objFed2); @@ -187,31 +171,6 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) fed1->unsubscribe(objFed1); fed2->unsubscribe(objFed2); fed3->unsubscribe(objFed3); - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ - int status; - CommunicatorPtr communicator; - InitializationData initData = getTestInitData(argc, argv); - try - { - communicator = initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Subscriber) diff --git a/cpp/test/IceStorm/federation2/Publisher.cpp b/cpp/test/IceStorm/federation2/Publisher.cpp index bd7e5230192..e88a394e9f4 100644 --- a/cpp/test/IceStorm/federation2/Publisher.cpp +++ b/cpp/test/IceStorm/federation2/Publisher.cpp @@ -12,58 +12,43 @@ #include <Ice/Ice.h> #include <IceStorm/IceStorm.h> #include <Event.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace Ice; using namespace IceStorm; using namespace Test; -int -run(int argc, char* argv[], const CommunicatorPtr& communicator) +class Publisher : public Test::TestHelper { +public: + + void run(int, char**); +}; + +void +Publisher::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); IceUtilInternal::Options opts; opts.addOpt("", "count", IceUtilInternal::Options::NeedArg); - - try - { - opts.parse(argc, (const char**)argv); - } - catch(const IceUtilInternal::BadOptException& e) - { - cerr << argv[0] << ": " << e.reason << endl; - return EXIT_FAILURE; - } + opts.parse(argc, (const char**)argv); PropertiesPtr properties = communicator->getProperties(); - const char* managerProxyProperty = "IceStormAdmin.TopicManager.Default"; - string managerProxy = properties->getProperty(managerProxyProperty); + string managerProxy = properties->getProperty("IceStormAdmin.TopicManager.Default"); if(managerProxy.empty()) { - cerr << argv[0] << ": property `" << managerProxyProperty << "' is not set" << endl; - return EXIT_FAILURE; + throw runtime_error("property `IceStormAdmin.TopicManager.Default' is not set"); } ObjectPrx base = communicator->stringToProxy(managerProxy); IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast(base); if(!manager) { - cerr << argv[0] << ": `" << managerProxy << "' is not running" << endl; - return EXIT_FAILURE; - } - - TopicPrx fed1; - try - { - fed1 = manager->retrieve("fed1"); - } - catch(const NoSuchTopic& e) - { - cerr << argv[0] << ": NoSuchTopic: " << e.name << endl; - return EXIT_FAILURE; - + throw runtime_error("`" + managerProxy + "' is not running"); } + TopicPrx fed1 = manager->retrieve("fed1"); EventPrx eventFed1 = EventPrx::uncheckedCast(fed1->getPublisher()->ice_oneway()); string arg = opts.optArg("count"); @@ -92,31 +77,6 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) --count; IceUtil::ThreadControl::sleep(IceUtil::Time::seconds(1)); } - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ - int status; - CommunicatorPtr communicator; - InitializationData initData = getTestInitData(argc, argv); - try - { - communicator = initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Publisher) diff --git a/cpp/test/IceStorm/federation2/Subscriber.cpp b/cpp/test/IceStorm/federation2/Subscriber.cpp index 0ad8f5fa1c8..47d3e707ebc 100644 --- a/cpp/test/IceStorm/federation2/Subscriber.cpp +++ b/cpp/test/IceStorm/federation2/Subscriber.cpp @@ -12,9 +12,10 @@ #include <Event.h> #include <IceUtil/Mutex.h> #include <IceUtil/MutexPtrLock.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <fcntl.h> + #ifdef _WIN32 # include <io.h> #else @@ -31,19 +32,14 @@ class EventI : public Event { public: - EventI(const CommunicatorPtr& communicator) : - _communicator(communicator) - { - } - virtual void - pub(const string&, const Ice::Current&) + pub(const string&, const Ice::Current& current) { IceUtilInternal::MutexPtrLock<IceUtil::Mutex> sync(_countMutex); if(++_count == 10) { - _communicator->shutdown(); + current.adapter->getCommunicator()->shutdown(); } } @@ -51,8 +47,6 @@ public: private: - CommunicatorPtr _communicator; - static int _count; }; @@ -95,9 +89,17 @@ usage(const char* appName) ; } -int -run(int argc, char* argv[], const CommunicatorPtr& communicator) +class Subscriber : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Subscriber::run(int argc, char** argv) { + Ice::CommunicatorHolder communicator = initialize(argc, argv); bool batch = false; int idx = 1; @@ -116,40 +118,41 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) else if(strcmp(argv[idx], "-h") == 0 || strcmp(argv[idx], "--help") == 0) { usage(argv[0]); - return EXIT_SUCCESS; + return; } else if(argv[idx][0] == '-') { - cerr << argv[0] << ": unknown option `" << argv[idx] << "'" << endl; usage(argv[0]); - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": unknown option `" << argv[idx] << "'"; + throw invalid_argument(os.str()); } } PropertiesPtr properties = communicator->getProperties(); - const char* managerProxyProperty = "IceStormAdmin.TopicManager.Default"; - string managerProxy = properties->getProperty(managerProxyProperty); + const string managerProxy = properties->getProperty("IceStormAdmin.TopicManager.Default"); if(managerProxy.empty()) { - cerr << argv[0] << ": property `" << managerProxyProperty << "' is not set" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": property `IceStormAdmin.TopicManager.Default' is not set"; + throw invalid_argument(os.str()); } ObjectPrx base = communicator->stringToProxy(managerProxy); IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast(base); if(!manager) { - cerr << argv[0] << ": `" << managerProxy << "' is not running" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": `" << managerProxy << "' is not running"; + throw invalid_argument(os.str()); } ObjectAdapterPtr adapter = communicator->createObjectAdapterWithEndpoints("SubscriberAdapter", "default"); - EventIPtr eventFed1 = new EventI(communicator); // // Activate the servants. // - ObjectPrx obj = adapter->addWithUUID(eventFed1); + ObjectPrx obj = adapter->addWithUUID(new EventI()); IceStorm::QoS qos; if(batch) @@ -161,17 +164,7 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) obj = obj->ice_oneway(); } - TopicPrx fed1; - - try - { - fed1 = manager->retrieve("fed1"); - } - catch(const IceStorm::NoSuchTopic& e) - { - cerr << argv[0] << ": NoSuchTopic: " << e.name << endl; - return EXIT_FAILURE; - } + TopicPrx fed1 = manager->retrieve("fed1"); fed1->subscribeAndGetPublisher(qos, obj); @@ -180,31 +173,6 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) communicator->waitForShutdown(); fed1->unsubscribe(obj); - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ - int status; - CommunicatorPtr communicator; - InitializationData initData = getTestInitData(argc, argv); - try - { - communicator = initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Subscriber) diff --git a/cpp/test/IceStorm/rep1/Publisher.cpp b/cpp/test/IceStorm/rep1/Publisher.cpp index f3ccb3d5d2c..417da9bb57c 100644 --- a/cpp/test/IceStorm/rep1/Publisher.cpp +++ b/cpp/test/IceStorm/rep1/Publisher.cpp @@ -11,7 +11,7 @@ #include <IceUtil/Options.h> #include <IceUtil/IceUtil.h> #include <IceStorm/IceStorm.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Single.h> using namespace std; @@ -19,9 +19,17 @@ using namespace Ice; using namespace IceStorm; using namespace Test; -int -run(int argc, char* argv[], const CommunicatorPtr& communicator) +class Publisher : public Test::TestHelper { +public: + + void run(int, char**); +}; + +void +Publisher::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); IceUtilInternal::Options opts; opts.addOpt("", "cycle"); @@ -31,25 +39,27 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) } catch(const IceUtilInternal::BadOptException& e) { - cerr << argv[0] << ": " << e.reason << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": " << e.reason; + throw invalid_argument(os.str()); } PropertiesPtr properties = communicator->getProperties(); - const char* managerProxyProperty = "IceStormAdmin.TopicManager.Default"; - string managerProxy = properties->getProperty(managerProxyProperty); + string managerProxy = properties->getProperty("IceStormAdmin.TopicManager.Default"); if(managerProxy.empty()) { - cerr << argv[0] << ": property `" << managerProxyProperty << "' is not set" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": property `IceStormAdmin.TopicManager.Default' is not set"; + throw invalid_argument(os.str()); } IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast( communicator->stringToProxy(managerProxy)); if(!manager) { - cerr << argv[0] << ": `" << managerProxy << "' is not running" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": `" << managerProxy << "' is not running"; + throw invalid_argument(os.str()); } TopicPrx topic; @@ -68,8 +78,9 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) } catch(const IceStorm::NoSuchTopic& e) { - cerr << argv[0] << ": NoSuchTopic: " << e.name << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": NoSuchTopic: " << e.name; + throw invalid_argument(os.str()); } } assert(topic); @@ -94,8 +105,9 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) } if(single.size() <= 1) { - cerr << argv[0] << ": Not enough endpoints in publisher proxy" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": Not enough endpoints in publisher proxy"; + throw invalid_argument(os.str()); } int which = 0; for(int i = 0; i < 1000; ++i) @@ -112,31 +124,6 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) single->event(i); } } - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ - int status; - CommunicatorPtr communicator; - InitializationData initData = getTestInitData(argc, argv); - try - { - communicator = initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Publisher) diff --git a/cpp/test/IceStorm/rep1/Sub.cpp b/cpp/test/IceStorm/rep1/Sub.cpp index 0f4f920358b..2b6d468538b 100644 --- a/cpp/test/IceStorm/rep1/Sub.cpp +++ b/cpp/test/IceStorm/rep1/Sub.cpp @@ -12,7 +12,7 @@ #include <Ice/Ice.h> #include <IceStorm/IceStorm.h> #include <Single.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace Ice; @@ -27,9 +27,17 @@ public: virtual void event(int, const Current&) {} }; -int -run(int argc, char* argv[], const CommunicatorPtr& communicator) +class Sub : public Test::TestHelper { +public: + + void run(int, char**); +}; + +void +Sub::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); IceUtilInternal::Options opts; opts.addOpt("", "id", IceUtilInternal::Options::NeedArg); opts.addOpt("", "unsub"); @@ -40,39 +48,32 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) } catch(const IceUtilInternal::BadOptException& e) { - cerr << argv[0] << ": " << e.reason << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": " << e.reason; + throw invalid_argument(os.str()); } PropertiesPtr properties = communicator->getProperties(); - const char* managerProxyProperty = "IceStormAdmin.TopicManager.Default"; - string managerProxy = properties->getProperty(managerProxyProperty); + string managerProxy = properties->getProperty("IceStormAdmin.TopicManager.Default"); if(managerProxy.empty()) { - cerr << argv[0] << ": property `" << managerProxyProperty << "' is not set" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": property `IceStormAdmin.TopicManager.Default' is not set"; + throw invalid_argument(os.str()); } ObjectPrx base = communicator->stringToProxy(managerProxy); IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast(base); if(!manager) { - cerr << argv[0] << ": `" << managerProxy << "' is not running" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": `" << managerProxy << "' is not running"; + throw invalid_argument(os.str()); } ObjectAdapterPtr adapter = communicator->createObjectAdapterWithEndpoints("SingleAdapter", "default"); - TopicPrx topic; - try - { - topic = manager->retrieve("single"); - } - catch(const IceStorm::NoSuchTopic& e) - { - cerr << argv[0] << ": NoSuchTopic: " << e.name << endl; - return EXIT_FAILURE; - } + TopicPrx topic = manager->retrieve("single"); Ice::ObjectPrx prx = adapter->add(new SingleI(), stringToIdentity(opts.optArg("id"))); if(opts.isSet("unsub")) @@ -85,31 +86,6 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) qos["persistent"] = "true"; topic->subscribeAndGetPublisher(qos, prx); } - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ - int status; - CommunicatorPtr communicator; - InitializationData initData = getTestInitData(argc, argv); - try - { - communicator = initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Sub) diff --git a/cpp/test/IceStorm/rep1/Subscriber.cpp b/cpp/test/IceStorm/rep1/Subscriber.cpp index f46565b3bcc..c97b122b5a3 100644 --- a/cpp/test/IceStorm/rep1/Subscriber.cpp +++ b/cpp/test/IceStorm/rep1/Subscriber.cpp @@ -12,7 +12,7 @@ #include <Ice/Ice.h> #include <IceStorm/IceStorm.h> #include <Single.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace Ice; @@ -72,9 +72,17 @@ private: }; typedef IceUtil::Handle<SingleI> SingleIPtr; -int -run(int argc, char* argv[], const CommunicatorPtr& communicator) +class Subscriber : public Test::TestHelper { +public: + + void run(int, char**); +}; + +void +Subscriber::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); IceUtilInternal::Options opts; opts.addOpt("", "ordered"); opts.addOpt("", "twoway"); @@ -86,25 +94,27 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) } catch(const IceUtilInternal::BadOptException& e) { - cerr << argv[0] << ": " << e.reason << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": " << e.reason; + throw invalid_argument(os.str()); } PropertiesPtr properties = communicator->getProperties(); - const char* managerProxyProperty = "IceStormAdmin.TopicManager.Default"; - string managerProxy = properties->getProperty(managerProxyProperty); + string managerProxy = properties->getProperty("IceStormAdmin.TopicManager.Default"); if(managerProxy.empty()) { - cerr << argv[0] << ": property `" << managerProxyProperty << "' is not set" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": property `IceStormAdmin.TopicManager.Default' is not set"; + throw invalid_argument(os.str()); } ObjectPrx base = communicator->stringToProxy(managerProxy); IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast(base); if(!manager) { - cerr << argv[0] << ": `" << managerProxy << "' is not running" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": `" << managerProxy << "' is not running"; + throw invalid_argument(os.str()); } ObjectAdapterPtr adapter = communicator->createObjectAdapterWithEndpoints("SingleAdapter", "default"); @@ -125,8 +135,9 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) } catch(const IceStorm::NoSuchTopic& e) { - cerr << argv[0] << ": NoSuchTopic: " << e.name << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": NoSuchTopic: " << e.name; + throw invalid_argument(os.str()); } } @@ -142,12 +153,12 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) IceStorm::QoS qos; if(opts.isSet("ordered")) { - sub = new SingleI(communicator, "twoway ordered", events); + sub = new SingleI(communicator.communicator(), "twoway ordered", events); qos["reliability"] = "ordered"; } else { - sub = new SingleI(communicator, "twoway", events); + sub = new SingleI(communicator.communicator(), "twoway", events); } Ice::ObjectPrx prx = adapter->addWithUUID(sub); @@ -177,31 +188,6 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) sub->waitForEvents(); topic->unsubscribe(prx); - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ - int status; - CommunicatorPtr communicator; - InitializationData initData = getTestInitData(argc, argv); - try - { - communicator = initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Subscriber) diff --git a/cpp/test/IceStorm/repgrid/Client.cpp b/cpp/test/IceStorm/repgrid/Client.cpp index 381ef4ec655..b9a0df4170a 100644 --- a/cpp/test/IceStorm/repgrid/Client.cpp +++ b/cpp/test/IceStorm/repgrid/Client.cpp @@ -10,7 +10,7 @@ #include <Ice/Ice.h> #include <IceStorm/IceStorm.h> #include <Single.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace Ice; @@ -56,29 +56,29 @@ private: }; typedef IceUtil::Handle<SingleI> SingleIPtr; -int -run(int, char* argv[], const CommunicatorPtr& communicator) +class Client : public Test::TestHelper { +public: + + void run(int, char**); +}; + +void +Client::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); ObjectPrx base = communicator->stringToProxy("Test.IceStorm/TopicManager"); IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast(base); if(!manager) { - cerr << argv[0] << ": `Test.IceStorm/TopicManager' is not running" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": `Test.IceStorm/TopicManager' is not running"; + throw invalid_argument(os.str()); } ObjectAdapterPtr adapter = communicator->createObjectAdapterWithEndpoints("SingleAdapter", "default:udp"); - TopicPrx topic; - try - { - topic = manager->create("single"); - } - catch(const IceStorm::TopicExists& e) - { - cerr << argv[0] << ": TopicExists: " << e.name << endl; - return EXIT_FAILURE; - } + TopicPrx topic = manager->create("single"); // // Create subscribers with different QoS. @@ -108,31 +108,6 @@ run(int, char* argv[], const CommunicatorPtr& communicator) } sub->waitForEvents(); - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ - int status; - CommunicatorPtr communicator; - InitializationData initData = getTestInitData(argc, argv); - try - { - communicator = initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Client) diff --git a/cpp/test/IceStorm/repstress/Control.cpp b/cpp/test/IceStorm/repstress/Control.cpp index fc2a1bac933..7d01e359834 100644 --- a/cpp/test/IceStorm/repstress/Control.cpp +++ b/cpp/test/IceStorm/repstress/Control.cpp @@ -9,48 +9,32 @@ #include <Ice/Ice.h> #include <Controller.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace Ice; using namespace Test; -int -run(int argc, char* argv[], const CommunicatorPtr& communicator) +class Control : public Test::TestHelper { +public: + + void run(int, char**); +}; + +void +Control::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); if(argc < 2) { - cerr << "Usage: " << argv[0] << " proxy" << endl; - return EXIT_FAILURE; + ostringstream os; + os << "Usage: " << argv[0] << " proxy"; + throw invalid_argument(os.str()); } ControllerPrx control = ControllerPrx::uncheckedCast(communicator->stringToProxy(argv[1])); control->stop(); - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ - int status; - CommunicatorPtr communicator; - InitializationData initData = getTestInitData(argc, argv); - try - { - communicator = initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Control) diff --git a/cpp/test/IceStorm/repstress/Publisher.cpp b/cpp/test/IceStorm/repstress/Publisher.cpp index e483aa54560..40fd957804f 100644 --- a/cpp/test/IceStorm/repstress/Publisher.cpp +++ b/cpp/test/IceStorm/repstress/Publisher.cpp @@ -12,7 +12,7 @@ #include <IceStorm/IceStorm.h> #include <Single.h> #include <Controller.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace Ice; @@ -81,37 +81,37 @@ private: }; typedef IceUtil::Handle<PublishThread> PublishThreadPtr; -int -run(int, char* argv[], const CommunicatorPtr& communicator) +class Publisher : public Test::TestHelper { +public: + + void run(int, char**); +}; + +void +Publisher::run(int argc, char** argv) +{ + + Ice::CommunicatorHolder communicator = initialize(argc, argv); PropertiesPtr properties = communicator->getProperties(); - const char* managerProxyProperty = "IceStormAdmin.TopicManager.Default"; - string managerProxy = properties->getProperty(managerProxyProperty); + string managerProxy = properties->getProperty("IceStormAdmin.TopicManager.Default"); if(managerProxy.empty()) { - cerr << argv[0] << ": property `" << managerProxyProperty << "' is not set" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": property `IceStormAdmin.TopicManager.Default' is not set"; + throw invalid_argument(os.str()); } IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast( communicator->stringToProxy(managerProxy)); if(!manager) { - cerr << argv[0] << ": `" << managerProxy << "' is not running" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": `" << managerProxy << "' is not running"; + throw invalid_argument(os.str()); } - TopicPrx topic; - try - { - topic = manager->retrieve("single"); - } - catch(const NoSuchTopic& e) - { - cerr << argv[0] << ": NoSuchTopic: " << e.name << endl; - return EXIT_FAILURE; - - } + TopicPrx topic = manager->retrieve("single"); assert(topic); // @@ -132,31 +132,6 @@ run(int, char* argv[], const CommunicatorPtr& communicator) t->destroy(); t->getThreadControl().join(); - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ - int status; - CommunicatorPtr communicator; - InitializationData initData = getTestInitData(argc, argv); - try - { - communicator = initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Publisher) diff --git a/cpp/test/IceStorm/repstress/Subscriber.cpp b/cpp/test/IceStorm/repstress/Subscriber.cpp index 8f94b60b489..1d8ecab37e1 100644 --- a/cpp/test/IceStorm/repstress/Subscriber.cpp +++ b/cpp/test/IceStorm/repstress/Subscriber.cpp @@ -12,7 +12,7 @@ #include <IceStorm/IceStorm.h> #include <Single.h> #include <Controller.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace Ice; @@ -58,38 +58,37 @@ private: }; typedef IceUtil::Handle<SingleI> SingleIPtr; -int -run(int, char* argv[], const CommunicatorPtr& communicator) +class Subscriber : public Test::TestHelper { +public: + + void run(int, char**); +}; + +void +Subscriber::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); PropertiesPtr properties = communicator->getProperties(); - const char* managerProxyProperty = "IceStormAdmin.TopicManager.Default"; - string managerProxy = properties->getProperty(managerProxyProperty); + string managerProxy = properties->getProperty("IceStormAdmin.TopicManager.Default"); if(managerProxy.empty()) { - cerr << argv[0] << ": property `" << managerProxyProperty << "' is not set" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": property `IceStormAdmin.TopicManager.Default' is not set"; + throw invalid_argument(os.str()); } ObjectPrx base = communicator->stringToProxy(managerProxy); IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast(base); if(!manager) { - cerr << argv[0] << ": `" << managerProxy << "' is not running" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": `" << managerProxy << "' is not running"; + throw invalid_argument(os.str()); } ObjectAdapterPtr adapter = communicator->createObjectAdapterWithEndpoints("SingleAdapter", "default"); - - TopicPrx topic; - try - { - topic = manager->retrieve("single"); - } - catch(const IceStorm::NoSuchTopic& e) - { - cerr << argv[0] << ": NoSuchTopic: " << e.name << endl; - return EXIT_FAILURE; - } + TopicPrx topic = manager->retrieve("single"); SingleIPtr sub = new SingleI(); Ice::ObjectPrx prx = adapter->addWithUUID(sub); @@ -123,31 +122,6 @@ run(int, char* argv[], const CommunicatorPtr& communicator) communicator->waitForShutdown(); cout << sub->nevents() << endl; - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ - int status; - CommunicatorPtr communicator; - InitializationData initData = getTestInitData(argc, argv); - try - { - communicator = initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Subscriber) diff --git a/cpp/test/IceStorm/single/Publisher.cpp b/cpp/test/IceStorm/single/Publisher.cpp index 909aaff354b..9bc09cdc08f 100644 --- a/cpp/test/IceStorm/single/Publisher.cpp +++ b/cpp/test/IceStorm/single/Publisher.cpp @@ -9,7 +9,7 @@ #include <Ice/Ice.h> #include <IceStorm/IceStorm.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Single.h> using namespace std; @@ -17,36 +17,36 @@ using namespace Ice; using namespace IceStorm; using namespace Test; -int -run(int, char* argv[], const CommunicatorPtr& communicator) +class Publisher : public Test::TestHelper { +public: + + void run(int, char**); +}; + +void +Publisher::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); PropertiesPtr properties = communicator->getProperties(); - const char* managerProxyProperty = "IceStormAdmin.TopicManager.Default"; - string managerProxy = properties->getProperty(managerProxyProperty); + string managerProxy = properties->getProperty("IceStormAdmin.TopicManager.Default"); if(managerProxy.empty()) { - cerr << argv[0] << ": property `" << managerProxyProperty << "' is not set" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": property `IceStormAdmin.TopicManager.Default' is not set"; + throw invalid_argument(os.str()); } IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast( communicator->stringToProxy(managerProxy)); if(!manager) { - cerr << argv[0] << ": `" << managerProxy << "' is not running" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": `" << managerProxy << "' is not running"; + throw invalid_argument(os.str()); } - TopicPrx topic; - try - { - topic = manager->retrieve("single"); - } - catch(const NoSuchTopic& e) - { - cerr << argv[0] << ": NoSuchTopic: " << e.name << endl; - return EXIT_FAILURE; - } + TopicPrx topic = manager->retrieve("single"); assert(topic); // @@ -58,32 +58,6 @@ run(int, char* argv[], const CommunicatorPtr& communicator) { single->event(i); } - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ - int status; - CommunicatorPtr communicator; - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Publisher) diff --git a/cpp/test/IceStorm/single/Subscriber.cpp b/cpp/test/IceStorm/single/Subscriber.cpp index 4bf4881ce6d..cce387c0b97 100644 --- a/cpp/test/IceStorm/single/Subscriber.cpp +++ b/cpp/test/IceStorm/single/Subscriber.cpp @@ -10,7 +10,7 @@ #include <Ice/Ice.h> #include <IceStorm/IceStorm.h> #include <Single.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace Ice; @@ -21,8 +21,7 @@ class SingleI : public Single, public IceUtil::Monitor<IceUtil::Mutex> { public: - SingleI(const CommunicatorPtr& communicator, const string& name) : - _communicator(communicator), + SingleI(const string& name) : _name(name), _count(0), _last(0) @@ -102,7 +101,6 @@ public: private: - CommunicatorPtr _communicator; const string _name; int _count; int _last; @@ -110,24 +108,33 @@ private: }; typedef IceUtil::Handle<SingleI> SingleIPtr; -int -run(int, char* argv[], const CommunicatorPtr& communicator) +class Subscriber : public Test::TestHelper { +public: + + void run(int, char**); +}; + +void +Subscriber::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); PropertiesPtr properties = communicator->getProperties(); - const char* managerProxyProperty = "IceStormAdmin.TopicManager.Default"; - string managerProxy = properties->getProperty(managerProxyProperty); + string managerProxy = properties->getProperty("IceStormAdmin.TopicManager.Default"); if(managerProxy.empty()) { - cerr << argv[0] << ": property `" << managerProxyProperty << "' is not set" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": property `IceStormAdmin.TopicManager.Default' is not set"; + throw invalid_argument(os.str()); } ObjectPrx base = communicator->stringToProxy(managerProxy); IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast(base); if(!manager) { - cerr << argv[0] << ": `" << managerProxy << "' is not running" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": `" << managerProxy << "' is not running"; + throw invalid_argument(os.str()); } // Use 2 default endpoints to test per-request load balancing @@ -148,16 +155,7 @@ run(int, char* argv[], const CommunicatorPtr& communicator) } } - TopicPrx topic; - try - { - topic = manager->retrieve("single"); - } - catch(const IceStorm::NoSuchTopic& e) - { - cerr << argv[0] << ": NoSuchTopic: " << e.name << endl; - return EXIT_FAILURE; - } + TopicPrx topic = manager->retrieve("single"); // // Test subscriber identity that is too long @@ -182,31 +180,31 @@ run(int, char* argv[], const CommunicatorPtr& communicator) vector<Ice::Identity> subscriberIdentities; { - subscribers.push_back(new SingleI(communicator, "default")); + subscribers.push_back(new SingleI("default")); Ice::ObjectPrx object = adapter->addWithUUID(subscribers.back())->ice_oneway(); subscriberIdentities.push_back(object->ice_getIdentity()); topic->subscribeAndGetPublisher(IceStorm::QoS(), object); } { - subscribers.push_back(new SingleI(communicator, "oneway")); + subscribers.push_back(new SingleI("oneway")); Ice::ObjectPrx object = adapter->addWithUUID(subscribers.back())->ice_oneway(); subscriberIdentities.push_back(object->ice_getIdentity()); topic->subscribeAndGetPublisher(IceStorm::QoS(), object); } { - subscribers.push_back(new SingleI(communicator, "twoway")); + subscribers.push_back(new SingleI("twoway")); Ice::ObjectPrx object = adapter->addWithUUID(subscribers.back()); subscriberIdentities.push_back(object->ice_getIdentity()); topic->subscribeAndGetPublisher(IceStorm::QoS(), object); } { - subscribers.push_back(new SingleI(communicator, "batch")); + subscribers.push_back(new SingleI("batch")); Ice::ObjectPrx object = adapter->addWithUUID(subscribers.back())->ice_batchOneway(); subscriberIdentities.push_back(object->ice_getIdentity()); topic->subscribeAndGetPublisher(IceStorm::QoS(), object); } { - subscribers.push_back(new SingleI(communicator, "twoway ordered")); // Ordered + subscribers.push_back(new SingleI("twoway ordered")); // Ordered IceStorm::QoS qos; qos["reliability"] = "ordered"; Ice::ObjectPrx object = adapter->addWithUUID(subscribers.back()); @@ -215,7 +213,7 @@ run(int, char* argv[], const CommunicatorPtr& communicator) } { - subscribers.push_back(new SingleI(communicator, "per-request load balancing")); + subscribers.push_back(new SingleI("per-request load balancing")); IceStorm::QoS qos; qos["locatorCacheTimeout"] = "10"; qos["connectionCached"] = "0"; @@ -229,7 +227,7 @@ run(int, char* argv[], const CommunicatorPtr& communicator) // packet loss, see bug 1784). communicator->getProperties()->setProperty("UdpAdapter3.ThreadPool.Size", "1"); ObjectAdapterPtr adpt = communicator->createObjectAdapterWithEndpoints("UdpAdapter3", "udp"); - subscribers.push_back(new SingleI(communicator, "datagram")); + subscribers.push_back(new SingleI("datagram")); Ice::ObjectPrx object = adpt->addWithUUID(subscribers.back())->ice_datagram(); subscriberIdentities.push_back(object->ice_getIdentity()); adpt->activate(); @@ -241,7 +239,7 @@ run(int, char* argv[], const CommunicatorPtr& communicator) // packet loss, see bug 1784). communicator->getProperties()->setProperty("UdpAdapter4.ThreadPool.Size", "1"); ObjectAdapterPtr adpt = communicator->createObjectAdapterWithEndpoints("UdpAdapter4", "udp"); - subscribers.push_back(new SingleI(communicator, "batch datagram")); + subscribers.push_back(new SingleI("batch datagram")); Ice::ObjectPrx object = adpt->addWithUUID(subscribers.back())->ice_batchDatagram(); subscriberIdentities.push_back(object->ice_getIdentity()); adpt->activate(); @@ -261,32 +259,6 @@ run(int, char* argv[], const CommunicatorPtr& communicator) { (*p)->waitForEvents(); } - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ - int status; - CommunicatorPtr communicator; - - try - { - Ice::InitializationData initData = getTestInitData(argc, argv); - communicator = initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Subscriber) diff --git a/cpp/test/IceStorm/stress/Publisher.cpp b/cpp/test/IceStorm/stress/Publisher.cpp index 34aca48f552..65cfb870944 100644 --- a/cpp/test/IceStorm/stress/Publisher.cpp +++ b/cpp/test/IceStorm/stress/Publisher.cpp @@ -11,16 +11,24 @@ #include <IceUtil/Options.h> #include <IceStorm/IceStorm.h> #include <Event.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace Ice; using namespace IceStorm; using namespace Test; -int -run(int argc, char* argv[], const CommunicatorPtr& communicator) +class Publisher : public Test::TestHelper { +public: + + void run(int, char**); +}; + +void +Publisher::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); IceUtilInternal::Options opts; opts.addOpt("", "events", IceUtilInternal::Options::NeedArg); opts.addOpt("", "oneway"); @@ -32,8 +40,9 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) } catch(const IceUtilInternal::BadOptException& e) { - cerr << argv[0] << ": " << e.reason << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": " << e.reason; + throw invalid_argument(os.str()); } int events = 1000; @@ -44,8 +53,9 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) } if(events <= 0) { - cerr << argv[0] << ": events must be > 0." << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": events must be > 0."; + throw invalid_argument(os.str()); } bool oneway = opts.isSet("oneway"); @@ -56,29 +66,21 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) string managerProxy = properties->getProperty(managerProxyProperty); if(managerProxy.empty()) { - cerr << argv[0] << ": property `" << managerProxyProperty << "' is not set" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": property `" << managerProxyProperty << "' is not set"; + throw invalid_argument(os.str()); } IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast( communicator->stringToProxy(managerProxy)); if(!manager) { - cerr << argv[0] << ": `" << managerProxy << "' is not running" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": `" << managerProxy << "' is not running"; + throw invalid_argument(os.str()); } - TopicPrx topic; - try - { - topic = manager->retrieve("fed1"); - } - catch(const NoSuchTopic& e) - { - cerr << argv[0] << ": NoSuchTopic: " << e.name << endl; - return EXIT_FAILURE; - - } + TopicPrx topic = manager->retrieve("fed1"); EventPrx twowayProxy = EventPrx::uncheckedCast(topic->getPublisher()->ice_twoway()); EventPrx proxy; @@ -109,31 +111,6 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) // twowayProxy->ice_ping(); } - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ - int status; - CommunicatorPtr communicator; - InitializationData initData = getTestInitData(argc, argv); - try - { - communicator = initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Publisher) diff --git a/cpp/test/IceStorm/stress/Subscriber.cpp b/cpp/test/IceStorm/stress/Subscriber.cpp index 05a37454320..59cfb0fabcd 100644 --- a/cpp/test/IceStorm/stress/Subscriber.cpp +++ b/cpp/test/IceStorm/stress/Subscriber.cpp @@ -16,7 +16,7 @@ #include <Event.h> #include <IceUtil/Mutex.h> #include <IceUtil/MutexPtrLock.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace Ice; @@ -304,9 +304,17 @@ Init init; } -int -run(int argc, char* argv[], const CommunicatorPtr& communicator) +class Subscriber : public Test::TestHelper { +public: + + void run(int, char**); +}; + +void +Subscriber::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); IceUtilInternal::Options opts; opts.addOpt("", "events", IceUtilInternal::Options::NeedArg); opts.addOpt("", "qos", IceUtilInternal::Options::NeedArg, "", IceUtilInternal::Options::Repeat); @@ -321,8 +329,9 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) } catch(const IceUtilInternal::BadOptException& e) { - cerr << argv[0] << ": " << e.reason << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": " << e.reason; + throw invalid_argument(os.str()); } int events = 1000; @@ -333,8 +342,9 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) } if(events <= 0) { - cerr << argv[0] << ": events must be > 0." << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": events must be > 0."; + throw invalid_argument(os.str()); } IceStorm::QoS cmdLineQos; @@ -345,8 +355,9 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) string::size_type off = q->find(","); if(off == string::npos) { - cerr << argv[0] << ": parse error: no , in QoS" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": parse error: no , in QoS"; + throw invalid_argument(os.str()); } cmdLineQos[q->substr(0, off)] = q->substr(off+1); } @@ -364,8 +375,9 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) } if(events <= 0) { - cerr << argv[0] << ": events must be > 0." << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": events must be > 0."; + throw invalid_argument(os.str()); } PropertiesPtr properties = communicator->getProperties(); @@ -373,16 +385,18 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) string managerProxy = properties->getProperty(managerProxyProperty); if(managerProxy.empty()) { - cerr << argv[0] << ": property `" << managerProxyProperty << "' is not set" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": property `" << managerProxyProperty << "' is not set"; + throw invalid_argument(os.str()); } IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast( communicator->stringToProxy(managerProxy)); if(!manager) { - cerr << argv[0] << ": `" << managerProxy << "' is not running" << endl; - return EXIT_FAILURE; + ostringstream os; + os << argv[0] << ": `" << managerProxy << "' is not running"; + throw invalid_argument(os.str()); } vector<Subscription> subs; @@ -395,7 +409,7 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) os << "SubscriberAdapter" << i; Subscription item; item.adapter = communicator->createObjectAdapterWithEndpoints(os.str(), "default"); - item.servant = new ErraticEventI(communicator, events); + item.servant = new ErraticEventI(communicator.communicator(), events); item.qos["reliability"] = "twoway"; subs.push_back(item); } @@ -404,7 +418,7 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) { Subscription item; item.adapter = communicator->createObjectAdapterWithEndpoints("SubscriberAdapter", "default"); - item.servant = new SlowEventI(communicator, events); + item.servant = new SlowEventI(communicator.communicator(), events); item.qos = cmdLineQos; subs.push_back(item); } @@ -414,11 +428,11 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) item1.adapter = communicator->createObjectAdapterWithEndpoints("MaxQueueAdapter", "default"); if(maxQueueDropEvents) { - item1.servant = new MaxQueueEventI(communicator, maxQueueDropEvents, events, false); + item1.servant = new MaxQueueEventI(communicator.communicator(), maxQueueDropEvents, events, false); } else { - item1.servant = new MaxQueueEventI(communicator, maxQueueRemoveSub, events, true); + item1.servant = new MaxQueueEventI(communicator.communicator(), maxQueueRemoveSub, events, true); } item1.qos = cmdLineQos; item1.activate = false; @@ -426,7 +440,7 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) Subscription item2; item2.adapter = communicator->createObjectAdapterWithEndpoints("ControllerAdapter", "default"); - item2.servant = new ControllerEventI(communicator, events, item1.adapter); + item2.servant = new ControllerEventI(communicator.communicator(), events, item1.adapter); item2.qos["reliability"] = "oneway"; subs.push_back(item2); } @@ -438,25 +452,16 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) map<string, string>::const_iterator p = item.qos.find("reliability"); if(p != item.qos.end() && p->second == "ordered") { - item.servant = new OrderEventI(communicator, events); + item.servant = new OrderEventI(communicator.communicator(), events); } else { - item.servant = new CountEventI(communicator, events); + item.servant = new CountEventI(communicator.communicator(), events); } subs.push_back(item); } - TopicPrx topic; - try - { - topic = manager->retrieve("fed1"); - } - catch(const IceStorm::NoSuchTopic& e) - { - cerr << argv[0] << ": NoSuchTopic: " << e.name << endl; - return EXIT_FAILURE; - } + TopicPrx topic = manager->retrieve("fed1"); { for(vector<Subscription>::iterator p = subs.begin(); p != subs.end(); ++p) @@ -509,36 +514,12 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) topic->unsubscribe(p->obj); if(p->servant->count() != events) { - cerr << "expected " << events << " events but got " << p->servant->count() << " events." << endl; - return EXIT_FAILURE; + ostringstream os; + os << "expected " << events << " events but got " << p->servant->count() << " events."; + throw invalid_argument(os.str()); } } } - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ - int status; - CommunicatorPtr communicator; - InitializationData initData = getTestInitData(argc, argv); - try - { - communicator = initialize(argc, argv, initData); - status = run(argc, argv, communicator); - } - catch(const Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - - if(communicator) - { - communicator->destroy(); - } - - return status; -} +DEFINE_TEST(Subscriber) diff --git a/cpp/test/IceUtil/ctrlCHandler/Client.cpp b/cpp/test/IceUtil/ctrlCHandler/Client.cpp index 5527c696aac..05be89e95a2 100644 --- a/cpp/test/IceUtil/ctrlCHandler/Client.cpp +++ b/cpp/test/IceUtil/ctrlCHandler/Client.cpp @@ -7,7 +7,7 @@ // // ********************************************************************** -#include <TestCommon.h> +#include <TestHelper.h> #include <IceUtil/CtrlCHandler.h> #include <IceUtil/Thread.h> #include <IceUtil/Time.h> @@ -20,7 +20,15 @@ void callback(int signal) cout << "Handling signal " << signal << endl; } -int main() +class Client : public Test::TestHelper +{ +public: + + void run(int, char**); +}; + +void +Client::run(int argc, char** argv) { { cout << "First ignore CTRL+C and the like for 10 seconds (try it!)" << endl; @@ -33,7 +41,7 @@ int main() } cout << "And another 10 seconds after ~CtrlCHandler" << endl; ThreadControl::sleep(Time::seconds(10)); - cout << "ok" << endl; - return EXIT_SUCCESS; } + +DEFINE_TEST(Client) diff --git a/cpp/test/IceUtil/inputUtil/Client.cpp b/cpp/test/IceUtil/inputUtil/Client.cpp index 569ee64c3c5..63c18b7436d 100644 --- a/cpp/test/IceUtil/inputUtil/Client.cpp +++ b/cpp/test/IceUtil/inputUtil/Client.cpp @@ -10,7 +10,7 @@ #include <IceUtil/InputUtil.h> #include <IceUtil/StringUtil.h> #include <IceUtil/Options.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <vector> @@ -31,8 +31,15 @@ const Int64 Int64Min = -0x7fffffffffffffffLL-1LL; const Int64 Int64Max = 0x7fffffffffffffffLL; #endif -int -main(int, char**) +class Client : public Test::TestHelper +{ +public: + + virtual void run(int argc, char* argv[]); +}; + +void +Client::run(int, char**) { cout << "testing string-to-64-bit integer conversion... " << flush; @@ -242,6 +249,6 @@ main(int, char**) test(!IceUtilInternal::splitString("a\"b", ":", ss)); } cout << "ok" << endl; - - return EXIT_SUCCESS; } + +DEFINE_TEST(Client) diff --git a/cpp/test/IceUtil/priority/Client.cpp b/cpp/test/IceUtil/priority/Client.cpp index e947d8fa157..47112d2f4ea 100644 --- a/cpp/test/IceUtil/priority/Client.cpp +++ b/cpp/test/IceUtil/priority/Client.cpp @@ -10,8 +10,7 @@ #include <IceUtil/IceUtil.h> #include <stdlib.h> -#include <TestCommon.h> - +#include <TestHelper.h> #include <TestSuite.h> #include <IceUtil/MutexProtocol.h> @@ -36,22 +35,22 @@ getDefaultMutexProtocol() #endif -int -main(int, char**) +class Client : public Test::TestHelper { - try - { - initializeTestSuite(); +public: - for(list<TestBasePtr>::const_iterator p = allTests.begin(); p != allTests.end(); ++p) - { - (*p)->start(); - } - } - catch(const TestFailed& e) + void run(int, char**); +}; + +void +Client::run(int argc, char** argv) +{ + initializeTestSuite(); + + for(list<TestBasePtr>::const_iterator p = allTests.begin(); p != allTests.end(); ++p) { - cout << "test " << e.name << " failed" << endl; - return EXIT_FAILURE; + (*p)->start(); } - return EXIT_SUCCESS; } + +DEFINE_TEST(Client) diff --git a/cpp/test/IceUtil/priority/PriorityInversion.cpp b/cpp/test/IceUtil/priority/PriorityInversion.cpp index 9bd3707066a..a48b47b3d5f 100644 --- a/cpp/test/IceUtil/priority/PriorityInversion.cpp +++ b/cpp/test/IceUtil/priority/PriorityInversion.cpp @@ -15,7 +15,7 @@ #include <IceUtil/RecMutex.h> #include <sstream> -#include <TestCommon.h> +#include <TestHelper.h> #include <vector> #include <map> diff --git a/cpp/test/IceUtil/priority/ThreadPriority.cpp b/cpp/test/IceUtil/priority/ThreadPriority.cpp index 3d28a07f45a..e3771e08321 100644 --- a/cpp/test/IceUtil/priority/ThreadPriority.cpp +++ b/cpp/test/IceUtil/priority/ThreadPriority.cpp @@ -10,7 +10,7 @@ #include <IceUtil/IceUtil.h> #include <ThreadPriority.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace IceUtil; diff --git a/cpp/test/IceUtil/priority/TimerPriority.cpp b/cpp/test/IceUtil/priority/TimerPriority.cpp index 7b5443b8a5b..a3f79a7ebe5 100644 --- a/cpp/test/IceUtil/priority/TimerPriority.cpp +++ b/cpp/test/IceUtil/priority/TimerPriority.cpp @@ -10,7 +10,7 @@ #include <IceUtil/IceUtil.h> #include <IceUtil/Timer.h> #include <TimerPriority.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace IceUtil; diff --git a/cpp/test/IceUtil/sha1/Client.cpp b/cpp/test/IceUtil/sha1/Client.cpp index d3c4b62e4f5..6e47a29045a 100644 --- a/cpp/test/IceUtil/sha1/Client.cpp +++ b/cpp/test/IceUtil/sha1/Client.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/SHA1.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; @@ -75,7 +75,15 @@ string toHex(const string& data) } -int main(int argc, char* argv[]) +class Client : public Test::TestHelper +{ +public: + + virtual void run(int argc, char* argv[]); +}; + +void +Client::run(int argc, char* argv[]) { cout << "Testing sha1 hash computation... "; for(int i = 0; i < itemsSize; ++i) @@ -110,5 +118,6 @@ int main(int argc, char* argv[]) test(item->digest == digest); } cout << "ok" << endl; - return EXIT_SUCCESS; } + +DEFINE_TEST(Client) diff --git a/cpp/test/IceUtil/stacktrace/Client.cpp b/cpp/test/IceUtil/stacktrace/Client.cpp index e5959ae3ae5..642be3cfe8d 100644 --- a/cpp/test/IceUtil/stacktrace/Client.cpp +++ b/cpp/test/IceUtil/stacktrace/Client.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <IceUtil/StringUtil.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <fstream> @@ -96,12 +96,20 @@ splitLines(const string& str) } -int main(int argc, char* argv[]) +class Client : public Test::TestHelper +{ +public: + + virtual void run(int argc, char* argv[]); +}; + +void +Client::run(int argc, char* argv[]) { if(IceUtilInternal::stackTraceImpl() == IceUtilInternal::STNone) { cout << "This Ice build cannot capture stack traces" << endl; - return EXIT_SUCCESS; + return; } bool optimized = false; @@ -163,8 +171,10 @@ int main(int argc, char* argv[]) if(!ifs) { - cout << "cannot open `" << filename << "`, failed!" << endl; - return EXIT_FAILURE; + ostringstream os; + os << "cannot open `" << filename << "`, failed!"; + cout << os.str() << endl; + throw invalid_argument(os.str()); } // Show which template we use: @@ -229,6 +239,6 @@ int main(int argc, char* argv[]) } } cout << "ok" << endl; - - return EXIT_SUCCESS; } + +DEFINE_TEST(Client); diff --git a/cpp/test/IceUtil/stacktrace/StackTrace.debug.Win32 b/cpp/test/IceUtil/stacktrace/StackTrace.debug.Win32 index 0539f10185a..697f9860a23 100644 --- a/cpp/test/IceUtil/stacktrace/StackTrace.debug.Win32 +++ b/cpp/test/IceUtil/stacktrace/StackTrace.debug.Win32 @@ -1,9 +1,10 @@ - 0 IceUtil::Exception::Exception - 1 IceUtil::ExceptionHelper<IceUtil::NullHandleException>::ExceptionHelper - 2 IceUtil::NullHandleException::NullHandleException - 3 `anonymous namespace'::Thrower::fifth - 4 `anonymous namespace'::Thrower::forth - 5 `anonymous namespace'::Thrower::third - 6 `anonymous namespace'::Thrower::second - 7 `anonymous namespace'::Thrower::first - 8 main + 0 IceUtil::Exception::Exception at + 1 IceUtil::ExceptionHelper<IceUtil::NullHandleException>::ExceptionHelper<IceUtil::NullHandleException> at + 2 IceUtil::NullHandleException::NullHandleException at + 3 `anonymous namespace'::Thrower::fifth at + 4 `anonymous namespace'::Thrower::forth at + 5 `anonymous namespace'::Thrower::third at + 6 `anonymous namespace'::Thrower::second at + 7 `anonymous namespace'::Thrower::first at + 8 Client::run at + 9 Test::runTest<Client> at diff --git a/cpp/test/IceUtil/stacktrace/StackTrace.debug.Win64 b/cpp/test/IceUtil/stacktrace/StackTrace.debug.Win64 index 0539f10185a..697f9860a23 100644 --- a/cpp/test/IceUtil/stacktrace/StackTrace.debug.Win64 +++ b/cpp/test/IceUtil/stacktrace/StackTrace.debug.Win64 @@ -1,9 +1,10 @@ - 0 IceUtil::Exception::Exception - 1 IceUtil::ExceptionHelper<IceUtil::NullHandleException>::ExceptionHelper - 2 IceUtil::NullHandleException::NullHandleException - 3 `anonymous namespace'::Thrower::fifth - 4 `anonymous namespace'::Thrower::forth - 5 `anonymous namespace'::Thrower::third - 6 `anonymous namespace'::Thrower::second - 7 `anonymous namespace'::Thrower::first - 8 main + 0 IceUtil::Exception::Exception at + 1 IceUtil::ExceptionHelper<IceUtil::NullHandleException>::ExceptionHelper<IceUtil::NullHandleException> at + 2 IceUtil::NullHandleException::NullHandleException at + 3 `anonymous namespace'::Thrower::fifth at + 4 `anonymous namespace'::Thrower::forth at + 5 `anonymous namespace'::Thrower::third at + 6 `anonymous namespace'::Thrower::second at + 7 `anonymous namespace'::Thrower::first at + 8 Client::run at + 9 Test::runTest<Client> at diff --git a/cpp/test/IceUtil/stacktrace/StackTrace.debug.macOS b/cpp/test/IceUtil/stacktrace/StackTrace.debug.macOS index f974d3cfc51..74c8226d375 100644 --- a/cpp/test/IceUtil/stacktrace/StackTrace.debug.macOS +++ b/cpp/test/IceUtil/stacktrace/StackTrace.debug.macOS @@ -7,5 +7,6 @@ 6 (anonymous namespace)::Thrower::third() in client 7 (anonymous namespace)::Thrower::second() in client 8 (anonymous namespace)::Thrower::first() in client - 9 main in client - 10 start in libdyld.dylib + 9 Client::run(int, char**) in client + 10 int Test::runTest<Client>(int, char**) in client + 11 main in client diff --git a/cpp/test/IceUtil/stacktrace/StackTrace.release-vc140.Win32 b/cpp/test/IceUtil/stacktrace/StackTrace.release-vc140.Win32 index 7290cffd13e..2a6b2950a4d 100644 --- a/cpp/test/IceUtil/stacktrace/StackTrace.release-vc140.Win32 +++ b/cpp/test/IceUtil/stacktrace/StackTrace.release-vc140.Win32 @@ -1,2 +1,3 @@ -0 IceUtil::NullHandleException::NullHandleException -1 main + 0 IceUtil::NullHandleException::NullHandleException at + 1 Client::run at + 2 Test::runTest<Client> at diff --git a/cpp/test/IceUtil/stacktrace/StackTrace.release-vc140.Win64 b/cpp/test/IceUtil/stacktrace/StackTrace.release-vc140.Win64 index 9d2502aaa55..2f928eafe74 100644 --- a/cpp/test/IceUtil/stacktrace/StackTrace.release-vc140.Win64 +++ b/cpp/test/IceUtil/stacktrace/StackTrace.release-vc140.Win64 @@ -1,4 +1,5 @@ 0 IceUtil::Exception::Exception at 1 IceUtil::ExceptionHelper<IceUtil::NullHandleException>::ExceptionHelper<IceUtil::NullHandleException> at 2 IceUtil::NullHandleException::NullHandleException at - 3 main at + 3 Client::run at + 4 Test::runTest<Client> at diff --git a/cpp/test/IceUtil/stacktrace/StackTrace.release.Win32 b/cpp/test/IceUtil/stacktrace/StackTrace.release.Win32 index 06fdff43f80..b4e2f1bb997 100644 --- a/cpp/test/IceUtil/stacktrace/StackTrace.release.Win32 +++ b/cpp/test/IceUtil/stacktrace/StackTrace.release.Win32 @@ -1,3 +1,4 @@ - 0 IceUtil::NullHandleException::NullHandleException - 1 `anonymous namespace'::Thrower::fifth - 2 main + 0 IceUtil::NullHandleException::NullHandleException at + 1 `anonymous namespace'::Thrower::fifth at + 2 Client::run at + 3 Test::runTest<Client> at diff --git a/cpp/test/IceUtil/stacktrace/StackTrace.release.Win64 b/cpp/test/IceUtil/stacktrace/StackTrace.release.Win64 index 2f3132a5134..fdc73ea277e 100644 --- a/cpp/test/IceUtil/stacktrace/StackTrace.release.Win64 +++ b/cpp/test/IceUtil/stacktrace/StackTrace.release.Win64 @@ -1,4 +1,5 @@ 0 IceUtil::Exception::Exception at 1 IceUtil::NullHandleException::NullHandleException at 2 `anonymous namespace'::Thrower::fifth at - 3 main at + 3 Client::run at + 4 Test::runTest<Client> at diff --git a/cpp/test/IceUtil/stacktrace/StackTrace.release.macOS b/cpp/test/IceUtil/stacktrace/StackTrace.release.macOS index 6aa130b8088..2f4ae2a8cd0 100644 --- a/cpp/test/IceUtil/stacktrace/StackTrace.release.macOS +++ b/cpp/test/IceUtil/stacktrace/StackTrace.release.macOS @@ -1,3 +1,3 @@ 0 IceUtil::NullHandleException::NullHandleException(char const*, int) in libIce.3.7.1.dylib - 1 main in client - 2 start in libdyld.dylib + 1 Client::run(int, char**) in client + 2 int Test::runTest<Client>(int, char**) in client diff --git a/cpp/test/IceUtil/thread/AliveTest.cpp b/cpp/test/IceUtil/thread/AliveTest.cpp index e2bd0b9c0c2..11dc98e599e 100644 --- a/cpp/test/IceUtil/thread/AliveTest.cpp +++ b/cpp/test/IceUtil/thread/AliveTest.cpp @@ -9,7 +9,7 @@ #include <IceUtil/IceUtil.h> #include <AliveTest.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace IceUtil; diff --git a/cpp/test/IceUtil/thread/Client.cpp b/cpp/test/IceUtil/thread/Client.cpp index 85f3bf1976d..23464f642d0 100644 --- a/cpp/test/IceUtil/thread/Client.cpp +++ b/cpp/test/IceUtil/thread/Client.cpp @@ -10,28 +10,27 @@ #include <IceUtil/IceUtil.h> #include <stdlib.h> -#include <TestCommon.h> - +#include <TestHelper.h> #include <TestSuite.h> using namespace std; -int -main(int, char**) +class Client : public Test::TestHelper { - try - { - initializeTestSuite(); +public: - for(list<TestBasePtr>::const_iterator p = allTests.begin(); p != allTests.end(); ++p) - { - (*p)->start(); - } - } - catch(const TestFailed& e) + void run(int, char**); +}; + +void +Client::run(int argc, char** argv) +{ + initializeTestSuite(); + + for(list<TestBasePtr>::const_iterator p = allTests.begin(); p != allTests.end(); ++p) { - cout << "test " << e.name << " failed" << endl; - return EXIT_FAILURE; + (*p)->start(); } - return EXIT_SUCCESS; } + +DEFINE_TEST(Client) diff --git a/cpp/test/IceUtil/thread/CountDownLatchTest.cpp b/cpp/test/IceUtil/thread/CountDownLatchTest.cpp index ee4264fa874..7c36b02be0e 100644 --- a/cpp/test/IceUtil/thread/CountDownLatchTest.cpp +++ b/cpp/test/IceUtil/thread/CountDownLatchTest.cpp @@ -11,7 +11,7 @@ #include <IceUtil/CountDownLatch.h> #include <CountDownLatchTest.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace IceUtil; diff --git a/cpp/test/IceUtil/thread/CreateTest.cpp b/cpp/test/IceUtil/thread/CreateTest.cpp index a48580126a1..392a5bbed44 100644 --- a/cpp/test/IceUtil/thread/CreateTest.cpp +++ b/cpp/test/IceUtil/thread/CreateTest.cpp @@ -10,7 +10,7 @@ #include <IceUtil/IceUtil.h> #include <CreateTest.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace IceUtil; diff --git a/cpp/test/IceUtil/thread/MonitorMutexTest.cpp b/cpp/test/IceUtil/thread/MonitorMutexTest.cpp index 731b089b19a..f4d1d3a87ba 100644 --- a/cpp/test/IceUtil/thread/MonitorMutexTest.cpp +++ b/cpp/test/IceUtil/thread/MonitorMutexTest.cpp @@ -10,7 +10,7 @@ #include <IceUtil/IceUtil.h> #include <MonitorMutexTest.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace IceUtil; diff --git a/cpp/test/IceUtil/thread/MonitorRecMutexTest.cpp b/cpp/test/IceUtil/thread/MonitorRecMutexTest.cpp index 88bdc6c25c0..ea1e84f93ca 100644 --- a/cpp/test/IceUtil/thread/MonitorRecMutexTest.cpp +++ b/cpp/test/IceUtil/thread/MonitorRecMutexTest.cpp @@ -10,7 +10,7 @@ #include <IceUtil/IceUtil.h> #include <MonitorRecMutexTest.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace IceUtil; diff --git a/cpp/test/IceUtil/thread/MutexTest.cpp b/cpp/test/IceUtil/thread/MutexTest.cpp index bfa923e2680..cb71a18d695 100644 --- a/cpp/test/IceUtil/thread/MutexTest.cpp +++ b/cpp/test/IceUtil/thread/MutexTest.cpp @@ -10,7 +10,7 @@ #include <IceUtil/IceUtil.h> #include <MutexTest.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace IceUtil; diff --git a/cpp/test/IceUtil/thread/RecMutexTest.cpp b/cpp/test/IceUtil/thread/RecMutexTest.cpp index 582b6d7ec28..93ff74da4a5 100644 --- a/cpp/test/IceUtil/thread/RecMutexTest.cpp +++ b/cpp/test/IceUtil/thread/RecMutexTest.cpp @@ -10,7 +10,7 @@ #include <IceUtil/IceUtil.h> #include <RecMutexTest.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace IceUtil; diff --git a/cpp/test/IceUtil/thread/SleepTest.cpp b/cpp/test/IceUtil/thread/SleepTest.cpp index ce69e1e233b..b157079100c 100644 --- a/cpp/test/IceUtil/thread/SleepTest.cpp +++ b/cpp/test/IceUtil/thread/SleepTest.cpp @@ -12,7 +12,7 @@ #include <stdio.h> #include <SleepTest.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace IceUtil; diff --git a/cpp/test/IceUtil/thread/StartTest.cpp b/cpp/test/IceUtil/thread/StartTest.cpp index 46b0ba64032..eef50038b47 100644 --- a/cpp/test/IceUtil/thread/StartTest.cpp +++ b/cpp/test/IceUtil/thread/StartTest.cpp @@ -12,7 +12,7 @@ #include <stdio.h> #include <StartTest.h> -#include <TestCommon.h> +#include <TestHelper.h> using namespace std; using namespace IceUtil; diff --git a/cpp/test/IceUtil/thread/TestSuite.cpp b/cpp/test/IceUtil/thread/TestSuite.cpp index a056fdcb125..0b3e4ecf36e 100644 --- a/cpp/test/IceUtil/thread/TestSuite.cpp +++ b/cpp/test/IceUtil/thread/TestSuite.cpp @@ -7,7 +7,8 @@ // // ********************************************************************** -#include <TestSuite.h> +#include <TestBase.h> +#include <list> #include <CountDownLatchTest.h> #include <MutexTest.h> #include <RecMutexTest.h> diff --git a/cpp/test/IceUtil/timer/Client.cpp b/cpp/test/IceUtil/timer/Client.cpp index 1dc82a002c2..d24313493e6 100644 --- a/cpp/test/IceUtil/timer/Client.cpp +++ b/cpp/test/IceUtil/timer/Client.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <IceUtil/Timer.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <vector> @@ -151,7 +151,16 @@ private: }; ICE_DEFINE_PTR(DestroyTaskPtr, DestroyTask); -int main(int, char**) +class Client : public Test::TestHelper +{ +public: + + void run(int argc, char* argv[]); + +}; + +void +Client::run(int, char* argv[]) { cout << "testing timer... " << flush; { @@ -274,6 +283,6 @@ int main(int, char**) } } cout << "ok" << endl; - - return EXIT_SUCCESS; } + +DEFINE_TEST(Client) diff --git a/cpp/test/IceUtil/unicode/Client.cpp b/cpp/test/IceUtil/unicode/Client.cpp index 0cc8990703f..86e1844dbd0 100644 --- a/cpp/test/IceUtil/unicode/Client.cpp +++ b/cpp/test/IceUtil/unicode/Client.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <IceUtil/IceUtil.h> -#include <TestCommon.h> +#include <TestHelper.h> #ifdef _WIN32 # include <io.h> diff --git a/cpp/test/IceUtil/uuid/Client.cpp b/cpp/test/IceUtil/uuid/Client.cpp index 629fe423263..7c009243054 100644 --- a/cpp/test/IceUtil/uuid/Client.cpp +++ b/cpp/test/IceUtil/uuid/Client.cpp @@ -13,7 +13,7 @@ #include <IceUtil/Thread.h> #include <IceUtil/Mutex.h> #include <IceUtil/MutexPtrLock.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <set> #include <vector> @@ -178,7 +178,15 @@ runTest(int threadCount, GenerateFunc func, long howMany, bool verbose, string n } } -int main(int argc, char* argv[]) +class Client : public Test::TestHelper +{ +public: + + virtual void run(int argc, char* argv[]); +}; + +void +Client::run(int argc, char* argv[]) { long howMany = 300000; int threadCount = 3; @@ -187,36 +195,33 @@ int main(int argc, char* argv[]) if(argc > 3) { usage(argv[0]); - return EXIT_FAILURE; + throw std::invalid_argument("too many arguments"); } - else if(argc == 3) + + if(argc > 1) { howMany = atol(argv[1]); - if (howMany == 0) + if(howMany == 0) { usage(argv[0]); - return EXIT_FAILURE; + throw invalid_argument("argv[1] howMany is not a number"); } + } + + if(argc > 2) + { + threadCount = atoi(argv[2]); if(threadCount <= 0) { usage(argv[0]); - return EXIT_FAILURE; + throw invalid_argument("argv[2] threadCount is not a number"); } verbose = true; } - else if(argc == 2) - { - howMany = atol(argv[1]); - if (howMany == 0) - { - usage(argv[0]); - return EXIT_FAILURE; - } - } runTest<string, GenerateUUID>(threadCount, GenerateUUID(), howMany, verbose, "UUID"); runTest<string, GenerateRandomString>(threadCount, GenerateRandomString(), howMany, verbose, "string"); - - return EXIT_SUCCESS; } + +DEFINE_TEST(Client); diff --git a/cpp/test/Slice/escape/Client.cpp b/cpp/test/Slice/escape/Client.cpp index d7029ab2da8..bf9dcb6911c 100644 --- a/cpp/test/Slice/escape/Client.cpp +++ b/cpp/test/Slice/escape/Client.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Key.h> #include <Clash.h> @@ -176,9 +176,17 @@ testtypes() test(_cpp_and::_cpp_xor_eq == 0); } -int -run(const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { +public: + + void run(int, char**); +}; + +void +Client::run(int argc, char** argv) +{ + Ice::CommunicatorHolder communicator = initialize(argc, argv); communicator->getProperties()->setProperty("TestAdapter.Endpoints", "default"); Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); adapter->add(ICE_MAKE_SHARED(charI), Ice::stringToIdentity("test")); @@ -186,24 +194,9 @@ run(const Ice::CommunicatorPtr& communicator) cout << "Testing operation name... " << flush; _cpp_and::charPrxPtr p = ICE_UNCHECKED_CAST(_cpp_and::charPrx, - adapter->createProxy(Ice::stringToIdentity("test"))); + adapter->createProxy(Ice::stringToIdentity("test"))); p->_cpp_explicit(); cout << "ok" << endl; - - return EXIT_SUCCESS; } -int -main(int argc, char* argv[]) -{ - try - { - Ice::CommunicatorHolder ich(argc, argv); - return run(ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } -} +DEFINE_TEST(Client) diff --git a/cpp/test/Slice/macros/Client.cpp b/cpp/test/Slice/macros/Client.cpp index 5bbbd2bc9ac..308a5e53e70 100644 --- a/cpp/test/Slice/macros/Client.cpp +++ b/cpp/test/Slice/macros/Client.cpp @@ -8,32 +8,31 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace Test; using namespace std; -int -main(int argc, char* argv[]) +class Client : public Test::TestHelper { - int status = EXIT_SUCCESS; - try - { - cout << "testing Slice predefined macros... " << flush; - DefaultPtr d = ICE_MAKE_SHARED(Default); - test(d->x == 10); - test(d->y == 10); +public: - CppOnlyPtr c = ICE_MAKE_SHARED(CppOnly); - test(c->lang == "cpp"); - test(c->version == ICE_INT_VERSION); - cout << "ok" << endl; - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - status = EXIT_FAILURE; - } - return status; + void run(int, char**); +}; + +void +Client::run(int argc, char** argv) +{ + cout << "testing Slice predefined macros... " << flush; + DefaultPtr d = ICE_MAKE_SHARED(Default); + test(d->x == 10); + test(d->y == 10); + + CppOnlyPtr c = ICE_MAKE_SHARED(CppOnly); + test(c->lang == "cpp"); + test(c->version == ICE_INT_VERSION); + cout << "ok" << endl; } + +DEFINE_TEST(Client) diff --git a/cpp/test/Slice/structure/Client.cpp b/cpp/test/Slice/structure/Client.cpp index 537f3185922..8aa469adb43 100644 --- a/cpp/test/Slice/structure/Client.cpp +++ b/cpp/test/Slice/structure/Client.cpp @@ -8,7 +8,7 @@ // ********************************************************************** #include <Ice/Ice.h> -#include <TestCommon.h> +#include <TestHelper.h> #include <Test.h> using namespace std; @@ -262,25 +262,18 @@ allTests(const Ice::CommunicatorPtr& communicator) cout << "ok" << endl; } -int -run(const Ice::CommunicatorPtr& communicator) +class Client : public Test::TestHelper { - allTests(communicator); +public: - return EXIT_SUCCESS; -} + void run(int, char**); +}; -int -main(int argc, char* argv[]) +void +Client::run(int argc, char** argv) { - try - { - Ice::CommunicatorHolder ich(argc, argv); - return run(ich.communicator()); - } - catch(const Ice::Exception& ex) - { - cerr << ex << endl; - return EXIT_FAILURE; - } + Ice::CommunicatorHolder ich = initialize(argc, argv); + allTests(ich.communicator()); } + +DEFINE_TEST(Client) diff --git a/cpp/test/include/TestCommon.h b/cpp/test/include/TestCommon.h deleted file mode 100644 index 609d7a39b14..00000000000 --- a/cpp/test/include/TestCommon.h +++ /dev/null @@ -1,177 +0,0 @@ -// ********************************************************************** -// -// Copyright (c) 2003-2018 ZeroC, Inc. All rights reserved. -// -// This copy of Ice is licensed to you under the terms described in the -// ICE_LICENSE file included in this distribution. -// -// ********************************************************************** - -#ifndef TEST_COMMON_H -#define TEST_COMMON_H - -#include <IceUtil/Config.h> - -#if defined(_MSC_VER) && !defined(TEST_API_EXPORTS) -# pragma comment(lib, ICE_LIBNAME("testcommon")) -#endif - -#include <Ice/CommunicatorF.h> -#include <Ice/ProxyF.h> -#include <Ice/Initialize.h> - -#if defined(ICE_OS_UWP) || (TARGET_OS_IPHONE != 0) -# include <Ice/Initialize.h> -# include <Ice/Logger.h> -# include <Ice/LocalException.h> -#endif - -#include <IceUtil/IceUtil.h> - -#ifndef TEST_API -# if defined(ICE_STATIC_LIBS) -# define TEST_API /**/ -# elif defined(TEST_API_EXPORTS) -# define TEST_API ICE_DECLSPEC_EXPORT -# else -# define TEST_API ICE_DECLSPEC_IMPORT -# endif -#endif - -void -inline print(const std::string& msg) -{ - std::cout << msg << std::flush; -} - -void -inline println(const std::string& msg) -{ - std::cout << msg << std::endl; -} - -TEST_API std::string getTestEndpoint(const Ice::CommunicatorPtr&, int, const std::string& = std::string()); -TEST_API std::string getTestEndpoint(const Ice::PropertiesPtr&, int, const std::string& = std::string()); -TEST_API std::string getTestProtocol(const Ice::PropertiesPtr&); -TEST_API std::string getTestHost(const Ice::PropertiesPtr&); -TEST_API int getTestPort(const Ice::PropertiesPtr&, int); -TEST_API Ice::InitializationData getTestInitData(int&, char*[]); - -#if !defined(ICE_OS_UWP) && (TARGET_OS_IPHONE == 0) - -void -inline testFailed(const char* expr, const char* file, unsigned int line) -{ - std::cout << "failed!" << std::endl; - std::cout << file << ':' << line << ": assertion `" << expr << "' failed" << std::endl; - abort(); -} - -#define DEFINE_TEST(name) -#define TEST_READY - -#else - -#include <TestHelper.h> - -namespace Test -{ - -extern MainHelper* helper; - -class MainHelperInit -{ -public: - - MainHelperInit(MainHelper* r, const std::string& name, bool redirect) - { - helper = r; - - if(redirect) - { - _previousLogger = Ice::getProcessLogger(); - Ice::setProcessLogger(Ice::getProcessLogger()->cloneWithPrefix(name)); - - _previousCoutBuffer = std::cout.rdbuf(); - std::cout.rdbuf(r); - - _previousCerrBuffer = std::cerr.rdbuf(); - std::cerr.rdbuf(r); - } - } - - ~MainHelperInit() - { - if(_previousLogger) - { - Ice::setProcessLogger(_previousLogger); - std::cout.rdbuf(_previousCoutBuffer); - std::cerr.rdbuf(_previousCerrBuffer); - } - } - -private: - - Ice::LoggerPtr _previousLogger; - std::streambuf* _previousCoutBuffer; - std::streambuf* _previousCerrBuffer; -}; - -// -// Redefine main as Test::mainEntryPoint -// -#define main Test::mainEntryPoint -int mainEntryPoint(int, char**); - -} - -class TestFailedException -{ -}; - -void -inline testFailed(const char* expr, const char* file, unsigned int line) -{ - std::cout << "failed!" << std::endl; - std::cout << file << ':' << line << ": assertion `" << expr << "' failed" << std::endl; - throw TestFailedException(); -} - -#define DEFINE_TEST(name) \ - Test::MainHelper* Test::helper; \ - Ice::CommunicatorPtr communicatorInstance; \ - extern "C" { \ - ICE_DECLSPEC_EXPORT void dllTestShutdown(); \ - void dllTestShutdown() \ - { \ - if(communicatorInstance) \ - { \ - communicatorInstance->destroy(); \ - } \ - } \ - ICE_DECLSPEC_EXPORT int dllMain(int, char**, Test::MainHelper*); \ - int dllMain(int argc, char** argv, Test::MainHelper* helper) \ - { \ - Test::MainHelperInit init(helper, name, helper->redirect()); \ - int status; \ - try \ - { \ - status = Test::mainEntryPoint(argc, argv); \ - } \ - catch(const TestFailedException&) \ - { \ - status = 1; \ - } \ - communicatorInstance = ICE_NULLPTR; \ - return status; \ - } \ - } - -#define TEST_READY Test::helper->serverReady(); \ - communicatorInstance = communicator; - -#endif - -#define test(ex) ((ex) ? ((void)0) : testFailed(#ex, __FILE__, __LINE__)) - -#endif diff --git a/cpp/test/include/TestHelper.h b/cpp/test/include/TestHelper.h index 20be3f8307a..0c398ee2a79 100644 --- a/cpp/test/include/TestHelper.h +++ b/cpp/test/include/TestHelper.h @@ -15,49 +15,113 @@ #include <string> #include <iostream> +#include <IceUtil/Config.h> + +#if defined(_MSC_VER) && !defined(TEST_API_EXPORTS) +# pragma comment(lib, ICE_LIBNAME("testcommon")) +#endif + +#include <Ice/CommunicatorF.h> +#include <Ice/ProxyF.h> +#include <Ice/Initialize.h> + +#if defined(ICE_OS_UWP) || (TARGET_OS_IPHONE != 0) +# include <Ice/Logger.h> +# include <Ice/LocalException.h> + +# include <cassert> +# include <cstdlib> +# include <string> +# include <iostream> +#endif + +#include <IceUtil/IceUtil.h> + +#ifndef TEST_API +# if defined(ICE_STATIC_LIBS) +# define TEST_API /**/ +# elif defined(TEST_API_EXPORTS) +# define TEST_API ICE_DECLSPEC_EXPORT +# else +# define TEST_API ICE_DECLSPEC_IMPORT +# endif +#endif + namespace Test { -class MainHelper : public std::streambuf +class TEST_API ControllerHelper +#ifndef ICE_CPP11_MAPPING + : public virtual IceUtil::Shared +#endif { public: - MainHelper() - { - setp(&data[0], &data[sizeof(data) - 1]); - } + virtual bool redirect() const = 0; + virtual std::string getOutput() const = 0; + virtual std::string loggerPrefix() const = 0; + virtual void join() = 0; + virtual void print(const std::string&) = 0; virtual void serverReady() = 0; - virtual void shutdown() = 0; - virtual void waitForCompleted() = 0; + virtual int waitSuccess(int) const = 0; + virtual void waitReady(int) const = 0; +}; +ICE_DEFINE_PTR(ControllerHelperPtr, ControllerHelper); + +#if defined(ICE_OS_UWP) || (TARGET_OS_IPHONE != 0) + +// +// streambuf redirection implementation +// +class StreamHelper : public std::streambuf +{ +public: + + StreamHelper(ControllerHelperPtr controllerHelper, bool redirect) : _controllerHelper(controllerHelper) + { + setp(&data[0], &data[sizeof(data) - 1]); + if(redirect) + { + _previousLogger = Ice::getProcessLogger(); + Ice::setProcessLogger(Ice::getProcessLogger()->cloneWithPrefix(_controllerHelper->loggerPrefix())); - virtual bool redirect() = 0; + _previousCoutBuffer = std::cout.rdbuf(); + std::cout.rdbuf(this); - virtual void print(const std::string& msg) = 0; + _previousCerrBuffer = std::cerr.rdbuf(); + std::cerr.rdbuf(this); + } + } - virtual void - flush() + ~StreamHelper() { + if(_previousLogger) + { + Ice::setProcessLogger(_previousLogger); + std::cout.rdbuf(_previousCoutBuffer); + std::cerr.rdbuf(_previousCerrBuffer); + } } - virtual void - newLine() + virtual void flush() { - print("\n"); } -private: + virtual void newLine() + { + _controllerHelper->print("\n"); + } - // - // streambuf redirection implementation - // +private: int sync() { + assert(_controllerHelper); std::streamsize n = pptr() - pbase(); - print(std::string(pbase(), static_cast<int>(n))); + _controllerHelper->print(std::string(pbase(), static_cast<int>(n))); pbump(-static_cast<int>(pptr() - pbase())); return 0; } @@ -82,8 +146,127 @@ private: return std::streambuf::sputc(c); } + ControllerHelperPtr _controllerHelper; char data[1024]; + Ice::LoggerPtr _previousLogger; + std::streambuf* _previousCoutBuffer; + std::streambuf* _previousCerrBuffer; }; +#endif + +class TEST_API TestHelper +{ +public: + + TestHelper(bool registerPlugins = true); + virtual ~TestHelper(); + + void setControllerHelper(const ControllerHelperPtr&); + + std::string getTestEndpoint(const std::string&); + std::string getTestEndpoint(int num = 0, const std::string& prot = ""); + static std::string getTestEndpoint(const Ice::PropertiesPtr& properties, int num = 0, const std::string& prot = ""); + + std::string getTestHost(); + static std::string getTestHost(const Ice::PropertiesPtr&); + std::string getTestProtocol(); + static std::string getTestProtocol(const Ice::PropertiesPtr&); + + int getTestPort(int port = 0); + static int getTestPort(const Ice::PropertiesPtr&, int port = 0); + + static Ice::PropertiesPtr + createTestProperties(int&, char*[]); + + Ice::CommunicatorPtr + initialize(int& argc, char* argv[], const Ice::PropertiesPtr& properties = ICE_NULLPTR); + + Ice::CommunicatorPtr initialize(int& argc, char* argv[], Ice::InitializationData initData); + + Ice::CommunicatorPtr communicator() const; + + void serverReady(); + void completed(); + void shutdown(); + + static void shutdownOnInterrupt(); + static void shutdownOnInterruptCallback(int); + + virtual void run(int argc, char* argv[]) = 0; + +private: + + ControllerHelperPtr _controllerHelper; + Ice::CommunicatorPtr _communicator; + IceUtil::Mutex _mutex; +}; + +#if defined(ICE_OS_UWP) || (TARGET_OS_IPHONE != 0) + +class TestFailedException +{ +}; + +void +inline testFailed(const char* expr, const char* file, unsigned int line) +{ + std::cout << "failed!" << std::endl; + std::cout << file << ':' << line << ": assertion `" << expr << "' failed" << std::endl; + throw TestFailedException(); } + +#else + +void +inline testFailed(const char* expr, const char* file, unsigned int line) +{ + std::cout << "failed!" << std::endl; + std::cout << file << ':' << line << ": assertion `" << expr << "' failed" << std::endl; + abort(); +} + +template<typename T> +int +runTest(int argc, char* argv[]) +{ + int status = 0; + try + { + T helper; + helper.run(argc, argv); + } + catch(const std::exception& ex) + { + std::cerr << "error: " << ex.what() << std::endl; + status = 1; + } + return status; +} +#endif + +} + +#if defined(ICE_OS_UWP) || (TARGET_OS_IPHONE != 0) +# define DEFINE_TEST(HELPER) \ + extern "C" \ + { \ + ICE_DECLSPEC_EXPORT Test::TestHelper* createHelper() \ + { \ + return new HELPER(); \ + } \ + } + +#else + +# define DEFINE_TEST(HELPER) \ + int main(int argc, char** argv) \ + { \ + return Test::runTest<HELPER>(argc, argv); \ + } + +#endif + +#define test(ex) ((ex) ? ((void)0) : Test::testFailed(#ex, __FILE__, __LINE__)) + #endif diff --git a/cpp/test/ios/controller/Bundle/ControllerI.mm b/cpp/test/ios/controller/Bundle/ControllerI.mm index 82fa37ff9eb..c73791edafa 100644 --- a/cpp/test/ios/controller/Bundle/ControllerI.mm +++ b/cpp/test/ios/controller/Bundle/ControllerI.mm @@ -15,7 +15,7 @@ #include <dlfcn.h> -@protocol ViewController +@protocol ControllerView -(void) print:(NSString*)msg; -(void) println:(NSString*)msg; @end @@ -26,47 +26,54 @@ using namespace Test::Common; namespace { - typedef int (*MAIN_ENTRY_POINT)(int argc, char** argv, Test::MainHelper* helper); - typedef int (*SHUTDOWN_ENTRY_POINT)(); + typedef Test::TestHelper* (*CREATE_HELPER_ENTRY_POINT)(); - class MainHelperI : public Test::MainHelper, private IceUtil::Monitor<IceUtil::Mutex>, public IceUtil::Thread + class ControllerHelperI : public Test::ControllerHelper, + private IceUtil::Monitor<IceUtil::Mutex>, + public IceUtil::Thread +#ifdef ICE_CPP11_MAPPING + , public enable_shared_from_this<ControllerHelperI> +#endif { public: - MainHelperI(id<ViewController>, const string&, const StringSeq&); - virtual ~MainHelperI(); + ControllerHelperI(id<ControllerView>, const string&, const StringSeq&); + virtual ~ControllerHelperI(); + virtual bool redirect() const; + + virtual string getOutput() const; + virtual string loggerPrefix() const; + virtual void print(const std::string&); virtual void serverReady(); virtual void shutdown(); - virtual void waitForCompleted() {} - virtual bool redirect(); - virtual void print(const std::string&); - - virtual void run(); + virtual void join(); - void completed(int); void waitReady(int) const; int waitSuccess(int) const; - string getOutput() const; + + virtual void run(); + void completed(int); private: - id<ViewController> _controller; + id<ControllerView> _controller; std::string _dll; StringSeq _args; CFBundleRef _handle; - SHUTDOWN_ENTRY_POINT _dllTestShutdown; bool _ready; bool _completed; int _status; std::ostringstream _out; + IceInternal::UniquePtr<Test::TestHelper> _helper; }; + ICE_DEFINE_PTR(ControllerHelperIPtr, ControllerHelperI); class ProcessI : public Process { public: - ProcessI(id<ViewController>, MainHelperI*); + ProcessI(id<ControllerView>, ControllerHelperI*); virtual ~ProcessI(); void waitReady(int, const Ice::Current&); @@ -75,15 +82,15 @@ namespace private: - id<ViewController> _controller; - IceUtil::Handle<MainHelperI> _helper; + id<ControllerView> _controller; + IceUtil::Handle<ControllerHelperI> _helper; }; class ProcessControllerI : public ProcessController { public: - ProcessControllerI(id<ViewController>, NSString*, NSString*); + ProcessControllerI(id<ControllerView>, NSString*, NSString*); #ifdef ICE_CPP11_MAPPING virtual shared_ptr<ProcessPrx> start(string, string, StringSeq, const Ice::Current&); @@ -95,17 +102,17 @@ namespace private: - id<ViewController> _controller; + id<ControllerView> _controller; string _ipv4; string _ipv6; }; - class ControllerHelper + class ControllerI { public: - ControllerHelper(id<ViewController>, NSString*, NSString*); - virtual ~ControllerHelper(); + ControllerI(id<ControllerView>, NSString*, NSString*); + virtual ~ControllerI(); private: @@ -114,7 +121,7 @@ namespace } -MainHelperI::MainHelperI(id<ViewController> controller, const string& dll, const StringSeq& args) : +ControllerHelperI::ControllerHelperI(id<ControllerView> controller, const string& dll, const StringSeq& args) : _controller(controller), _dll(dll), _args(args), @@ -124,7 +131,7 @@ _status(0) { } -MainHelperI::~MainHelperI() +ControllerHelperI::~ControllerHelperI() { if(_handle) { @@ -134,7 +141,7 @@ MainHelperI::~MainHelperI() } void -MainHelperI::serverReady() +ControllerHelperI::serverReady() { Lock sync(*this); _ready = true; @@ -142,7 +149,7 @@ MainHelperI::serverReady() } void -MainHelperI::shutdown() +ControllerHelperI::shutdown() { Lock sync(*this); if(_completed) @@ -150,27 +157,36 @@ MainHelperI::shutdown() return; } - if(_dllTestShutdown) + if(_helper) { - _dllTestShutdown(); + Ice::CommunicatorPtr communicator = _helper->communicator(); + if(communicator) + { + communicator->shutdown(); + } } } bool -MainHelperI::redirect() +ControllerHelperI::redirect() const { return _dll.find("client") != string::npos || _dll.find("collocated") != string::npos; } +string +ControllerHelperI::loggerPrefix() const +{ + return _dll; +} + void -MainHelperI::print(const std::string& msg) +ControllerHelperI::print(const std::string& msg) { _out << msg; - //[_controller println:[NSString stringWithUTF8String:msg.c_str()]]; } void -MainHelperI::run() +ControllerHelperI::run() { NSString* bundlePath = [[NSBundle mainBundle] privateFrameworksPath]; @@ -199,7 +215,7 @@ MainHelperI::run() // void* sym = 0; int attempts = 0; - while((sym = CFBundleGetFunctionPointerForName(_handle, CFSTR("dllTestShutdown"))) == 0 && attempts < 5) + while((sym = CFBundleGetFunctionPointerForName(_handle, CFSTR("createHelper"))) == 0 && attempts < 5) { attempts++; [NSThread sleepForTimeInterval:0.2]; @@ -207,32 +223,14 @@ MainHelperI::run() if(sym == 0) { - NSString* err = [NSString stringWithFormat:@"Could not get function pointer dllTestShutdown from bundle %@", - bundlePath]; - print([err UTF8String]); - completed(EXIT_FAILURE); - return; - } - /* - else if(attempts > 0) - { - print([[NSString stringWithFormat:@"************ found dllTestShutdown after %d failed attempt(s)", attempts] UTF8String]); - } - */ - - _dllTestShutdown = (SHUTDOWN_ENTRY_POINT)sym; - - sym = CFBundleGetFunctionPointerForName(_handle, CFSTR("dllMain")); - if(sym == 0) - { - NSString* err = [NSString stringWithFormat:@"Could not get function pointer dllMain from bundle %@", + NSString* err = [NSString stringWithFormat:@"Could not get function pointer createHelper from bundle %@", bundlePath]; print([err UTF8String]); completed(EXIT_FAILURE); return; } - MAIN_ENTRY_POINT dllMain = (MAIN_ENTRY_POINT)sym; + CREATE_HELPER_ENTRY_POINT createHelper = (CREATE_HELPER_ENTRY_POINT)sym; char** argv = new char*[_args.size() + 1]; for(unsigned int i = 0; i < _args.size(); ++i) { @@ -241,21 +239,33 @@ MainHelperI::run() argv[_args.size()] = 0; try { - completed(dllMain(static_cast<int>(_args.size()), argv, this)); + Test::StreamHelper streamHelper(ICE_SHARED_FROM_THIS, redirect()); + _helper.reset(createHelper()); + _helper->setControllerHelper(ICE_SHARED_FROM_THIS); + _helper->run(static_cast<int>(_args.size()), argv); + completed(0); } catch(const std::exception& ex) { print("unexpected exception while running `" + _args[0] + "':\n" + ex.what()); + completed(1); } catch(...) { print("unexpected unknown exception while running `" + _args[0] + "'"); + completed(1); } delete[] argv; } void -MainHelperI::completed(int status) +ControllerHelperI::join() +{ + getThreadControl().join(); +} + +void +ControllerHelperI::completed(int status) { Lock sync(*this); _completed = true; @@ -264,7 +274,7 @@ MainHelperI::completed(int status) } void -MainHelperI::waitReady(int timeout) const +ControllerHelperI::waitReady(int timeout) const { Lock sync(*this); while(!_ready && !_completed) @@ -281,7 +291,7 @@ MainHelperI::waitReady(int timeout) const } int -MainHelperI::waitSuccess(int timeout) const +ControllerHelperI::waitSuccess(int timeout) const { Lock sync(*this); while(!_completed) @@ -295,13 +305,13 @@ MainHelperI::waitSuccess(int timeout) const } string -MainHelperI::getOutput() const +ControllerHelperI::getOutput() const { assert(_completed); return _out.str(); } -ProcessI::ProcessI(id<ViewController> controller, MainHelperI* helper) : _controller(controller), _helper(helper) +ProcessI::ProcessI(id<ControllerView> controller, ControllerHelperI* helper) : _controller(controller), _helper(helper) { } @@ -326,11 +336,11 @@ ProcessI::terminate(const Ice::Current& current) { _helper->shutdown(); current.adapter->remove(current.id); - _helper->getThreadControl().join(); + _helper->join(); return _helper->getOutput(); } -ProcessControllerI::ProcessControllerI(id<ViewController> controller, NSString* ipv4, NSString* ipv6) : +ProcessControllerI::ProcessControllerI(id<ControllerView> controller, NSString* ipv4, NSString* ipv6) : _controller(controller), _ipv4([ipv4 UTF8String]), _ipv6([ipv6 UTF8String]) { } @@ -346,7 +356,7 @@ ProcessControllerI::start(const string& testSuite, const string& exe, const Stri std::string prefix = std::string("test/") + testSuite; replace(prefix.begin(), prefix.end(), '/', '_'); [_controller println:[NSString stringWithFormat:@"starting %s %s... ", testSuite.c_str(), exe.c_str()]]; - IceUtil::Handle<MainHelperI> helper = new MainHelperI(_controller, prefix + '/' + exe + ".bundle", args); + ControllerHelperIPtr helper = ICE_MAKE_SHARED(ControllerHelperI, _controller, prefix + '/' + exe + ".bundle", args); // // Use a 768KB thread stack size for the objects test. This is necessary when running the @@ -366,7 +376,7 @@ ProcessControllerI::getHost(const string& protocol, bool ipv6, const Ice::Curren return ipv6 ? _ipv6 : _ipv4; } -ControllerHelper::ControllerHelper(id<ViewController> controller, NSString* ipv4, NSString* ipv6) +ControllerI::ControllerI(id<ControllerView> controller, NSString* ipv4, NSString* ipv6) { Ice::registerIceDiscovery(); @@ -393,30 +403,30 @@ ControllerHelper::ControllerHelper(id<ViewController> controller, NSString* ipv4 adapter->activate(); } -ControllerHelper::~ControllerHelper() +ControllerI::~ControllerI() { _communicator->destroy(); _communicator = 0; } -static ControllerHelper* controllerHelper = 0; +static ControllerI* controllerI = 0; extern "C" { void -startController(id<ViewController> controller, NSString* ipv4, NSString* ipv6) +startController(id<ControllerView> controller, NSString* ipv4, NSString* ipv6) { - controllerHelper = new ControllerHelper(controller, ipv4, ipv6); + controllerI = new ControllerI(controller, ipv4, ipv6); } void stopController() { - if(controllerHelper) + if(controllerI) { - delete controllerHelper; - controllerHelper = 0; + delete controllerI; + controllerI = 0; } } diff --git a/cpp/test/ios/controller/C++ Test Controller.xcodeproj/project.pbxproj b/cpp/test/ios/controller/C++ Test Controller.xcodeproj/project.pbxproj index 7e7e7818529..da1006d93d9 100644 --- a/cpp/test/ios/controller/C++ Test Controller.xcodeproj/project.pbxproj +++ b/cpp/test/ios/controller/C++ Test Controller.xcodeproj/project.pbxproj @@ -19,7 +19,6 @@ 148ABA1A1DFB12C800594F70 /* client.p12 in Resources */ = {isa = PBXBuildFile; fileRef = 148ABA171DFB12C800594F70 /* client.p12 */; }; 148ABA1B1DFB12C800594F70 /* server.p12 in Resources */ = {isa = PBXBuildFile; fileRef = 148ABA181DFB12C800594F70 /* server.p12 */; }; 148ABA1D1DFB12DB00594F70 /* certs in Resources */ = {isa = PBXBuildFile; fileRef = 148ABA1C1DFB12DB00594F70 /* certs */; }; - 148ABA431DFEEAEE00594F70 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 14905C5B1DF98FD8002AE61B /* ViewController.m */; }; 148ABA441DFEEAEE00594F70 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 14905C581DF98FD8002AE61B /* AppDelegate.m */; }; 148ABA451DFEEAEE00594F70 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 14905C551DF98FD8002AE61B /* main.m */; }; 148ABA481DFEEAEE00594F70 /* client.p12 in Resources */ = {isa = PBXBuildFile; fileRef = 148ABA171DFB12C800594F70 /* client.p12 */; }; @@ -30,7 +29,6 @@ 148ABA4E1DFEEAEE00594F70 /* certs in Resources */ = {isa = PBXBuildFile; fileRef = 148ABA1C1DFB12DB00594F70 /* certs */; }; 14905C561DF98FD8002AE61B /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 14905C551DF98FD8002AE61B /* main.m */; }; 14905C591DF98FD8002AE61B /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 14905C581DF98FD8002AE61B /* AppDelegate.m */; }; - 14905C5C1DF98FD8002AE61B /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 14905C5B1DF98FD8002AE61B /* ViewController.m */; }; 14905C5F1DF98FD8002AE61B /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 14905C5D1DF98FD8002AE61B /* Main.storyboard */; }; 14905C611DF98FD8002AE61B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 14905C601DF98FD8002AE61B /* Assets.xcassets */; }; 14905C641DF98FD8002AE61B /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 14905C621DF98FD8002AE61B /* LaunchScreen.storyboard */; }; @@ -41,6 +39,9 @@ 14E398361E01B18100A89291 /* Cpp98ControllerBundle.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 14E398311E01B14B00A89291 /* Cpp98ControllerBundle.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 14E398381E01B30500A89291 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 14E398371E01B30500A89291 /* CFNetwork.framework */; }; 14E398391E01B30E00A89291 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 14E398371E01B30500A89291 /* CFNetwork.framework */; }; + 8267256920A9EF6E0089EA2D /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8267256820A9EF6E0089EA2D /* Security.framework */; }; + 8267256A20A9F0210089EA2D /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8267256820A9EF6E0089EA2D /* Security.framework */; }; + 82A1B91820C0081200B3535B /* ControllerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 82A1B91620C0081200B3535B /* ControllerView.m */; }; /* End PBXBuildFile section */ /* Begin PBXBuildRule section */ @@ -126,8 +127,6 @@ 14905C551DF98FD8002AE61B /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; 14905C571DF98FD8002AE61B /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; }; 14905C581DF98FD8002AE61B /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; }; - 14905C5A1DF98FD8002AE61B /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; }; - 14905C5B1DF98FD8002AE61B /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; }; 14905C5E1DF98FD8002AE61B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; }; 14905C601DF98FD8002AE61B /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 14905C631DF98FD8002AE61B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; @@ -135,6 +134,9 @@ 14B70D0F1E0160FD00118DE3 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; 14E398311E01B14B00A89291 /* Cpp98ControllerBundle.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Cpp98ControllerBundle.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; 14E398371E01B30500A89291 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; }; + 8267256820A9EF6E0089EA2D /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; + 82A1B91620C0081200B3535B /* ControllerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ControllerView.m; sourceTree = "<group>"; }; + 82A1B91720C0081200B3535B /* ControllerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ControllerView.h; sourceTree = "<group>"; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -142,6 +144,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 8267256920A9EF6E0089EA2D /* Security.framework in Frameworks */, 14E398391E01B30E00A89291 /* CFNetwork.framework in Frameworks */, 1440D8761E0187BA00CF7ED3 /* UIKit.framework in Frameworks */, 1440D88A1E0189F300CF7ED3 /* Foundation.framework in Frameworks */, @@ -166,6 +169,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 8267256A20A9F0210089EA2D /* Security.framework in Frameworks */, 14E398381E01B30500A89291 /* CFNetwork.framework in Frameworks */, 14E398291E01B14B00A89291 /* UIKit.framework in Frameworks */, 14E3982B1E01B14B00A89291 /* Foundation.framework in Frameworks */, @@ -212,10 +216,10 @@ 14905C531DF98FD8002AE61B /* Classes */ = { isa = PBXGroup; children = ( + 82A1B91720C0081200B3535B /* ControllerView.h */, + 82A1B91620C0081200B3535B /* ControllerView.m */, 14905C571DF98FD8002AE61B /* AppDelegate.h */, 14905C581DF98FD8002AE61B /* AppDelegate.m */, - 14905C5A1DF98FD8002AE61B /* ViewController.h */, - 14905C5B1DF98FD8002AE61B /* ViewController.m */, 14905C5D1DF98FD8002AE61B /* Main.storyboard */, 14905C621DF98FD8002AE61B /* LaunchScreen.storyboard */, 14905C601DF98FD8002AE61B /* Assets.xcassets */, @@ -246,6 +250,7 @@ 14B70D0C1E0160F700118DE3 /* Frameworks */ = { isa = PBXGroup; children = ( + 8267256820A9EF6E0089EA2D /* Security.framework */, 14E398371E01B30500A89291 /* CFNetwork.framework */, 1440D8891E0189F300CF7ED3 /* Foundation.framework */, 14B70D0F1E0160FD00118DE3 /* UIKit.framework */, @@ -472,7 +477,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 148ABA431DFEEAEE00594F70 /* ViewController.m in Sources */, 148ABA441DFEEAEE00594F70 /* AppDelegate.m in Sources */, 148ABA451DFEEAEE00594F70 /* main.m in Sources */, ); @@ -482,7 +486,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 14905C5C1DF98FD8002AE61B /* ViewController.m in Sources */, + 82A1B91820C0081200B3535B /* ControllerView.m in Sources */, 14905C591DF98FD8002AE61B /* AppDelegate.m in Sources */, 14905C561DF98FD8002AE61B /* main.m in Sources */, ); @@ -552,7 +556,10 @@ MACOSX_DEPLOYMENT_TARGET = 10.12; MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ( + "-L../../Common/build/$(PLATFORM_NAME)/cpp11-xcodesdk", + "-lTetsCommon++11", "-lIceDiscovery++11", + "-lIceSSL++11", "-lIce++11", "-lbz2", "-liconv", @@ -583,7 +590,10 @@ MACOSX_DEPLOYMENT_TARGET = 10.12; MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = ( + "-L../../Common/build/$(PLATFORM_NAME)/cpp11-xcodesdk", + "-lTestCommon++11", "-lIceDiscovery++11", + "-lIceSSL++11", "-lIce++11", "-lbz2", "-liconv", @@ -609,7 +619,10 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; OTHER_CFLAGS = "-fobjc-arc-exceptions"; OTHER_LDFLAGS = ( + "-L../../Common/build/$(PLATFORM_NAME)/cpp11-xcodesdk", + "-lTestCommon++11", "-lIce++11", + "-lIceSSL++11", "-lIceDiscovery++11", "-lbz2", "-liconv", @@ -634,8 +647,11 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; OTHER_CFLAGS = "-fobjc-arc-exceptions"; OTHER_LDFLAGS = ( + "-L../../Common/build/$(PLATFORM_NAME)/cpp11-xcodesdk", + "-lTestCommon++11", "-lIce++11", "-lIceDiscovery++11", + "-lIceSSL++11", "-lbz2", "-liconv", ); @@ -757,6 +773,9 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; OTHER_CFLAGS = "-fobjc-arc-exceptions"; OTHER_LDFLAGS = ( + "-L../../Common/build/$(PLATFORM_NAME)/xcodesdk", + "-lIceSSL", + "-lTestCommon", "-lIce", "-lIceDiscovery", "-lbz2", @@ -778,6 +797,9 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; OTHER_CFLAGS = "-fobjc-arc-exceptions"; OTHER_LDFLAGS = ( + "-L../../Common/build/$(PLATFORM_NAME)/xcodesdk", + "-lIceSSL", + "-lTestCommon", "-lIce", "-lIceDiscovery", "-lbz2", @@ -808,6 +830,9 @@ MACOSX_DEPLOYMENT_TARGET = 10.12; MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ( + "-L../../Common/build/$(PLATFORM_NAME)/xcodesdk", + "-lTestCommon", + "-lIceSSL", "-lIceDiscovery", "-lIce", "-lbz2", @@ -836,6 +861,9 @@ MACOSX_DEPLOYMENT_TARGET = 10.12; MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = ( + "-L../../Common/build/$(PLATFORM_NAME)/xcodesdk", + "-lTestCommon", + "-lIceSSL", "-lIceDiscovery", "-lIce", "-lbz2", diff --git a/cpp/test/ios/controller/Classes/ViewController.h b/cpp/test/ios/controller/Classes/ControllerView.h index 47fbd1851a0..8a7b43f414f 100644 --- a/cpp/test/ios/controller/Classes/ViewController.h +++ b/cpp/test/ios/controller/Classes/ControllerView.h @@ -9,19 +9,19 @@ #import <UIKit/UIKit.h> -@protocol ViewController +@protocol ControllerView -(void) print:(NSString*)msg; -(void) println:(NSString*)msg; @end -@interface ViewController : UIViewController<ViewController, UIPickerViewDataSource, UIPickerViewDelegate> +@interface ControllerView : UIViewController<ControllerView, UIPickerViewDataSource, UIPickerViewDelegate> { @private IBOutlet UIPickerView* interfaceIPv4; IBOutlet UIPickerView* interfaceIPv6; IBOutlet UITextView* output; - void (*startController)(id<ViewController>, NSString*, NSString*); - void (*stopController)(id<ViewController>); + void (*startController)(id<ControllerView>, NSString*, NSString*); + void (*stopController)(id<ControllerView>); NSMutableArray* interfacesIPv4; NSMutableArray* interfacesIPv6; } diff --git a/cpp/test/ios/controller/Classes/ViewController.m b/cpp/test/ios/controller/Classes/ControllerView.m index debb1023c71..474b9daf21f 100644 --- a/cpp/test/ios/controller/Classes/ViewController.m +++ b/cpp/test/ios/controller/Classes/ControllerView.m @@ -7,13 +7,13 @@ // // ********************************************************************** -#import "ViewController.h" +#import "ControllerView.h" #include <ifaddrs.h> #include <arpa/inet.h> #include <net/if.h> -@implementation ViewController +@implementation ControllerView - (void)viewDidLoad { @@ -123,7 +123,7 @@ [output scrollRangeToVisible:NSMakeRange([output.text length] - 1, 1)]; } -#pragma mark ViewController +#pragma mark ControllerView -(void) print:(NSString*)msg { diff --git a/cpp/test/uwp/controller/App.xaml b/cpp/test/uwp/controller/App.xaml index bd3f16bf5e8..16a9a8a7db4 100644 --- a/cpp/test/uwp/controller/App.xaml +++ b/cpp/test/uwp/controller/App.xaml @@ -1,5 +1,5 @@ <Application - x:Class="Controller.App" + x:Class="Test.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:Controller"> diff --git a/cpp/test/uwp/controller/App.xaml.cpp b/cpp/test/uwp/controller/App.xaml.cpp index f70263943c3..add494a6a9f 100644 --- a/cpp/test/uwp/controller/App.xaml.cpp +++ b/cpp/test/uwp/controller/App.xaml.cpp @@ -8,10 +8,10 @@ // ********************************************************************** #include "pch.h" -#include "ViewController.xaml.h" +#include "ControllerView.xaml.h" #include <ppltasks.h> -using namespace Controller; +using namespace Test; using namespace Platform; using namespace Windows::ApplicationModel; @@ -63,7 +63,7 @@ void App::OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEvent // Create a Frame to act navigation context and navigate to the first page auto rootFrame = ref new Frame(); - if(!rootFrame->Navigate(TypeName(ViewController::typeid))) + if(!rootFrame->Navigate(TypeName(ControllerView::typeid))) { throw ref new FailureException("Failed to create initial page"); } diff --git a/cpp/test/uwp/controller/App.xaml.h b/cpp/test/uwp/controller/App.xaml.h index a7bab88c939..8e310505717 100644 --- a/cpp/test/uwp/controller/App.xaml.h +++ b/cpp/test/uwp/controller/App.xaml.h @@ -11,7 +11,7 @@ #include "App.g.h" -namespace Controller +namespace Test { /// <summary> /// Provides application-specific behavior to supplement the default Application class. diff --git a/cpp/test/uwp/controller/ViewController.xaml b/cpp/test/uwp/controller/ControllerView.xaml index 457c5025d45..2faee984c35 100644 --- a/cpp/test/uwp/controller/ViewController.xaml +++ b/cpp/test/uwp/controller/ControllerView.xaml @@ -1,5 +1,5 @@ <Page - x:Class="Controller.ViewController" + x:Class="Test.ControllerView" IsTabStop="false" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" diff --git a/cpp/test/uwp/controller/ViewController.xaml.cpp b/cpp/test/uwp/controller/ControllerView.xaml.cpp index 99d594fb81e..9ad8b372e85 100644 --- a/cpp/test/uwp/controller/ViewController.xaml.cpp +++ b/cpp/test/uwp/controller/ControllerView.xaml.cpp @@ -7,7 +7,7 @@ // // ********************************************************************** -#include "ViewController.xaml.h" +#include "ControllerView.xaml.h" #include <Ice/Ice.h> #include <Controller.h> @@ -19,7 +19,7 @@ #include <condition_variable> using namespace std; -using namespace Controller; +using namespace Test; using namespace Test::Common; using namespace Platform; @@ -41,36 +41,34 @@ using namespace Platform::Collections; namespace { -typedef int(*MAIN_ENTRY_POINT)(int, char**, Test::MainHelper*); -typedef int(*SHUTDOWN_ENTRY_POINT)(); +typedef Test::TestHelper* (*CREATE_HELPER_ENTRY_POINT)(); -class MainHelperI : public Test::MainHelper +class ControllerHelperI : public Test::ControllerHelper, + public enable_shared_from_this<Test::ControllerHelper> { public: - MainHelperI(ViewController^, const string&, const StringSeq&); + ControllerHelperI(const string&, const StringSeq&); + virtual bool redirect() const; + + virtual std::string getOutput() const; + virtual std::string loggerPrefix() const; + virtual void join(); + virtual void print(const std::string&); virtual void serverReady(); virtual void shutdown(); - virtual void waitForCompleted() - { - } - virtual bool redirect(); - virtual void print(const std::string&); - virtual void run(); - void join(); + virtual int waitSuccess(int) const; + virtual void waitReady(int) const; + + void run(); void completed(int); - void waitReady(int) const; - int waitSuccess(int) const; - string getOutput() const; private: - ViewController^ _controller; string _dll; StringSeq _args; - FARPROC _dllTestShutdown; bool _ready; bool _completed; int _status; @@ -78,13 +76,22 @@ private: thread _thread; mutable mutex _mutex; mutable condition_variable _condition; + // + // DLL cache + // + static std::map<std::string, HINSTANCE> _dlls; + HINSTANCE loadDll(const string&); + + unique_ptr<Test::TestHelper> _helper; }; +std::map<std::string, HINSTANCE> ControllerHelperI::_dlls; + class ProcessI : public Process { public: - ProcessI(ViewController^, shared_ptr<MainHelperI>); + ProcessI(const Test::ControllerHelperPtr&); void waitReady(int, const Ice::Current&); int waitSuccess(int, const Ice::Current&); @@ -92,33 +99,32 @@ public: private: - ViewController^ _controller; - shared_ptr<MainHelperI> _helper; + Test::ControllerHelperPtr _controllerHelper; }; class ProcessControllerI : public ProcessController { public: - ProcessControllerI(ViewController^); + ProcessControllerI(ControllerView^); shared_ptr<ProcessPrx> start(string, string, StringSeq, const Ice::Current&); virtual string getHost(string, bool, const Ice::Current&); private: - ViewController^ _controller; + ControllerView^ _controller; string _host; }; -class ControllerHelper +class ControllerI { public: - ControllerHelper(ViewController^); - virtual ~ControllerHelper(); + ControllerI(ControllerView^); + virtual ~ControllerI(); void - registerProcessController(ViewController^, + registerProcessController(ControllerView^, const Ice::ObjectAdapterPtr&, const shared_ptr<ProcessControllerRegistryPrx>&, const shared_ptr<ProcessControllerPrx>&); @@ -131,8 +137,7 @@ private: } -MainHelperI::MainHelperI(ViewController^ controller, const string& dll, const StringSeq& args) : - _controller(controller), +ControllerHelperI::ControllerHelperI(const string& dll, const StringSeq& args) : _dll(dll), _args(args), _ready(false), @@ -142,74 +147,50 @@ MainHelperI::MainHelperI(ViewController^ controller, const string& dll, const St } void -MainHelperI::serverReady() +ControllerHelperI::serverReady() { unique_lock<mutex> lock(_mutex); _ready = true; _condition.notify_all(); } -void -MainHelperI::shutdown() -{ - unique_lock<mutex> lock(_mutex); - if(_completed) - { - return; - } - - if(_dllTestShutdown) - { - _dllTestShutdown(); - } -} - bool -MainHelperI::redirect() +ControllerHelperI::redirect() const { return _dll.find("client") != string::npos || _dll.find("collocated") != string::npos; } void -MainHelperI::print(const std::string& msg) +ControllerHelperI::print(const std::string& msg) { _out << msg; - //_controller->println(msg); } void -MainHelperI::run() +ControllerHelperI::run() { thread t([this]() { - HINSTANCE hnd = _controller->loadDll(_dll); + HINSTANCE hnd = loadDll(_dll); if(hnd == 0) { ostringstream os; os << "failed to load `" << _dll << "': error code: " << GetLastError(); print(os.str()); - completed(EXIT_FAILURE); + completed(1); return; } - _dllTestShutdown = GetProcAddress(hnd, "dllTestShutdown"); - if(_dllTestShutdown == 0) - { - print("failed to find dllTestShutdown function from `" + _dll + "'"); - completed(EXIT_FAILURE); - return; - } - - FARPROC sym = GetProcAddress(hnd, "dllMain"); + FARPROC sym = GetProcAddress(hnd, "createHelper"); if(sym == 0) { - print("failed to find dllMain function from `" + _dll + "'"); - completed(EXIT_FAILURE); + print("failed to find createHelper function from `" + _dll + "'"); + completed(1); return; } - MAIN_ENTRY_POINT dllMain = reinterpret_cast<MAIN_ENTRY_POINT>(sym); + CREATE_HELPER_ENTRY_POINT createHelper = reinterpret_cast<CREATE_HELPER_ENTRY_POINT>(sym); char** argv = new char*[_args.size() + 1]; for(unsigned int i = 0; i < _args.size(); ++i) { @@ -218,17 +199,21 @@ MainHelperI::run() argv[_args.size()] = 0; try { - completed(dllMain(static_cast<int>(_args.size()), argv, this)); + StreamHelper streamHelper(shared_from_this(), redirect()); + _helper.reset(createHelper()); + _helper->setControllerHelper(shared_from_this()); + _helper->run(static_cast<int>(_args.size()), argv); + completed(0); } catch(const std::exception& ex) { print("unexpected exception while running `" + _args[0] + "':\n" + ex.what()); - completed(EXIT_FAILURE); + completed(1); } catch(...) { print("unexpected unknown exception while running `" + _args[0] + "'"); - completed(EXIT_FAILURE); + completed(1); } delete[] argv; }); @@ -236,13 +221,13 @@ MainHelperI::run() } void -MainHelperI::join() +ControllerHelperI::join() { _thread.join(); } void -MainHelperI::completed(int status) +ControllerHelperI::completed(int status) { unique_lock<mutex> lock(_mutex); _completed = true; @@ -251,12 +236,11 @@ MainHelperI::completed(int status) } void -MainHelperI::waitReady(int timeout) const +ControllerHelperI::waitReady(int timeout) const { unique_lock<mutex> lock(_mutex); while(!_ready && !_completed) { - if(_condition.wait_for(lock, chrono::seconds(timeout)) == cv_status::timeout) { throw ProcessFailedException("timed out waiting for the process to be ready"); @@ -269,7 +253,7 @@ MainHelperI::waitReady(int timeout) const } int -MainHelperI::waitSuccess(int timeout) const +ControllerHelperI::waitSuccess(int timeout) const { unique_lock<mutex> lock(_mutex); while(!_completed) @@ -283,38 +267,77 @@ MainHelperI::waitSuccess(int timeout) const } string -MainHelperI::getOutput() const +ControllerHelperI::getOutput() const { assert(_completed); return _out.str(); } -ProcessI::ProcessI(ViewController^ controller, shared_ptr<MainHelperI> helper) : _controller(controller), _helper(helper) +string +ControllerHelperI::loggerPrefix() const +{ + return _dll; +} + +void +ControllerHelperI::shutdown() +{ + unique_lock<mutex> lock(_mutex); + if(_completed) + { + return; + } + + if(_helper) + { + Ice::CommunicatorPtr communicator = _helper->communicator(); + if(communicator) + { + communicator->shutdown(); + } + } +} + +HINSTANCE +ControllerHelperI::loadDll(const string& name) +{ + unique_lock<mutex> lock(_mutex); + map<string, HINSTANCE>::iterator p = _dlls.find(name); + if (p == _dlls.end()) + { + HINSTANCE hnd = LoadPackagedLibrary(Ice::stringToWstring(name).c_str(), 0); + p = _dlls.insert(make_pair(name, hnd)).first; + } + return p->second; +} + +ProcessI::ProcessI(const ControllerHelperPtr& controllerHelper) : + _controllerHelper(controllerHelper) { } void ProcessI::waitReady(int timeout, const Ice::Current&) { - _helper->waitReady(timeout); + _controllerHelper->waitReady(timeout); } int ProcessI::waitSuccess(int timeout, const Ice::Current&) { - return _helper->waitSuccess(timeout); + return _controllerHelper->waitSuccess(timeout); } string ProcessI::terminate(const Ice::Current& current) { - _helper->shutdown(); + _controllerHelper->shutdown(); current.adapter->remove(current.id); - _helper->join(); - return _helper->getOutput(); + _controllerHelper->join(); + return _controllerHelper->getOutput(); } -ProcessControllerI::ProcessControllerI(ViewController^ controller) : +ProcessControllerI::ProcessControllerI(ControllerView^ controller) : _controller(controller), _host(_controller->getHost()) { @@ -328,9 +351,9 @@ ProcessControllerI::start(string testSuite, string exe, StringSeq args, const Ic _controller->println(os.str()); replace(testSuite.begin(), testSuite.end(), '/', '_'); args.insert(args.begin(), testSuite + '_' + exe + ".dll"); - auto helper = make_shared<MainHelperI>(_controller, testSuite + '_' + exe + ".dll", args); + auto helper = make_shared<ControllerHelperI>(testSuite + '_' + exe + ".dll", args); helper->run(); - return Ice::uncheckedCast<ProcessPrx>(c.adapter->addWithUUID(make_shared<ProcessI>(_controller, helper))); + return Ice::uncheckedCast<ProcessPrx>(c.adapter->addWithUUID(make_shared<ProcessI>(helper))); } string @@ -339,7 +362,7 @@ ProcessControllerI::getHost(string, bool, const Ice::Current&) return _host; } -ControllerHelper::ControllerHelper(ViewController^ controller) +ControllerI::ControllerI(ControllerView^ controller) { Ice::InitializationData initData = Ice::InitializationData(); initData.properties = Ice::createProperties(); @@ -364,10 +387,10 @@ ControllerHelper::ControllerHelper(ViewController^ controller) } void -ControllerHelper::registerProcessController(ViewController^ controller, - const Ice::ObjectAdapterPtr& adapter, - const shared_ptr<ProcessControllerRegistryPrx>& registry, - const shared_ptr<ProcessControllerPrx>& processController) +ControllerI::registerProcessController(ControllerView^ controller, + const Ice::ObjectAdapterPtr& adapter, + const shared_ptr<ProcessControllerRegistryPrx>& registry, + const shared_ptr<ProcessControllerPrx>& processController) { registry->ice_pingAsync( [this, controller, adapter, registry, processController]() @@ -428,14 +451,14 @@ ControllerHelper::registerProcessController(ViewController^ controller, }); } -ControllerHelper::~ControllerHelper() +ControllerI::~ControllerI() { _communicator->destroy(); } -static ControllerHelper* controllerHelper = 0; +static ControllerI* controllerI = 0; -ViewController::ViewController() +ControllerView::ControllerView() { InitializeComponent(); auto hostnames = NetworkInformation::GetHostNames(); @@ -452,56 +475,43 @@ ViewController::ViewController() } string -ViewController::getHost() const +ControllerView::getHost() const { return Ice::wstringToString(ipv4Addresses->SelectedItem->ToString()->Data()); } void -ViewController::Hostname_SelectionChanged(Platform::Object^, Windows::UI::Xaml::Controls::SelectionChangedEventArgs^) +ControllerView::Hostname_SelectionChanged(Platform::Object^, Windows::UI::Xaml::Controls::SelectionChangedEventArgs^) { - if(controllerHelper) + if(controllerI) { - delete controllerHelper; - controllerHelper = 0; + delete controllerI; + controllerI = 0; } - controllerHelper = new ControllerHelper(this); + controllerI = new ControllerI(this); } void -ViewController::println(const string& s) +ControllerView::println(const string& s) { - if(s.empty()) + if(!s.empty()) { - return; + Dispatcher->RunAsync( + CoreDispatcherPriority::Normal, + ref new DispatchedHandler([=]() + { + Output->Items->Append(ref new String(Ice::stringToWstring(s).c_str())); + Output->SelectedIndex = Output->Items->Size - 1; + Output->ScrollIntoView(Output->SelectedItem); + })); } - this->Dispatcher->RunAsync(CoreDispatcherPriority::Normal, ref new DispatchedHandler( - [=]() - { - Output->Items->Append(ref new String(Ice::stringToWstring(s).c_str())); - Output->SelectedIndex = Output->Items->Size - 1; - Output->ScrollIntoView(Output->SelectedItem); - })); -} - -HINSTANCE -ViewController::loadDll(const string& name) -{ - unique_lock<mutex> lock(_mutex); - map<string, HINSTANCE>::iterator p = _dlls.find(name); - if(p == _dlls.end()) - { - HINSTANCE hnd = LoadPackagedLibrary(Ice::stringToWstring(name).c_str(), 0); - p = _dlls.insert(make_pair(name, hnd)).first; - } - return p->second; } -ViewController::~ViewController() +ControllerView::~ControllerView() { - if(controllerHelper) + if(controllerI) { - delete controllerHelper; - controllerHelper = 0; + delete controllerI; + controllerI = 0; } } diff --git a/cpp/test/uwp/controller/ViewController.xaml.h b/cpp/test/uwp/controller/ControllerView.xaml.h index ea4919b6ff9..ec796159bee 100644 --- a/cpp/test/uwp/controller/ViewController.xaml.h +++ b/cpp/test/uwp/controller/ControllerView.xaml.h @@ -9,7 +9,7 @@ #pragma once -#include <ViewController.g.h> +#include <ControllerView.g.h> #include <collection.h> #include <map> #include <string> @@ -18,35 +18,28 @@ namespace { -class MainHelperI; +class ControllerI; class ProcessControllerI; -class ControllerHelper; } -namespace Controller +namespace Test { [Windows::Foundation::Metadata::WebHostHidden] -public ref class ViewController sealed +public ref class ControllerView sealed { public: - ViewController(); - virtual ~ViewController(); + ControllerView(); + virtual ~ControllerView(); private: - friend class MainHelperI; + friend class ControllerI; friend class ProcessControllerI; - friend class ControllerHelper; - HINSTANCE loadDll(const std::string&); - void unloadDll(const std::string&); void println(const std::string&); std::string getHost() const; - void Hostname_SelectionChanged(Platform::Object^ sender, Windows::UI::Xaml::Controls::SelectionChangedEventArgs^ e); - - std::map<std::string, HINSTANCE> _dlls; - std::mutex _mutex; + void Hostname_SelectionChanged(Platform::Object^, Windows::UI::Xaml::Controls::SelectionChangedEventArgs^); }; } diff --git a/cpp/test/uwp/controller/msbuild/controller.vcxproj b/cpp/test/uwp/controller/msbuild/controller.vcxproj index 04c8c73ac32..d89526185c1 100644 --- a/cpp/test/uwp/controller/msbuild/controller.vcxproj +++ b/cpp/test/uwp/controller/msbuild/controller.vcxproj @@ -154,8 +154,8 @@ <ClInclude Include="..\App.xaml.h"> <DependentUpon>..\App.xaml</DependentUpon> </ClInclude> - <ClInclude Include="..\ViewController.xaml.h"> - <DependentUpon>..\ViewController.xaml</DependentUpon> + <ClInclude Include="..\ControllerView.xaml.h"> + <DependentUpon>..\ControllerView.xaml</DependentUpon> </ClInclude> <ClInclude Include="ARM\Debug\Controller.h"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> @@ -210,7 +210,7 @@ <ApplicationDefinition Include="..\App.xaml"> <SubType>Designer</SubType> </ApplicationDefinition> - <Page Include="..\ViewController.xaml"> + <Page Include="..\ControllerView.xaml"> <SubType>Designer</SubType> </Page> <Page Include="..\StandardStyles.xaml" /> @@ -234,8 +234,8 @@ <DependentUpon>..\App.xaml</DependentUpon> </ClCompile> <ClCompile Include="..\pch.cpp" /> - <ClCompile Include="..\ViewController.xaml.cpp"> - <DependentUpon>..\ViewController.xaml</DependentUpon> + <ClCompile Include="..\ControllerView.xaml.cpp"> + <DependentUpon>..\ControllerView.xaml</DependentUpon> </ClCompile> <ClCompile Include="ARM\Debug\Controller.cpp"> <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild> diff --git a/cpp/test/uwp/controller/msbuild/controller.vcxproj.filters b/cpp/test/uwp/controller/msbuild/controller.vcxproj.filters index ae8f467ab37..834dc7b38d2 100644 --- a/cpp/test/uwp/controller/msbuild/controller.vcxproj.filters +++ b/cpp/test/uwp/controller/msbuild/controller.vcxproj.filters @@ -130,7 +130,7 @@ <ClCompile Include="x64\Release\Controller.cpp"> <Filter>Source Files\x64\Release</Filter> </ClCompile> - <ClCompile Include="..\ViewController.xaml.cpp" /> + <ClCompile Include="..\ControllerView.xaml.cpp" /> </ItemGroup> <ItemGroup> <ClInclude Include="..\App.xaml.h" /> @@ -152,7 +152,7 @@ <ClInclude Include="x64\Release\Controller.h"> <Filter>Header Files\x64\Release</Filter> </ClInclude> - <ClInclude Include="..\ViewController.xaml.h" /> + <ClInclude Include="..\ControllerView.xaml.h" /> </ItemGroup> <ItemGroup> <Image Include="Assets\LockScreenLogo.scale-200.png"> @@ -184,7 +184,7 @@ <Page Include="..\StandardStyles.xaml"> <Filter>Styles</Filter> </Page> - <Page Include="..\ViewController.xaml" /> + <Page Include="..\ControllerView.xaml" /> </ItemGroup> <ItemGroup> <None Include="..\..\..\..\..\certs\cacert.der"> |