1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
|
//
// Copyright (c) ZeroC, Inc. All rights reserved.
//
#include <Ice/Ice.h>
#include <TestHelper.h>
#include <Test.h>
using namespace std;
using namespace Test;
namespace
{
Ice::IPConnectionInfoPtr
getIPConnectionInfo(const Ice::ConnectionInfoPtr& info)
{
for(Ice::ConnectionInfoPtr p = info; p; p = p->underlying)
{
Ice::IPConnectionInfoPtr ipInfo = ICE_DYNAMIC_CAST(Ice::IPConnectionInfo, p);
if(ipInfo)
{
return ipInfo;
}
}
return ICE_NULLPTR;
}
}
void
allTests(Test::TestHelper* helper)
{
Ice::CommunicatorPtr communicator = helper->communicator();
string sref = "test:" + helper->getTestEndpoint();
Ice::ObjectPrxPtr obj = communicator->stringToProxy(sref);
test(obj);
int proxyPort = communicator->getProperties()->getPropertyAsInt("Ice.HTTPProxyPort");
if(proxyPort == 0)
{
proxyPort = communicator->getProperties()->getPropertyAsInt("Ice.SOCKSProxyPort");
}
TestIntfPrxPtr test = ICE_CHECKED_CAST(TestIntfPrx, obj);
test(test);
cout << "testing connection... " << flush;
{
test->ice_ping();
}
cout << "ok" << endl;
cout << "testing connection information... " << flush;
{
Ice::IPConnectionInfoPtr info = getIPConnectionInfo(test->ice_getConnection()->getInfo());
test(info->remotePort == proxyPort); // make sure we are connected to the proxy port.
}
cout << "ok" << endl;
cout << "shutting down server... " << flush;
{
test->shutdown();
}
cout << "ok" << endl;
cout << "testing connection failure... " << flush;
{
try
{
test->ice_ping();
test(false);
}
catch(const Ice::LocalException&)
{
}
}
cout << "ok" << endl;
}
|