summaryrefslogtreecommitdiff
path: root/cpp/test/Common/TestCommon.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/test/Common/TestCommon.cpp')
-rw-r--r--cpp/test/Common/TestCommon.cpp87
1 files changed, 87 insertions, 0 deletions
diff --git a/cpp/test/Common/TestCommon.cpp b/cpp/test/Common/TestCommon.cpp
new file mode 100644
index 00000000000..ecdcba43d37
--- /dev/null
+++ b/cpp/test/Common/TestCommon.cpp
@@ -0,0 +1,87 @@
+// **********************************************************************
+//
+// Copyright (c) 2003-2016 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;
+}