summaryrefslogtreecommitdiff
path: root/cpp/test/Ice/adapterDeactivation/Server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/test/Ice/adapterDeactivation/Server.cpp')
-rw-r--r--cpp/test/Ice/adapterDeactivation/Server.cpp57
1 files changed, 39 insertions, 18 deletions
diff --git a/cpp/test/Ice/adapterDeactivation/Server.cpp b/cpp/test/Ice/adapterDeactivation/Server.cpp
index bfb0ba05c12..e9ab9171ffd 100644
--- a/cpp/test/Ice/adapterDeactivation/Server.cpp
+++ b/cpp/test/Ice/adapterDeactivation/Server.cpp
@@ -11,32 +11,53 @@
#include <ServantLocatorI.h>
#include <TestCommon.h>
+DEFINE_TEST("server")
+
using namespace std;
using namespace Ice;
-class TestServer : public Application
-{
-public:
-
- virtual int run(int, char*[]);
-};
-
-int
-main(int argc, char* argv[])
-{
- TestServer app;
- return app.main(argc, argv);
-}
-
int
-TestServer::run(int argc, char* argv[])
+run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator)
{
- communicator()->getProperties()->setProperty("TestAdapter.Endpoints", "default -p 12010:udp");
- Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("TestAdapter");
+ communicator->getProperties()->setProperty("TestAdapter.Endpoints", "default -p 12010:udp");
+ Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter");
ServantLocatorPtr locator = new ServantLocatorI;
-
adapter->addServantLocator(locator, "");
adapter->activate();
+ TEST_READY
adapter->waitForDeactivate();
return EXIT_SUCCESS;
}
+
+int
+main(int argc, char* argv[])
+{
+ int status;
+ Ice::CommunicatorPtr communicator;
+
+ try
+ {
+ communicator = Ice::initialize(argc, argv);
+ status = run(argc, argv, communicator);
+ }
+ catch(const Ice::Exception& ex)
+ {
+ cerr << ex << endl;
+ status = EXIT_FAILURE;
+ }
+
+ if(communicator)
+ {
+ try
+ {
+ communicator->destroy();
+ }
+ catch(const Ice::Exception& ex)
+ {
+ cerr << ex << endl;
+ status = EXIT_FAILURE;
+ }
+ }
+
+ return status;
+}