summaryrefslogtreecommitdiff
path: root/cpp/test/Ice/slicing/objects/AllTests.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/test/Ice/slicing/objects/AllTests.cpp')
-rw-r--r--cpp/test/Ice/slicing/objects/AllTests.cpp920
1 files changed, 753 insertions, 167 deletions
diff --git a/cpp/test/Ice/slicing/objects/AllTests.cpp b/cpp/test/Ice/slicing/objects/AllTests.cpp
index 6f6d31ef209..b048c8129d4 100644
--- a/cpp/test/Ice/slicing/objects/AllTests.cpp
+++ b/cpp/test/Ice/slicing/objects/AllTests.cpp
@@ -52,7 +52,10 @@ private:
bool _called;
};
-class Callback : public CallbackBase, public IceUtil::Shared
+class Callback : public CallbackBase
+#ifndef ICE_CPP11_MAPPING
+ , public virtual IceUtil::Shared
+#endif
{
public:
@@ -61,7 +64,7 @@ public:
{
test(o);
test(o->ice_id() == "::Test::SBase");
- SBasePtr sb = SBasePtr::dynamicCast(o);
+ SBasePtr sb = ICE_DYNAMIC_CAST(SBase, o);
test(sb);
test(sb->sb == "SBase.sb");
called();
@@ -77,12 +80,12 @@ public:
void
response_SBSKnownDerivedAsSBase(const SBasePtr& sb)
{
- SBSKnownDerivedPtr sbskd = SBSKnownDerivedPtr::dynamicCast(sb);
+ SBSKnownDerivedPtr sbskd = ICE_DYNAMIC_CAST(SBSKnownDerived, sb);
test(sbskd);
test(sbskd->sbskd == "SBSKnownDerived.sbskd");
called();
}
-
+
void
response_SBSKnownDerivedAsSBSKnownDerived(const SBSKnownDerivedPtr& sbskd)
{
@@ -106,7 +109,7 @@ public:
void
exception_SBSUnknownDerivedAsSBaseCompact(const Ice::Exception& exc)
{
- test(exc.ice_name() == "Ice::NoObjectFactoryException");
+ test(exc.ice_id() == "::Ice::NoValueFactoryException");
called();
}
@@ -119,15 +122,15 @@ public:
void
exception_SUnknownAsObject10(const Ice::Exception& exc)
{
- test(exc.ice_name() == "Ice::NoObjectFactoryException");
+ test(exc.ice_id() == "::Ice::NoValueFactoryException");
called();
}
void
response_SUnknownAsObject11(const Ice::ObjectPtr& o)
{
- test(Ice::UnknownSlicedObjectPtr::dynamicCast(o));
- test(Ice::UnknownSlicedObjectPtr::dynamicCast(o)->getUnknownTypeId() == "::Test::SUnknown");
+ test(ICE_DYNAMIC_CAST(Ice::UnknownSlicedValue, o));
+ test(ICE_DYNAMIC_CAST(Ice::UnknownSlicedValue, o)->getUnknownTypeId() == "::Test::SUnknown");
called();
}
@@ -170,7 +173,7 @@ public:
test(b1->sb == "D1.sb");
test(b1->pb);
test(b1->pb != b1);
- D1Ptr d1 = D1Ptr::dynamicCast(b1);
+ D1Ptr d1 = ICE_DYNAMIC_CAST(D1, b1);
test(d1);
test(d1->sd1 == "D1.sd1");
test(d1->pd1);
@@ -216,7 +219,7 @@ public:
test(b1->ice_id() == "::Test::D1");
test(b1->sb == "D1.sb");
test(b1->pb == b2);
- D1Ptr d1 = D1Ptr::dynamicCast(b1);
+ D1Ptr d1 = ICE_DYNAMIC_CAST(D1, b1);
test(d1);
test(d1->sd1 == "D1.sd1");
test(d1->pd1 == b2);
@@ -230,7 +233,7 @@ public:
test(b1->ice_id() == "::Test::D1");
test(b1->sb == "D1.sb");
test(b1->pb == b2);
- D1Ptr d1 = D1Ptr::dynamicCast(b1);
+ D1Ptr d1 = ICE_DYNAMIC_CAST(D1, b1);
test(d1);
test(d1->sd1 == "D1.sd1");
test(d1->pd1 == b2);
@@ -316,7 +319,7 @@ public:
void
exception_throwBaseAsBase(const ::Ice::Exception& ex)
{
- test(ex.ice_name() == "Test::BaseException");
+ test(ex.ice_id() == "::Test::BaseException");
const BaseException& e = dynamic_cast<const BaseException&>(ex);
test(e.sbe == "sbe");
test(e.pb);
@@ -328,7 +331,7 @@ public:
void
exception_throwDerivedAsBase(const ::Ice::Exception& ex)
{
- test(ex.ice_name() == "Test::DerivedException");
+ test(ex.ice_id() == "::Test::DerivedException");
const DerivedException& e = dynamic_cast<const DerivedException&>(ex);
test(e.sbe == "sbe");
test(e.pb);
@@ -346,7 +349,7 @@ public:
void
exception_throwDerivedAsDerived(const ::Ice::Exception& ex)
{
- test(ex.ice_name() == "Test::DerivedException");
+ test(ex.ice_id() == "::Test::DerivedException");
const DerivedException& e = dynamic_cast<const DerivedException&>(ex);
test(e.sbe == "sbe");
test(e.pb);
@@ -365,7 +368,7 @@ public:
void
exception_throwUnknownDerivedAsBase(const ::Ice::Exception& ex)
{
- test(ex.ice_name() == "Test::BaseException");
+ test(ex.ice_id() == "::Test::BaseException");
const BaseException& e = dynamic_cast<const BaseException&>(ex);
test(e.sbe == "sbe");
test(e.pb);
@@ -375,16 +378,9 @@ public:
}
void
- response_useForward(const ForwardPtr& f)
- {
- test(f);
- called();
- }
-
- void
response_preserved1(const PBasePtr& r)
{
- PDerivedPtr pd = PDerivedPtr::dynamicCast(r);
+ PDerivedPtr pd = ICE_DYNAMIC_CAST(PDerived, r);
test(pd);
test(pd->pi == 3);
test(pd->ps == "preserved");
@@ -395,7 +391,7 @@ public:
void
response_preserved2(const PBasePtr& r)
{
- PCUnknownPtr p2 = PCUnknownPtr::dynamicCast(r);
+ PCUnknownPtr p2 = ICE_DYNAMIC_CAST(PCUnknown, r);
test(!p2);
test(r->pi == 3);
called();
@@ -407,7 +403,7 @@ public:
//
// Encoding 1.0
//
- PCDerivedPtr p2 = PCDerivedPtr::dynamicCast(r);
+ PCDerivedPtr p2 = ICE_DYNAMIC_CAST(PCDerived, r);
test(!p2);
test(r->pi == 3);
called();
@@ -419,7 +415,7 @@ public:
//
// Encoding > 1.0
//
- PCDerivedPtr p2 = PCDerivedPtr::dynamicCast(r);
+ PCDerivedPtr p2 = ICE_DYNAMIC_CAST(PCDerived, r);
test(p2);
test(p2->pi == 3);
test(p2->pbs[0] == p2);
@@ -429,12 +425,12 @@ public:
void
response_preserved5(const PBasePtr& r)
{
- PCDerived3Ptr p3 = PCDerived3Ptr::dynamicCast(r);
+ PCDerived3Ptr p3 = ICE_DYNAMIC_CAST(PCDerived3, r);
test(p3);
test(p3->pi == 3);
for(int i = 0; i < 300; ++i)
{
- PCDerived2Ptr p2 = PCDerived2Ptr::dynamicCast(p3->pbs[i]);
+ PCDerived2Ptr p2 = ICE_DYNAMIC_CAST(PCDerived2, p3->pbs[i]);
test(p2->pi == i);
test(p2->pbs.size() == 1);
test(!p2->pbs[0]);
@@ -451,7 +447,7 @@ public:
//
// Encoding 1.0
//
- CompactPCDerivedPtr p2 = CompactPCDerivedPtr::dynamicCast(r);
+ CompactPCDerivedPtr p2 = ICE_DYNAMIC_CAST(CompactPCDerived, r);
test(!p2);
test(r->pi == 3);
called();
@@ -463,20 +459,20 @@ public:
//
// Encoding > 1.0
//
- CompactPCDerivedPtr p2 = CompactPCDerivedPtr::dynamicCast(r);
+ CompactPCDerivedPtr p2 = ICE_DYNAMIC_CAST(CompactPCDerived, r);
test(p2);
test(p2->pi == 3);
test(p2->pbs[0] == p2);
called();
}
- void
+ void
response()
{
test(false);
}
- void
+ void
exception(const ::Ice::Exception& ex)
{
if(!dynamic_cast<const Ice::OperationNotExistException*>(&ex))
@@ -488,15 +484,15 @@ public:
called();
}
}
-
+
BPtr rb;
SS3 rss3;
BDict rbdict;
BDict obdict;
};
-typedef IceUtil::Handle<Callback> CallbackPtr;
+ICE_DEFINE_PTR(CallbackPtr, Callback);
-class PNodeI : virtual public PNode
+class PNodeI : public virtual PNode
{
public:
@@ -515,7 +511,8 @@ public:
int PNodeI::counter = 0;
-class NodeFactoryI : public Ice::ObjectFactory
+#ifndef ICE_CPP11_MAPPING
+class NodeFactoryI : public Ice::ValueFactory
{
public:
@@ -532,8 +529,9 @@ public:
{
}
};
+#endif
-class PreservedI : virtual public Preserved
+class PreservedI : public virtual Preserved
{
public:
@@ -552,7 +550,8 @@ public:
int PreservedI::counter = 0;
-class PreservedFactoryI : public Ice::ObjectFactory
+#ifndef ICE_CPP11_MAPPING
+class PreservedFactoryI : public Ice::ValueFactory
{
public:
@@ -569,20 +568,21 @@ public:
{
}
};
+#endif
void
-testUOO(const TestIntfPrx& test)
+testUOO(const TestIntfPrxPtr& test)
{
- Ice::ObjectPtr o;
+ Ice::ValuePtr o;
try
{
o = test->SUnknownAsObject();
test(test->ice_getEncodingVersion() != Ice::Encoding_1_0);
- test(Ice::UnknownSlicedObjectPtr::dynamicCast(o));
- test(Ice::UnknownSlicedObjectPtr::dynamicCast(o)->getUnknownTypeId() == "::Test::SUnknown");
+ test(ICE_DYNAMIC_CAST(Ice::UnknownSlicedValue, o));
+ test(ICE_DYNAMIC_CAST(Ice::UnknownSlicedValue, o)->getUnknownTypeId() == "::Test::SUnknown");
test->checkSUnknown(o);
}
- catch(const Ice::NoObjectFactoryException&)
+ catch(const Ice::NoValueFactoryException&)
{
test(test->ice_getEncodingVersion() == Ice::Encoding_1_0);
}
@@ -597,26 +597,31 @@ testUOO(const TestIntfPrx& test)
}
}
-TestIntfPrx
+TestIntfPrxPtr
allTests(const Ice::CommunicatorPtr& communicator)
{
- Ice::ObjectPrx obj = communicator->stringToProxy("Test:default -p 12010");
- TestIntfPrx test = TestIntfPrx::checkedCast(obj);
+ Ice::ObjectPrxPtr obj = communicator->stringToProxy("Test:" + getTestEndpoint(communicator, 0));
+ TestIntfPrxPtr test = ICE_CHECKED_CAST(TestIntfPrx, obj);
cout << "base as Object... " << flush;
{
- Ice::ObjectPtr o;
+ Ice::ValuePtr o;
try
{
o = test->SBaseAsObject();
test(o);
test(o->ice_id() == "::Test::SBase");
}
+ catch(const std::exception& ex)
+ {
+ cerr << ex.what() << endl;
+ test(false);
+ }
catch(...)
{
test(false);
}
- SBasePtr sb = SBasePtr::dynamicCast(o);
+ SBasePtr sb = ICE_DYNAMIC_CAST(SBase, o);
test(sb);
test(sb->sb == "SBase.sb");
}
@@ -624,10 +629,27 @@ allTests(const Ice::CommunicatorPtr& communicator)
cout << "base as Object (AMI)... " << flush;
{
- CallbackPtr cb = new Callback;
+#ifdef ICE_CPP11_MAPPING
+ auto f = test->SBaseAsObjectAsync();
+ try
+ {
+ auto o = f.get();
+ test(o);
+ test(o->ice_id() == "::Test::SBase");
+ auto sb = dynamic_pointer_cast<SBase>(o);
+ test(sb);
+ test(sb->sb == "SBase.sb");
+ }
+ catch(...)
+ {
+ test(false);
+ }
+#else
+ CallbackPtr cb = new Callback();
test->begin_SBaseAsObject(
newCallback_TestIntf_SBaseAsObject(cb, &Callback::response_SBaseAsObject, &Callback::exception));
cb->check();
+#endif
}
cout << "ok" << endl;
@@ -648,10 +670,22 @@ allTests(const Ice::CommunicatorPtr& communicator)
cout << "base as base (AMI)... " << flush;
{
+#ifdef ICE_CPP11_MAPPING
+ try
+ {
+ auto sb = test->SBaseAsSBaseAsync().get();
+ test(sb->sb == "SBase.sb");
+ }
+ catch(...)
+ {
+ test(false);
+ }
+#else
CallbackPtr cb = new Callback;
test->begin_SBaseAsSBase(
newCallback_TestIntf_SBaseAsSBase(cb, &Callback::response_SBaseAsSBase, &Callback::exception));
cb->check();
+#endif
}
cout << "ok" << endl;
@@ -667,7 +701,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
{
test(false);
}
- SBSKnownDerivedPtr sbskd = SBSKnownDerivedPtr::dynamicCast(sb);
+ SBSKnownDerivedPtr sbskd = ICE_DYNAMIC_CAST(SBSKnownDerived, sb);
test(sbskd);
test(sbskd->sbskd == "SBSKnownDerived.sbskd");
}
@@ -675,11 +709,28 @@ allTests(const Ice::CommunicatorPtr& communicator)
cout << "base with known derived as base (AMI)... " << flush;
{
+#ifdef ICE_CPP11_MAPPING
+ auto f = test->SBSKnownDerivedAsSBaseAsync();
+ try
+ {
+ shared_ptr<SBase> sb = f.get();
+ sb = test->SBSKnownDerivedAsSBase();
+ test(sb->sb == "SBSKnownDerived.sb");
+ SBSKnownDerivedPtr sbskd = ICE_DYNAMIC_CAST(SBSKnownDerived, sb);
+ test(sbskd);
+ test(sbskd->sbskd == "SBSKnownDerived.sbskd");
+ }
+ catch(...)
+ {
+ test(false);
+ }
+#else
CallbackPtr cb = new Callback;
test->begin_SBSKnownDerivedAsSBase(
newCallback_TestIntf_SBSKnownDerivedAsSBase(
cb, &Callback::response_SBSKnownDerivedAsSBase, &Callback::exception));
cb->check();
+#endif
}
cout << "ok" << endl;
@@ -700,11 +751,24 @@ allTests(const Ice::CommunicatorPtr& communicator)
cout << "base with known derived as known derived (AMI)... " << flush;
{
+#ifdef ICE_CPP11_MAPPING
+ auto f = test->SBSKnownDerivedAsSBSKnownDerivedAsync();
+ try
+ {
+ SBSKnownDerivedPtr sbskd = test->SBSKnownDerivedAsSBSKnownDerived();
+ test(sbskd->sbskd == "SBSKnownDerived.sbskd");
+ }
+ catch(...)
+ {
+ test(false);
+ }
+#else
CallbackPtr cb = new Callback;
test->begin_SBSKnownDerivedAsSBSKnownDerived(
newCallback_TestIntf_SBSKnownDerivedAsSBSKnownDerived(
cb, &Callback::response_SBSKnownDerivedAsSBSKnownDerived, &Callback::exception));
cb->check();
+#endif
}
cout << "ok" << endl;
@@ -753,7 +817,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
catch(const Ice::OperationNotExistException&)
{
}
- catch(const Ice::NoObjectFactoryException&)
+ catch(const Ice::NoValueFactoryException&)
{
// Expected.
}
@@ -766,22 +830,48 @@ allTests(const Ice::CommunicatorPtr& communicator)
cout << "base with unknown derived as base (AMI)... " << flush;
{
+#ifdef ICE_CPP11_MAPPING
+ auto f = test->SBSUnknownDerivedAsSBaseAsync();
+ try
+ {
+ SBasePtr sb = f.get();
+ test(sb->sb == "SBSUnknownDerived.sb");
+ }
+ catch(...)
+ {
+ test(false);
+ }
+#else
CallbackPtr cb = new Callback;
test->begin_SBSUnknownDerivedAsSBase(
newCallback_TestIntf_SBSUnknownDerivedAsSBase(
cb, &Callback::response_SBSUnknownDerivedAsSBase, &Callback::exception));
cb->check();
+#endif
}
if(test->ice_getEncodingVersion() == Ice::Encoding_1_0)
{
//
// This test succeeds for the 1.0 encoding.
//
+#ifdef ICE_CPP11_MAPPING
+ auto f = test->SBSUnknownDerivedAsSBaseCompactAsync();
+ try
+ {
+ SBasePtr sb = f.get();
+ test(sb->sb == "SBSUnknownDerived.sb");
+ }
+ catch(...)
+ {
+ test(false);
+ }
+#else
CallbackPtr cb = new Callback;
test->begin_SBSUnknownDerivedAsSBaseCompact(
newCallback_TestIntf_SBSUnknownDerivedAsSBaseCompact(
cb, &Callback::response_SBSUnknownDerivedAsSBase, &Callback::exception));
cb->check();
+#endif
}
else
{
@@ -789,12 +879,28 @@ allTests(const Ice::CommunicatorPtr& communicator)
// This test fails when using the compact format because the instance cannot
// be sliced to a known type.
//
+#ifdef ICE_CPP11_MAPPING
+ auto f = test->SBSUnknownDerivedAsSBaseCompactAsync();
+ try
+ {
+ f.get();
+ test(false);
+ }
+ catch(const Ice::NoValueFactoryException&)
+ {
+ }
+ catch(...)
+ {
+ test(false);
+ }
+#else
CallbackPtr cb = new Callback;
test->begin_SBSUnknownDerivedAsSBaseCompact(
newCallback_TestIntf_SBSUnknownDerivedAsSBaseCompact(
cb, &Callback::response_SBSUnknownDerivedAsSBaseCompact,
&Callback::exception_SBSUnknownDerivedAsSBaseCompact));
cb->check();
+#endif
}
cout << "ok" << endl;
@@ -808,6 +914,39 @@ allTests(const Ice::CommunicatorPtr& communicator)
{
try
{
+#ifdef ICE_CPP11_MAPPING
+ if(test->ice_getEncodingVersion() == Ice::Encoding_1_0)
+ {
+ auto f = test->SUnknownAsObjectAsync();
+ try
+ {
+ f.get();
+ test(false);
+ }
+ catch(const Ice::NoValueFactoryException&)
+ {
+ }
+ catch(...)
+ {
+ test(false);
+ }
+ }
+ else
+ {
+ auto f = test->SUnknownAsObjectAsync();
+ try
+ {
+ shared_ptr<Ice::Value> v = f.get();
+ test(dynamic_pointer_cast<Ice::UnknownSlicedValue>(v));
+ test(dynamic_pointer_cast<Ice::UnknownSlicedValue>(v)->getUnknownTypeId() == "::Test::SUnknown");
+ }
+ catch(...)
+ {
+ test(false);
+ }
+
+ }
+#else
CallbackPtr cb = new Callback;
if(test->ice_getEncodingVersion() == Ice::Encoding_1_0)
{
@@ -822,6 +961,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
cb, &Callback::response_SUnknownAsObject11, &Callback::exception_SUnknownAsObject11));
}
cb->check();
+#endif
}
catch(...)
{
@@ -849,11 +989,27 @@ allTests(const Ice::CommunicatorPtr& communicator)
cout << "one-element cycle (AMI)... " << flush;
{
+#ifdef ICE_CPP11_MAPPING
+ auto f = test->oneElementCycleAsync();
+ try
+ {
+ auto b = f.get();
+ test(b);
+ test(b->ice_id() == "::Test::B");
+ test(b->sb == "B1.sb");
+ test(b->pb == b);
+ }
+ catch(...)
+ {
+ test(false);
+ }
+#else
CallbackPtr cb = new Callback;
test->begin_oneElementCycle(
newCallback_TestIntf_oneElementCycle(
cb, &Callback::response_oneElementCycle, &Callback::exception));
cb->check();
+#endif
}
cout << "ok" << endl;
@@ -881,11 +1037,32 @@ allTests(const Ice::CommunicatorPtr& communicator)
cout << "two-element cycle (AMI)... " << flush;
{
+#ifdef ICE_CPP11_MAPPING
+ auto f = test->twoElementCycleAsync();
+ try
+ {
+ auto b1 = f.get();
+ test(b1);
+ test(b1->ice_id() == "::Test::B");
+ test(b1->sb == "B1.sb");
+
+ auto b2 = b1->pb;
+ test(b2);
+ test(b2->ice_id() == "::Test::B");
+ test(b2->sb == "B2.sb");
+ test(b2->pb == b1);
+ }
+ catch(...)
+ {
+ test(false);
+ }
+#else
CallbackPtr cb = new Callback;
test->begin_twoElementCycle(
newCallback_TestIntf_twoElementCycle(
cb, &Callback::response_twoElementCycle, &Callback::exception));
cb->check();
+#endif
}
cout << "ok" << endl;
@@ -900,7 +1077,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
test(b1->sb == "D1.sb");
test(b1->pb);
test(b1->pb != b1);
- D1Ptr d1 = D1Ptr::dynamicCast(b1);
+ D1Ptr d1 = ICE_DYNAMIC_CAST(D1, b1);
test(d1);
test(d1->sd1 == "D1.sd1");
test(d1->pd1);
@@ -922,9 +1099,38 @@ allTests(const Ice::CommunicatorPtr& communicator)
cout << "known derived pointer slicing as base (AMI)... " << flush;
{
+#ifdef ICE_CPP11_MAPPING
+ auto f = test->D1AsBAsync();
+ try
+ {
+ auto b1 = f.get();
+ test(b1);
+ test(b1->ice_id() == "::Test::D1");
+ test(b1->sb == "D1.sb");
+ test(b1->pb);
+ test(b1->pb != b1);
+ auto d1 = dynamic_pointer_cast<D1>(b1);
+ test(d1);
+ test(d1->sd1 == "D1.sd1");
+ test(d1->pd1);
+ test(d1->pd1 != b1);
+ test(b1->pb == d1->pd1);
+
+ auto b2 = b1->pb;
+ test(b2);
+ test(b2->pb == b1);
+ test(b2->sb == "D2.sb");
+ test(b2->ice_id() == "::Test::B");
+ }
+ catch(...)
+ {
+ test(false);
+ }
+#else
CallbackPtr cb = new Callback;
test->begin_D1AsB(newCallback_TestIntf_D1AsB(cb, &Callback::response_D1AsB, &Callback::exception));
cb->check();
+#endif
}
cout << "ok" << endl;
@@ -955,9 +1161,32 @@ allTests(const Ice::CommunicatorPtr& communicator)
cout << "known derived pointer slicing as derived (AMI)... " << flush;
{
+#ifdef ICE_CPP11_MAPPING
+ auto f = test->D1AsD1Async();
+ try
+ {
+ auto d1 = f.get();
+ test(d1);
+ test(d1->ice_id() == "::Test::D1");
+ test(d1->sb == "D1.sb");
+ test(d1->pb);
+ test(d1->pb != d1);
+
+ auto b2 = d1->pb;
+ test(b2);
+ test(b2->ice_id() == "::Test::B");
+ test(b2->sb == "D2.sb");
+ test(b2->pb == d1);
+ }
+ catch(...)
+ {
+ test(false);
+ }
+#else
CallbackPtr cb = new Callback;
test->begin_D1AsD1(newCallback_TestIntf_D1AsD1(cb, &Callback::response_D1AsD1, &Callback::exception));
cb->check();
+#endif
}
cout << "ok" << endl;
@@ -978,7 +1207,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
test(b1->ice_id() == "::Test::D1");
test(b1->sb == "D1.sb");
test(b1->pb == b2);
- D1Ptr d1 = D1Ptr::dynamicCast(b1);
+ D1Ptr d1 = ICE_DYNAMIC_CAST(D1, b1);
test(d1);
test(d1->sd1 == "D1.sd1");
test(d1->pd1 == b2);
@@ -992,9 +1221,36 @@ allTests(const Ice::CommunicatorPtr& communicator)
cout << "unknown derived pointer slicing as base (AMI)... " << flush;
{
+#ifdef ICE_CPP11_MAPPING
+ auto f = test->D2AsBAsync();
+ try
+ {
+ auto b2 = test->D2AsB();
+ test(b2);
+ test(b2->ice_id() == "::Test::B");
+ test(b2->sb == "D2.sb");
+ test(b2->pb);
+ test(b2->pb != b2);
+
+ auto b1 = b2->pb;
+ test(b1);
+ test(b1->ice_id() == "::Test::D1");
+ test(b1->sb == "D1.sb");
+ test(b1->pb == b2);
+ auto d1 = dynamic_pointer_cast<D1>(b1);
+ test(d1);
+ test(d1->sd1 == "D1.sd1");
+ test(d1->pd1 == b2);
+ }
+ catch(...)
+ {
+ test(false);
+ }
+#else
CallbackPtr cb = new Callback;
test->begin_D2AsB(newCallback_TestIntf_D2AsB(cb, &Callback::response_D2AsB, &Callback::exception));
cb->check();
+#endif
}
cout << "ok" << endl;
@@ -1010,7 +1266,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
test(b1->ice_id() == "::Test::D1");
test(b1->sb == "D1.sb");
test(b1->pb == b2);
- D1Ptr d1 = D1Ptr::dynamicCast(b1);
+ D1Ptr d1 = ICE_DYNAMIC_CAST(D1, b1);
test(d1);
test(d1->sd1 == "D1.sd1");
test(d1->pd1 == b2);
@@ -1029,10 +1285,38 @@ allTests(const Ice::CommunicatorPtr& communicator)
cout << "param ptr slicing with known first (AMI)... " << flush;
{
+#ifdef ICE_CPP11_MAPPING
+ auto f = test->paramTest1Async();
+ try
+ {
+ auto result = f.get();
+ auto b1 = move(result.p1);
+ auto b2 = move(result.p2);
+
+ test(b1);
+ test(b1->ice_id() == "::Test::D1");
+ test(b1->sb == "D1.sb");
+ test(b1->pb == b2);
+ D1Ptr d1 = ICE_DYNAMIC_CAST(D1, b1);
+ test(d1);
+ test(d1->sd1 == "D1.sd1");
+ test(d1->pd1 == b2);
+
+ test(b2);
+ test(b2->ice_id() == "::Test::B"); // No factory, must be sliced
+ test(b2->sb == "D2.sb");
+ test(b2->pb == b1);
+ }
+ catch(...)
+ {
+ test(false);
+ }
+#else
CallbackPtr cb = new Callback;
test->begin_paramTest1(
newCallback_TestIntf_paramTest1(cb, &Callback::response_paramTest1, &Callback::exception));
cb->check();
+#endif
}
cout << "ok" << endl;
@@ -1048,7 +1332,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
test(b1->ice_id() == "::Test::D1");
test(b1->sb == "D1.sb");
test(b1->pb == b2);
- D1Ptr d1 = D1Ptr::dynamicCast(b1);
+ D1Ptr d1 = ICE_DYNAMIC_CAST(D1, b1);
test(d1);
test(d1->sd1 == "D1.sd1");
test(d1->pd1 == b2);
@@ -1083,10 +1367,23 @@ allTests(const Ice::CommunicatorPtr& communicator)
cout << "return value identity with known first (AMI)... " << flush;
{
+#ifdef ICE_CPP11_MAPPING
+ auto f = test->returnTest1Async();
+ try
+ {
+ auto result = f.get();
+ test(result.returnValue == result.p1);
+ }
+ catch(...)
+ {
+ test(false);
+ }
+#else
CallbackPtr cb = new Callback;
test->begin_returnTest1(
newCallback_TestIntf_returnTest1(cb, &Callback::response_returnTest1, &Callback::exception));
cb->check();
+#endif
}
cout << "ok" << endl;
@@ -1108,10 +1405,23 @@ allTests(const Ice::CommunicatorPtr& communicator)
cout << "return value identity with unknown first (AMI)... " << flush;
{
+#ifdef ICE_CPP11_MAPPING
+ auto f = test->returnTest2Async();
+ try
+ {
+ auto result = f.get();
+ test(result.returnValue == result.p2);
+ }
+ catch(...)
+ {
+ test(false);
+ }
+#else
CallbackPtr cb = new Callback;
test->begin_returnTest2(
newCallback_TestIntf_returnTest2(cb, &Callback::response_returnTest2, &Callback::exception));
cb->check();
+#endif
}
cout << "ok" << endl;
@@ -1119,24 +1429,26 @@ allTests(const Ice::CommunicatorPtr& communicator)
{
try
{
- D1Ptr d1 = new D1;
+ D1Ptr d1 = ICE_MAKE_SHARED(D1);
d1->sb = "D1.sb";
d1->sd1 = "D1.sd1";
- D3Ptr d3 = new D3;
+ D3Ptr d3 = ICE_MAKE_SHARED(D3);
d3->pb = d1;
d3->sb = "D3.sb";
d3->sd3 = "D3.sd3";
d3->pd3 = d1;
d1->pb = d3;
d1->pd1 = d3;
+#ifndef ICE_CPP11_MAPPING
d1->ice_collectable(true);
+#endif
BPtr b1 = test->returnTest3(d1, d3);
test(b1);
test(b1->sb == "D1.sb");
test(b1->ice_id() == "::Test::D1");
- D1Ptr p1 = D1Ptr::dynamicCast(b1);
+ D1Ptr p1 = ICE_DYNAMIC_CAST(D1, b1);
test(p1);
test(p1->sd1 == "D1.sd1");
test(p1->pd1 == b1->pb);
@@ -1146,7 +1458,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
test(b2->sb == "D3.sb");
test(b2->ice_id() == "::Test::B"); // Sliced by server
test(b2->pb == b1);
- D3Ptr p3 = D3Ptr::dynamicCast(b2);
+ D3Ptr p3 = ICE_DYNAMIC_CAST(D3, b2);
test(!p3);
test(b1 != d1);
@@ -1165,28 +1477,35 @@ allTests(const Ice::CommunicatorPtr& communicator)
{
try
{
- D1Ptr d1 = new D1;
+ D1Ptr d1 = ICE_MAKE_SHARED(D1);
d1->sb = "D1.sb";
d1->sd1 = "D1.sd1";
- D3Ptr d3 = new D3;
+ D3Ptr d3 = ICE_MAKE_SHARED(D3);
d3->pb = d1;
d3->sb = "D3.sb";
d3->sd3 = "D3.sd3";
d3->pd3 = d1;
d1->pb = d3;
d1->pd1 = d3;
+#ifndef ICE_CPP11_MAPPING
d1->ice_collectable(true);
-
+#endif
+
+#ifdef ICE_CPP11_MAPPING
+ auto f = test->returnTest3Async(d1, d3);
+ auto b1 = f.get();
+#else
CallbackPtr cb = new Callback;
test->begin_returnTest3(d1, d3,
newCallback_TestIntf_returnTest3(cb, &Callback::response_returnTest3, &Callback::exception));
cb->check();
BPtr b1 = cb->rb;
+#endif
test(b1);
test(b1->sb == "D1.sb");
test(b1->ice_id() == "::Test::D1");
- D1Ptr p1 = D1Ptr::dynamicCast(b1);
+ D1Ptr p1 = ICE_DYNAMIC_CAST(D1, b1);
test(p1);
test(p1->sd1 == "D1.sd1");
test(p1->pd1 == b1->pb);
@@ -1196,7 +1515,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
test(b2->sb == "D3.sb");
test(b2->ice_id() == "::Test::B"); // Sliced by server
test(b2->pb == b1);
- D3Ptr p3 = D3Ptr::dynamicCast(b2);
+ D3Ptr p3 = ICE_DYNAMIC_CAST(D3, b2);
test(!p3);
test(b1 != d1);
@@ -1215,24 +1534,26 @@ allTests(const Ice::CommunicatorPtr& communicator)
{
try
{
- D1Ptr d1 = new D1;
+ D1Ptr d1 = ICE_MAKE_SHARED(D1);
d1->sb = "D1.sb";
d1->sd1 = "D1.sd1";
- D3Ptr d3 = new D3;
+ D3Ptr d3 = ICE_MAKE_SHARED(D3);
d3->pb = d1;
d3->sb = "D3.sb";
d3->sd3 = "D3.sd3";
d3->pd3 = d1;
d1->pb = d3;
d1->pd1 = d3;
+#ifndef ICE_CPP11_MAPPING
d1->ice_collectable(true);
-
+#endif
BPtr b1 = test->returnTest3(d3, d1);
test(b1);
test(b1->sb == "D3.sb");
test(b1->ice_id() == "::Test::B"); // Sliced by server
- D3Ptr p1 = D3Ptr::dynamicCast(b1);
+
+ D3Ptr p1 = ICE_DYNAMIC_CAST(D3, b1);
test(!p1);
BPtr b2 = b1->pb;
@@ -1240,7 +1561,8 @@ allTests(const Ice::CommunicatorPtr& communicator)
test(b2->sb == "D1.sb");
test(b2->ice_id() == "::Test::D1");
test(b2->pb == b1);
- D1Ptr p3 = D1Ptr::dynamicCast(b2);
+
+ D1Ptr p3 = ICE_DYNAMIC_CAST(D1, b2);
test(p3);
test(p3->sd1 == "D1.sd1");
test(p3->pd1 == b1);
@@ -1261,28 +1583,35 @@ allTests(const Ice::CommunicatorPtr& communicator)
{
try
{
- D1Ptr d1 = new D1;
+ D1Ptr d1 = ICE_MAKE_SHARED(D1);
d1->sb = "D1.sb";
d1->sd1 = "D1.sd1";
- D3Ptr d3 = new D3;
+ D3Ptr d3 = ICE_MAKE_SHARED(D3);
d3->pb = d1;
d3->sb = "D3.sb";
d3->sd3 = "D3.sd3";
d3->pd3 = d1;
d1->pb = d3;
d1->pd1 = d3;
+#ifndef ICE_CPP11_MAPPING
d1->ice_collectable(true);
-
+#endif
+
+#ifdef ICE_CPP11_MAPPING
+ auto f = test->returnTest3Async(d3, d1);
+ auto b1 = f.get();
+#else
CallbackPtr cb = new Callback;
- test->begin_returnTest3(d3, d1,
+ test->begin_returnTest3(d3, d1,
newCallback_TestIntf_returnTest3(cb, &Callback::response_returnTest3, &Callback::exception));
cb->check();
BPtr b1 = cb->rb;
+#endif
test(b1);
test(b1->sb == "D3.sb");
test(b1->ice_id() == "::Test::B"); // Sliced by server
- D3Ptr p1 = D3Ptr::dynamicCast(b1);
+ D3Ptr p1 = ICE_DYNAMIC_CAST(D3, b1);
test(!p1);
BPtr b2 = b1->pb;
@@ -1290,7 +1619,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
test(b2->sb == "D1.sb");
test(b2->ice_id() == "::Test::D1");
test(b2->pb == b1);
- D1Ptr p3 = D1Ptr::dynamicCast(b2);
+ D1Ptr p3 = ICE_DYNAMIC_CAST(D1, b2);
test(p3);
test(p3->sd1 == "D1.sd1");
test(p3->pd1 == b1);
@@ -1339,10 +1668,40 @@ allTests(const Ice::CommunicatorPtr& communicator)
cout << "remainder unmarshaling (3 instances) (AMI)... " << flush;
{
+#ifdef ICE_CPP11_MAPPING
+ auto f = test->paramTest3Async();
+ try
+ {
+ auto result = f.get();
+ auto ret = result.returnValue;
+ auto p1 = result.p1;
+ auto p2 = result.p2;
+
+ test(p1);
+ test(p1->sb == "D2.sb (p1 1)");
+ test(p1->pb == 0);
+ test(p1->ice_id() == "::Test::B");
+
+ test(p2);
+ test(p2->sb == "D2.sb (p2 1)");
+ test(p2->pb == 0);
+ test(p2->ice_id() == "::Test::B");
+
+ test(ret);
+ test(ret->sb == "D1.sb (p2 2)");
+ test(ret->pb == 0);
+ test(ret->ice_id() == "::Test::D1");
+ }
+ catch(...)
+ {
+ test(false);
+ }
+#else
CallbackPtr cb = new Callback;
test->begin_paramTest3(
newCallback_TestIntf_paramTest3(cb, &Callback::response_paramTest3, &Callback::exception));
cb->check();
+#endif
}
cout << "ok" << endl;
@@ -1372,10 +1731,34 @@ allTests(const Ice::CommunicatorPtr& communicator)
cout << "remainder unmarshaling (4 instances) (AMI)... " << flush;
{
+#ifdef ICE_CPP11_MAPPING
+ auto f = test->paramTest4Async();
+ try
+ {
+ auto result = f.get();
+ auto ret = move(result.returnValue);
+ auto b = move(result.p);
+
+ test(b);
+ test(b->sb == "D4.sb (1)");
+ test(b->pb == nullptr);
+ test(b->ice_id() == "::Test::B");
+
+ test(ret);
+ test(ret->sb == "B.sb (2)");
+ test(ret->pb == nullptr);
+ test(ret->ice_id() == "::Test::B");
+ }
+ catch(...)
+ {
+ test(false);
+ }
+#else
CallbackPtr cb = new Callback;
test->begin_paramTest4(
newCallback_TestIntf_paramTest4(cb, &Callback::response_paramTest4, &Callback::exception));
cb->check();
+#endif
}
cout << "ok" << endl;
@@ -1383,18 +1766,20 @@ allTests(const Ice::CommunicatorPtr& communicator)
{
try
{
- BPtr b1 = new B;
+ BPtr b1 = ICE_MAKE_SHARED(B);
b1->sb = "B.sb(1)";
b1->pb = b1;
- D3Ptr d3 = new D3;
+ D3Ptr d3 = ICE_MAKE_SHARED(D3);
d3->sb = "D3.sb";
d3->pb = d3;
d3->sd3 = "D3.sd3";
d3->pd3 = b1;
+#ifndef ICE_CPP11_MAPPING
d3->ice_collectable(true);
+#endif
- BPtr b2 = new B;
+ BPtr b2 = ICE_MAKE_SHARED(B);
b2->sb = "B.sb(2)";
b2->pb = b1;
@@ -1416,27 +1801,32 @@ allTests(const Ice::CommunicatorPtr& communicator)
{
try
{
- BPtr b1 = new B;
+ BPtr b1 = ICE_MAKE_SHARED(B);
b1->sb = "B.sb(1)";
b1->pb = b1;
- D3Ptr d3 = new D3;
+ D3Ptr d3 = ICE_MAKE_SHARED(D3);
d3->sb = "D3.sb";
d3->pb = d3;
d3->sd3 = "D3.sd3";
d3->pd3 = b1;
+#ifndef ICE_CPP11_MAPPING
d3->ice_collectable(true);
+#endif
- BPtr b2 = new B;
+ BPtr b2 = ICE_MAKE_SHARED(B);
b2->sb = "B.sb(2)";
b2->pb = b1;
+#ifdef ICE_CPP11_MAPPING
+ auto r = test->returnTest3Async(d3, b2).get();
+#else
CallbackPtr cb = new Callback;
test->begin_returnTest3(d3, b2,
newCallback_TestIntf_returnTest3(cb, &Callback::response_returnTest3, &Callback::exception));
cb->check();
BPtr r = cb->rb;
-
+#endif
test(r);
test(r->ice_id() == "::Test::B");
test(r->sb == "D3.sb");
@@ -1454,25 +1844,27 @@ allTests(const Ice::CommunicatorPtr& communicator)
{
try
{
- D1Ptr d11 = new D1;
+ D1Ptr d11 = ICE_MAKE_SHARED(D1);
d11->sb = "D1.sb(1)";
d11->pb = d11;
d11->sd1 = "D1.sd1(1)";
- D3Ptr d3 = new D3;
+ D3Ptr d3 = ICE_MAKE_SHARED(D3);
d3->sb = "D3.sb";
d3->pb = d3;
d3->sd3 = "D3.sd3";
d3->pd3 = d11;
+#ifndef ICE_CPP11_MAPPING
d3->ice_collectable(true);
-
- D1Ptr d12 = new D1;
+#endif
+ D1Ptr d12 = ICE_MAKE_SHARED(D1);
d12->sb = "D1.sb(2)";
d12->pb = d12;
d12->sd1 = "D1.sd1(2)";
d12->pd1 = d11;
+#ifndef ICE_CPP11_MAPPING
d12->ice_collectable(true);
-
+#endif
BPtr r = test->returnTest3(d3, d12);
test(r);
test(r->ice_id() == "::Test::B");
@@ -1491,30 +1883,37 @@ allTests(const Ice::CommunicatorPtr& communicator)
{
try
{
- D1Ptr d11 = new D1;
+ D1Ptr d11 = ICE_MAKE_SHARED(D1);
d11->sb = "D1.sb(1)";
d11->pb = d11;
d11->sd1 = "D1.sd1(1)";
- D3Ptr d3 = new D3;
+ D3Ptr d3 = ICE_MAKE_SHARED(D3);
d3->sb = "D3.sb";
d3->pb = d3;
d3->sd3 = "D3.sd3";
d3->pd3 = d11;
+#ifndef ICE_CPP11_MAPPING
d3->ice_collectable(true);
-
- D1Ptr d12 = new D1;
+#endif
+ D1Ptr d12 = ICE_MAKE_SHARED(D1);
d12->sb = "D1.sb(2)";
d12->pb = d12;
d12->sd1 = "D1.sd1(2)";
d12->pd1 = d11;
+#ifndef ICE_CPP11_MAPPING
d12->ice_collectable(true);
+#endif
+#ifdef ICE_CPP11_MAPPING
+ auto r = test->returnTest3Async(d3, d12).get();
+#else
CallbackPtr cb = new Callback;
test->begin_returnTest3(d3, d12,
newCallback_TestIntf_returnTest3(cb, &Callback::response_returnTest3, &Callback::exception));
cb->check();
BPtr r = cb->rb;
+#endif
test(r);
test(r->ice_id() == "::Test::B");
test(r->sb == "D3.sb");
@@ -1533,31 +1932,32 @@ allTests(const Ice::CommunicatorPtr& communicator)
{
SS3 ss;
{
- BPtr ss1b = new B;
+ BPtr ss1b = ICE_MAKE_SHARED(B);
ss1b->sb = "B.sb";
ss1b->pb = ss1b;
- D1Ptr ss1d1 = new D1;
+ D1Ptr ss1d1 = ICE_MAKE_SHARED(D1);
ss1d1->sb = "D1.sb";
ss1d1->sd1 = "D1.sd1";
ss1d1->pb = ss1b;
- D3Ptr ss1d3 = new D3;
+ D3Ptr ss1d3 = ICE_MAKE_SHARED(D3);
ss1d3->sb = "D3.sb";
ss1d3->sd3 = "D3.sd3";
ss1d3->pb = ss1b;
+#ifndef ICE_CPP11_MAPPING
ss1d3->ice_collectable(true);
-
- BPtr ss2b = new B;
+#endif
+ BPtr ss2b = ICE_MAKE_SHARED(B);
ss2b->sb = "B.sb";
ss2b->pb = ss1b;
- D1Ptr ss2d1 = new D1;
+ D1Ptr ss2d1 = ICE_MAKE_SHARED(D1);
ss2d1->sb = "D1.sb";
ss2d1->sd1 = "D1.sd1";
ss2d1->pb = ss2b;
- D3Ptr ss2d3 = new D3;
+ D3Ptr ss2d3 = ICE_MAKE_SHARED(D3);
ss2d3->sb = "D3.sb";
ss2d3->sd3 = "D3.sd3";
ss2d3->pb = ss2b;
@@ -1568,19 +1968,20 @@ allTests(const Ice::CommunicatorPtr& communicator)
ss2d1->pd1 = ss1d3;
ss2d3->pd3 = ss1d1;
- SS1Ptr ss1 = new SS1;
+ SS1Ptr ss1 = ICE_MAKE_SHARED(SS1);
ss1->s.push_back(ss1b);
ss1->s.push_back(ss1d1);
ss1->s.push_back(ss1d3);
- SS2Ptr ss2 = new SS2;
+ SS2Ptr ss2 = ICE_MAKE_SHARED(SS2);
ss2->s.push_back(ss2b);
ss2->s.push_back(ss2d1);
ss2->s.push_back(ss2d3);
-
+
+#ifndef ICE_CPP11_MAPPING
ss1->ice_collectable(true);
ss2->ice_collectable(true);
-
+#endif
ss = test->sequenceTest(ss1, ss2);
}
@@ -1624,31 +2025,33 @@ allTests(const Ice::CommunicatorPtr& communicator)
{
SS3 ss;
{
- BPtr ss1b = new B;
+ BPtr ss1b = ICE_MAKE_SHARED(B);
ss1b->sb = "B.sb";
ss1b->pb = ss1b;
- D1Ptr ss1d1 = new D1;
+ D1Ptr ss1d1 = ICE_MAKE_SHARED(D1);
ss1d1->sb = "D1.sb";
ss1d1->sd1 = "D1.sd1";
ss1d1->pb = ss1b;
- D3Ptr ss1d3 = new D3;
+ D3Ptr ss1d3 = ICE_MAKE_SHARED(D3);
ss1d3->sb = "D3.sb";
ss1d3->sd3 = "D3.sd3";
ss1d3->pb = ss1b;
+#ifndef ICE_CPP11_MAPPING
ss1d3->ice_collectable(true);
+#endif
- BPtr ss2b = new B;
+ BPtr ss2b = ICE_MAKE_SHARED(B);
ss2b->sb = "B.sb";
ss2b->pb = ss1b;
- D1Ptr ss2d1 = new D1;
+ D1Ptr ss2d1 = ICE_MAKE_SHARED(D1);
ss2d1->sb = "D1.sb";
ss2d1->sd1 = "D1.sd1";
ss2d1->pb = ss2b;
- D3Ptr ss2d3 = new D3;
+ D3Ptr ss2d3 = ICE_MAKE_SHARED(D3);
ss2d3->sb = "D3.sb";
ss2d3->sd3 = "D3.sd3";
ss2d3->pb = ss2b;
@@ -1659,24 +2062,29 @@ allTests(const Ice::CommunicatorPtr& communicator)
ss2d1->pd1 = ss1d3;
ss2d3->pd3 = ss1d1;
- SS1Ptr ss1 = new SS1;
+ SS1Ptr ss1 = ICE_MAKE_SHARED(SS1);
ss1->s.push_back(ss1b);
ss1->s.push_back(ss1d1);
ss1->s.push_back(ss1d3);
- SS2Ptr ss2 = new SS2;
+ SS2Ptr ss2 = ICE_MAKE_SHARED(SS2);
ss2->s.push_back(ss2b);
ss2->s.push_back(ss2d1);
ss2->s.push_back(ss2d3);
-
+#ifndef ICE_CPP11_MAPPING
ss1->ice_collectable(true);
ss2->ice_collectable(true);
+#endif
+#ifdef ICE_CPP11_MAPPING
+ ss = test->sequenceTestAsync(ss1, ss2).get();
+#else
CallbackPtr cb = new Callback;
test->begin_sequenceTest(ss1, ss2,
newCallback_TestIntf_sequenceTest(cb, &Callback::response_sequenceTest, &Callback::exception));
cb->check();
ss = cb->rss3;
+#endif
}
test(ss.c1);
@@ -1725,12 +2133,14 @@ allTests(const Ice::CommunicatorPtr& communicator)
{
ostringstream s;
s << "D1." << i;
- D1Ptr d1 = new D1;
+ D1Ptr d1 = ICE_MAKE_SHARED(D1);
d1->sb = s.str();
d1->pb = d1;
d1->sd1 = s.str();
bin[i] = d1;
+#ifndef ICE_CPP11_MAPPING
d1->ice_collectable(true);
+#endif
}
r = test->dictionaryTest(bin, bout);
@@ -1758,7 +2168,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
s << "D1." << i * 20;
test(b->sb == s.str());
test(b->pb == (i == 0 ? BPtr(0) : r.find((i - 1) * 20)->second));
- D1Ptr d1 = D1Ptr::dynamicCast(b);
+ D1Ptr d1 = ICE_DYNAMIC_CAST(D1, b);
test(d1);
test(d1->sd1 == s.str());
test(d1->pd1 == d1);
@@ -1783,20 +2193,28 @@ allTests(const Ice::CommunicatorPtr& communicator)
{
ostringstream s;
s << "D1." << i;
- D1Ptr d1 = new D1;
+ D1Ptr d1 = ICE_MAKE_SHARED(D1);
d1->sb = s.str();
d1->pb = d1;
d1->sd1 = s.str();
bin[i] = d1;
+#ifndef ICE_CPP11_MAPPING
d1->ice_collectable(true);
+#endif
}
+#ifdef ICE_CPP11_MAPPING
+ auto result = test->dictionaryTestAsync(bin).get();
+ r = result.returnValue;
+ bout = result.bout;
+#else
CallbackPtr cb = new Callback;
test->begin_dictionaryTest(bin,
newCallback_TestIntf_dictionaryTest(cb, &Callback::response_dictionaryTest, &Callback::exception));
cb->check();
bout = cb->obdict;
r = cb->rbdict;
+#endif
test(bout.size() == 10);
for(i = 0; i < 10; ++i)
@@ -1821,7 +2239,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
s << "D1." << i * 20;
test(b->sb == s.str());
test(b->pb == (i == 0 ? BPtr(0) : r.find((i - 1) * 20)->second));
- D1Ptr d1 = D1Ptr::dynamicCast(b);
+ D1Ptr d1 = ICE_DYNAMIC_CAST(D1, b);
test(d1);
test(d1->sd1 == s.str());
test(d1->pd1 == d1);
@@ -1843,7 +2261,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
}
catch(const BaseException& e)
{
- test(e.ice_name() == "Test::BaseException");
+ test(e.ice_id() == "::Test::BaseException");
test(e.sbe == "sbe");
test(e.pb);
test(e.pb->sb == "sb");
@@ -1858,10 +2276,30 @@ allTests(const Ice::CommunicatorPtr& communicator)
cout << "base exception thrown as base exception (AMI)... " << flush;
{
+#ifdef ICE_CPP11_MAPPING
+ try
+ {
+ test->throwBaseAsBaseAsync().get();
+ test(false);
+ }
+ catch(const BaseException& ex)
+ {
+ test(ex.ice_id() == "::Test::BaseException");
+ test(ex.sbe == "sbe");
+ test(ex.pb);
+ test(ex.pb->sb == "sb");
+ test(ex.pb->pb == ex.pb);
+ }
+ catch(...)
+ {
+ test(false);
+ }
+#else
CallbackPtr cb = new Callback;
test->begin_throwBaseAsBase(
newCallback_TestIntf_throwBaseAsBase(cb, &Callback::response, &Callback::exception_throwBaseAsBase));
cb->check();
+#endif
}
cout << "ok" << endl;
@@ -1874,7 +2312,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
}
catch(const DerivedException& e)
{
- test(e.ice_name() == "Test::DerivedException");
+ test(e.ice_id() == "::Test::DerivedException");
test(e.sbe == "sbe");
test(e.pb);
test(e.pb->sb == "sb1");
@@ -1895,10 +2333,36 @@ allTests(const Ice::CommunicatorPtr& communicator)
cout << "derived exception thrown as base exception (AMI)... " << flush;
{
+#ifdef ICE_CPP11_MAPPING
+ try
+ {
+ test->throwDerivedAsBaseAsync().get();
+ test(false);
+ }
+ catch(const DerivedException& ex)
+ {
+ test(ex.ice_id() == "::Test::DerivedException");
+ test(ex.sbe == "sbe");
+ test(ex.pb);
+ test(ex.pb->sb == "sb1");
+ test(ex.pb->pb == ex.pb);
+ test(ex.sde == "sde1");
+ test(ex.pd1);
+ test(ex.pd1->sb == "sb2");
+ test(ex.pd1->pb == ex.pd1);
+ test(ex.pd1->sd1 == "sd2");
+ test(ex.pd1->pd1 == ex.pd1);
+ }
+ catch(...)
+ {
+ test(false);
+ }
+#else
CallbackPtr cb = new Callback;
test->begin_throwDerivedAsBase(
newCallback_TestIntf_throwDerivedAsBase(cb, &Callback::response, &Callback::exception_throwDerivedAsBase));
cb->check();
+#endif
}
cout << "ok" << endl;
@@ -1911,7 +2375,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
}
catch(const DerivedException& e)
{
- test(e.ice_name() == "Test::DerivedException");
+ test(e.ice_id() == "::Test::DerivedException");
test(e.sbe == "sbe");
test(e.pb);
test(e.pb->sb == "sb1");
@@ -1932,11 +2396,37 @@ allTests(const Ice::CommunicatorPtr& communicator)
cout << "derived exception thrown as derived exception (AMI)... " << flush;
{
+#ifdef ICE_CPP11_MAPPING
+ try
+ {
+ test->throwDerivedAsDerivedAsync().get();
+ test(false);
+ }
+ catch(const DerivedException& e)
+ {
+ test(e.ice_id() == "::Test::DerivedException");
+ test(e.sbe == "sbe");
+ test(e.pb);
+ test(e.pb->sb == "sb1");
+ test(e.pb->pb == e.pb);
+ test(e.sde == "sde1");
+ test(e.pd1);
+ test(e.pd1->sb == "sb2");
+ test(e.pd1->pb == e.pd1);
+ test(e.pd1->sd1 == "sd2");
+ test(e.pd1->pd1 == e.pd1);
+ }
+ catch(...)
+ {
+ test(false);
+ }
+#else
CallbackPtr cb = new Callback;
test->begin_throwDerivedAsDerived(
newCallback_TestIntf_throwDerivedAsDerived(
cb, &Callback::response, &Callback::exception_throwDerivedAsDerived));
cb->check();
+#endif
}
cout << "ok" << endl;
@@ -1949,7 +2439,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
}
catch(const BaseException& e)
{
- test(e.ice_name() == "Test::BaseException");
+ test(e.ice_id() == "::Test::BaseException");
test(e.sbe == "sbe");
test(e.pb);
test(e.pb->sb == "sb d2");
@@ -1964,35 +2454,31 @@ allTests(const Ice::CommunicatorPtr& communicator)
cout << "unknown derived exception thrown as base exception (AMI)... " << flush;
{
- CallbackPtr cb = new Callback;
- test->begin_throwUnknownDerivedAsBase(
- newCallback_TestIntf_throwUnknownDerivedAsBase(
- cb, &Callback::response, &Callback::exception_throwUnknownDerivedAsBase));
- cb->check();
- }
- cout << "ok" << endl;
-
- cout << "forward-declared class... " << flush;
- {
+#ifdef ICE_CPP11_MAPPING
try
{
- ForwardPtr f;
- test->useForward(f);
- test(f);
+ test->throwUnknownDerivedAsBaseAsync().get();
+ test(false);
+ }
+ catch(const BaseException& e)
+ {
+ test(e.ice_id() == "::Test::BaseException");
+ test(e.sbe == "sbe");
+ test(e.pb);
+ test(e.pb->sb == "sb d2");
+ test(e.pb->pb == e.pb);
}
catch(...)
{
test(false);
}
- }
- cout << "ok" << endl;
-
- cout << "forward-declared class (AMI)... " << flush;
- {
+#else
CallbackPtr cb = new Callback;
- test->begin_useForward(
- newCallback_TestIntf_useForward(cb, &Callback::response_useForward, &Callback::exception));
+ test->begin_throwUnknownDerivedAsBase(
+ newCallback_TestIntf_throwUnknownDerivedAsBase(
+ cb, &Callback::response, &Callback::exception_throwUnknownDerivedAsBase));
cb->check();
+#endif
}
cout << "ok" << endl;
@@ -2002,14 +2488,15 @@ allTests(const Ice::CommunicatorPtr& communicator)
//
// Server knows the most-derived class PDerived.
//
- PDerivedPtr pd = new PDerived;
+ PDerivedPtr pd = ICE_MAKE_SHARED(PDerived);
pd->pi = 3;
pd->ps = "preserved";
pd->pb = pd;
+#ifndef ICE_CPP11_MAPPING
pd->ice_collectable(true);
-
+#endif
PBasePtr r = test->exchangePBase(pd);
- PDerivedPtr p2 = PDerivedPtr::dynamicCast(r);
+ PDerivedPtr p2 = ICE_DYNAMIC_CAST(PDerived, r);
test(p2);
test(p2->pi == 3);
test(p2->ps == "preserved");
@@ -2024,12 +2511,11 @@ allTests(const Ice::CommunicatorPtr& communicator)
//
// Server only knows the base (non-preserved) type, so the object is sliced.
//
- PCUnknownPtr pu = new PCUnknown;
+ PCUnknownPtr pu = ICE_MAKE_SHARED(PCUnknown);
pu->pi = 3;
pu->pu = "preserved";
-
PBasePtr r = test->exchangePBase(pu);
- PCUnknownPtr p2 = PCUnknownPtr::dynamicCast(r);
+ PCUnknownPtr p2 = ICE_DYNAMIC_CAST(PCUnknown, r);
test(!p2);
test(r->pi == 3);
}
@@ -2043,13 +2529,15 @@ allTests(const Ice::CommunicatorPtr& communicator)
// Server only knows the intermediate type Preserved. The object will be sliced to
// Preserved for the 1.0 encoding; otherwise it should be returned intact.
//
- PCDerivedPtr pcd = new PCDerived;
+ PCDerivedPtr pcd = ICE_MAKE_SHARED(PCDerived);
pcd->pi = 3;
pcd->pbs.push_back(pcd);
+#ifndef ICE_CPP11_MAPPING
pcd->ice_collectable(true);
+#endif
PBasePtr r = test->exchangePBase(pcd);
- PCDerivedPtr p2 = PCDerivedPtr::dynamicCast(r);
+ PCDerivedPtr p2 = ICE_DYNAMIC_CAST(PCDerived, r);
if(test->ice_getEncodingVersion() == Ice::Encoding_1_0)
{
test(!p2);
@@ -2072,13 +2560,15 @@ allTests(const Ice::CommunicatorPtr& communicator)
// Server only knows the intermediate type CompactPDerived. The object will be sliced to
// CompactPDerived for the 1.0 encoding; otherwise it should be returned intact.
//
- CompactPCDerivedPtr pcd = new CompactPCDerived;
+ CompactPCDerivedPtr pcd = ICE_MAKE_SHARED(CompactPCDerived);
pcd->pi = 3;
pcd->pbs.push_back(pcd);
+#ifndef ICE_CPP11_MAPPING
pcd->ice_collectable(true);
+#endif
PBasePtr r = test->exchangePBase(pcd);
- CompactPCDerivedPtr p2 = CompactPCDerivedPtr::dynamicCast(r);
+ CompactPCDerivedPtr p2 = ICE_DYNAMIC_CAST(CompactPCDerived, r);
if(test->ice_getEncodingVersion() == Ice::Encoding_1_0)
{
test(!p2);
@@ -2101,7 +2591,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
// Send an object that will have multiple preserved slices in the server.
// The object will be sliced to Preserved for the 1.0 encoding.
//
- PCDerived3Ptr pcd = new PCDerived3;
+ PCDerived3Ptr pcd = ICE_MAKE_SHARED(PCDerived3);
pcd->pi = 3;
//
// Sending more than 254 objects exercises the encoding for object ids.
@@ -2109,7 +2599,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
int i;
for(i = 0; i < 300; ++i)
{
- PCDerived2Ptr p2 = new PCDerived2;
+ PCDerived2Ptr p2 = ICE_MAKE_SHARED(PCDerived2);
p2->pi = i;
p2->pbs.push_back(0); // Nil reference. This slice should not have an indirection table.
p2->pcd2 = i;
@@ -2119,11 +2609,11 @@ allTests(const Ice::CommunicatorPtr& communicator)
pcd->pcd3 = pcd->pbs[10];
PBasePtr r = test->exchangePBase(pcd);
- PCDerived3Ptr p3 = PCDerived3Ptr::dynamicCast(r);
+ PCDerived3Ptr p3 = ICE_DYNAMIC_CAST(PCDerived3, r);
if(test->ice_getEncodingVersion() == Ice::Encoding_1_0)
{
test(!p3);
- test(PreservedPtr::dynamicCast(r));
+ test(ICE_DYNAMIC_CAST(Preserved, r));
test(r->pi == 3);
}
else
@@ -2132,7 +2622,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
test(p3->pi == 3);
for(i = 0; i < 300; ++i)
{
- PCDerived2Ptr p2 = PCDerived2Ptr::dynamicCast(p3->pbs[i]);
+ PCDerived2Ptr p2 = ICE_DYNAMIC_CAST(PCDerived2, p3->pbs[i]);
test(p2->pi == i);
test(p2->pbs.size() == 1);
test(!p2->pbs[0]);
@@ -2171,31 +2661,62 @@ allTests(const Ice::CommunicatorPtr& communicator)
//
// Server knows the most-derived class PDerived.
//
- PDerivedPtr pd = new PDerived;
+ PDerivedPtr pd = ICE_MAKE_SHARED(PDerived);
pd->pi = 3;
pd->ps = "preserved";
pd->ps = "preserved";
pd->pb = pd;
+
+#ifndef ICE_CPP11_MAPPING
pd->ice_collectable(true);
-
+#endif
+
+#ifdef ICE_CPP11_MAPPING
+ try
+ {
+ pd = dynamic_pointer_cast<PDerived>(test->exchangePBaseAsync(pd).get());
+ test(pd);
+ test(pd->pi == 3);
+ test(pd->ps == "preserved");
+ test(pd->pb == pd);
+ }
+ catch(...)
+ {
+ test(false);
+ }
+#else
CallbackPtr cb = new Callback;
test->begin_exchangePBase(
pd, newCallback_TestIntf_exchangePBase(cb, &Callback::response_preserved1, &Callback::exception));
cb->check();
+#endif
}
{
//
// Server only knows the base (non-preserved) type, so the object is sliced.
//
- PCUnknownPtr pu = new PCUnknown;
+ PCUnknownPtr pu = ICE_MAKE_SHARED(PCUnknown);
pu->pi = 3;
pu->pu = "preserved";
-
+#ifdef ICE_CPP11_MAPPING
+ try
+ {
+ auto r = test->exchangePBaseAsync(pu).get();
+ auto p2 = dynamic_pointer_cast<PCUnknown>(r);
+ test(!p2);
+ test(r->pi == 3);
+ }
+ catch(...)
+ {
+ test(false);
+ }
+#else
CallbackPtr cb = new Callback;
test->begin_exchangePBase(
pu, newCallback_TestIntf_exchangePBase(cb, &Callback::response_preserved2, &Callback::exception));
cb->check();
+#endif
}
{
@@ -2203,9 +2724,26 @@ allTests(const Ice::CommunicatorPtr& communicator)
// Server only knows the intermediate type Preserved. The object will be sliced to
// Preserved for the 1.0 encoding; otherwise it should be returned intact.
//
- PCDerivedPtr pcd = new PCDerived;
+ PCDerivedPtr pcd = ICE_MAKE_SHARED(PCDerived);
pcd->pi = 3;
pcd->pbs.push_back(pcd);
+#ifdef ICE_CPP11_MAPPING
+ if(test->ice_getEncodingVersion() == Ice::Encoding_1_0)
+ {
+ auto r = test->exchangePBaseAsync(pcd).get();
+ auto p2 = dynamic_pointer_cast<PCDerived>(r);
+ test(!p2);
+ test(r->pi == 3);
+ }
+ else
+ {
+ auto r = test->exchangePBaseAsync(pcd).get();
+ auto p2 = dynamic_pointer_cast<PCDerived>(r);
+ test(p2);
+ test(p2->pi == 3);
+ test(p2->pbs[0] == p2);
+ }
+#else
pcd->ice_collectable(true);
CallbackPtr cb = new Callback;
@@ -2220,6 +2758,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
pcd, newCallback_TestIntf_exchangePBase(cb, &Callback::response_preserved4, &Callback::exception));
}
cb->check();
+#endif
}
{
@@ -2227,11 +2766,29 @@ allTests(const Ice::CommunicatorPtr& communicator)
// Server only knows the intermediate type CompactPDerived. The object will be sliced to
// CompactPDerived for the 1.0 encoding; otherwise it should be returned intact.
//
- CompactPCDerivedPtr pcd = new CompactPCDerived;
+ CompactPCDerivedPtr pcd = ICE_MAKE_SHARED(CompactPCDerived);
pcd->pi = 3;
pcd->pbs.push_back(pcd);
+
+#ifdef ICE_CPP11_MAPPING
+ if(test->ice_getEncodingVersion() == Ice::Encoding_1_0)
+ {
+ auto r = test->exchangePBaseAsync(pcd).get();
+ auto p2 = dynamic_pointer_cast<CompactPCDerived>(r);
+ test(!p2);
+ test(r->pi == 3);
+ }
+ else
+ {
+ auto r = test->exchangePBaseAsync(pcd).get();
+ auto p2 = dynamic_pointer_cast<CompactPCDerived>(r);
+ test(p2);
+ test(p2->pi == 3);
+ test(p2->pbs[0] == p2);
+ }
+#else
pcd->ice_collectable(true);
-
+
CallbackPtr cb = new Callback;
if(test->ice_getEncodingVersion() == Ice::Encoding_1_0)
{
@@ -2242,10 +2799,11 @@ allTests(const Ice::CommunicatorPtr& communicator)
else
{
test->begin_exchangePBase(pcd, newCallback_TestIntf_exchangePBase(cb,
- &Callback::response_compactPreserved2,
+ &Callback::response_compactPreserved2,
&Callback::exception));
}
cb->check();
+#endif
}
{
@@ -2253,7 +2811,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
// Send an object that will have multiple preserved slices in the server.
// The object will be sliced to Preserved for the 1.0 encoding.
//
- PCDerived3Ptr pcd = new PCDerived3;
+ PCDerived3Ptr pcd = ICE_MAKE_SHARED(PCDerived3);
pcd->pi = 3;
//
// Sending more than 254 objects exercises the encoding for object ids.
@@ -2261,7 +2819,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
int i;
for(i = 0; i < 300; ++i)
{
- PCDerived2Ptr p2 = new PCDerived2;
+ PCDerived2Ptr p2 = ICE_MAKE_SHARED(PCDerived2);
p2->pi = i;
p2->pbs.push_back(0); // Nil reference. This slice should not have an indirection table.
p2->pcd2 = i;
@@ -2270,6 +2828,32 @@ allTests(const Ice::CommunicatorPtr& communicator)
pcd->pcd2 = pcd->pi;
pcd->pcd3 = pcd->pbs[10];
+#ifdef ICE_CPP11_MAPPING
+ if(test->ice_getEncodingVersion() == Ice::Encoding_1_0)
+ {
+ auto r = test->exchangePBaseAsync(pcd).get();
+ auto p2 = dynamic_pointer_cast<PCDerived>(r);
+ test(!p2);
+ test(r->pi == 3);
+ }
+ else
+ {
+ auto r = test->exchangePBaseAsync(pcd).get();
+ auto p3 = dynamic_pointer_cast<PCDerived3>(r);
+ test(p3);
+ test(p3->pi == 3);
+ for(int i = 0; i < 300; ++i)
+ {
+ auto p2 = dynamic_pointer_cast<PCDerived2>(p3->pbs[i]);
+ test(p2->pi == i);
+ test(p2->pbs.size() == 1);
+ test(!p2->pbs[0]);
+ test(p2->pcd2 == i);
+ }
+ test(p3->pcd2 == p3->pi);
+ test(p3->pcd3 == p3->pbs[10]);
+ }
+#else
CallbackPtr cb = new Callback;
if(test->ice_getEncodingVersion() == Ice::Encoding_1_0)
{
@@ -2282,9 +2866,11 @@ allTests(const Ice::CommunicatorPtr& communicator)
pcd, newCallback_TestIntf_exchangePBase(cb, &Callback::response_preserved5, &Callback::exception));
}
cb->check();
+#endif
}
cout << "ok" << endl;
+#ifndef ICE_CPP11_MAPPING
cout << "garbage collection for preserved classes... " << flush;
try
{
@@ -2292,7 +2878,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
// Register a factory in order to substitute our own subclass of PNode. This provides
// an easy way to determine how many unmarshaled instances currently exist.
//
- communicator->addObjectFactory(new NodeFactoryI, PNode::ice_staticId());
+ communicator->getValueFactoryManager()->add(new NodeFactoryI, PNode::ice_staticId());
//
// Relay a graph through the server. This test uses a preserved class
@@ -2338,7 +2924,7 @@ allTests(const Ice::CommunicatorPtr& communicator)
// Register a factory in order to substitute our own subclass of Preserved. This provides
// an easy way to determine how many unmarshaled instances currently exist.
//
- communicator->addObjectFactory(new PreservedFactoryI, Preserved::ice_staticId());
+ communicator->getValueFactoryManager()->add(new PreservedFactoryI, Preserved::ice_staticId());
//
// Obtain a preserved object from the server where the most-derived
@@ -2400,6 +2986,6 @@ allTests(const Ice::CommunicatorPtr& communicator)
{
}
cout << "ok" << endl;
-
+#endif
return test;
}