diff options
Diffstat (limited to 'cpp/test/Ice/plugin/Client.cpp')
-rw-r--r-- | cpp/test/Ice/plugin/Client.cpp | 133 |
1 files changed, 65 insertions, 68 deletions
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) |