diff options
Diffstat (limited to 'cpp/test')
-rw-r--r-- | cpp/test/Ice/info/TestI.cpp | 8 | ||||
-rw-r--r-- | cpp/test/Ice/invoke/AllTests.cpp | 103 | ||||
-rwxr-xr-x | cpp/test/Ice/invoke/BlobjectI.cpp | 54 | ||||
-rw-r--r-- | cpp/test/Ice/objects/AllTests.cpp | 240 | ||||
-rw-r--r-- | cpp/test/Ice/objects/TestI.cpp | 2 | ||||
-rw-r--r-- | cpp/test/Ice/proxy/AllTests.cpp | 153 | ||||
-rw-r--r-- | cpp/test/Ice/proxy/Collocated.cpp | 1 | ||||
-rw-r--r-- | cpp/test/Ice/proxy/Server.cpp | 1 | ||||
-rw-r--r-- | cpp/test/Ice/proxy/ServerAMD.cpp | 1 |
9 files changed, 371 insertions, 192 deletions
diff --git a/cpp/test/Ice/info/TestI.cpp b/cpp/test/Ice/info/TestI.cpp index b9ca9d248fa..168f41873f4 100644 --- a/cpp/test/Ice/info/TestI.cpp +++ b/cpp/test/Ice/info/TestI.cpp @@ -48,10 +48,10 @@ TestI::getEndpointInfoAsContext(const Ice::Current& c) if(Ice::UDPEndpointInfoPtr::dynamicCast(ipinfo)) { Ice::UDPEndpointInfoPtr udp = Ice::UDPEndpointInfoPtr::dynamicCast(ipinfo); - ctx["protocolMajor"] = udp->protocolMajor; - ctx["protocolMinor"] = udp->protocolMinor; - ctx["encodingMajor"] = udp->encodingMajor; - ctx["encodingMinor"] = udp->encodingMinor; + ctx["protocolMajor"] = udp->protocol.major; + ctx["protocolMinor"] = udp->protocol.minor; + ctx["encodingMajor"] = udp->encoding.major; + ctx["encodingMinor"] = udp->encoding.minor; ctx["mcastInterface"] = udp->mcastInterface; ctx["mcastTtl"] = udp->mcastTtl; } diff --git a/cpp/test/Ice/invoke/AllTests.cpp b/cpp/test/Ice/invoke/AllTests.cpp index 2bfe062c462..d2634503063 100644 --- a/cpp/test/Ice/invoke/AllTests.cpp +++ b/cpp/test/Ice/invoke/AllTests.cpp @@ -88,11 +88,13 @@ public: if(result->getProxy()->end_ice_invoke(outParams, result)) { Ice::InputStreamPtr in = Ice::createInputStream(_communicator, outParams); + in->startEncapsulation(); string s; in->read(s); test(s == cmp); in->read(s); test(s == cmp); + in->endEncapsulation(); called(); } else @@ -117,12 +119,14 @@ public: else { Ice::InputStreamPtr in = Ice::createInputStream(_communicator, outParams); + in->startEncapsulation(); try { in->throwException(); } catch(const Test::MyException&) { + in->endEncapsulation(); called(); } catch(...) @@ -137,11 +141,13 @@ public: if(ok) { Ice::InputStreamPtr in = Ice::createInputStream(_communicator, outParams); + in->startEncapsulation(); string s; in->read(s); test(s == testString); in->read(s); test(s == testString); + in->endEncapsulation(); called(); } else @@ -155,11 +161,13 @@ public: if(ok) { Ice::InputStreamPtr in = Ice::createInputStream(_communicator, outParams); + in->startEncapsulation(); string s; in->read(s); test(s == cookie->getString()); in->read(s); test(s == cookie->getString()); + in->endEncapsulation(); called(); } else @@ -177,12 +185,14 @@ public: else { Ice::InputStreamPtr in = Ice::createInputStream(_communicator, outParams); + in->startEncapsulation(); try { in->throwException(); } catch(const Test::MyException&) { + in->endEncapsulation(); called(); } catch(...) @@ -202,12 +212,14 @@ public: else { Ice::InputStreamPtr in = Ice::createInputStream(_communicator, outParams); + in->startEncapsulation(); try { in->throwException(); } catch(const Test::MyException&) { + in->endEncapsulation(); called(); } catch(...) @@ -235,32 +247,43 @@ allTests(const Ice::CommunicatorPtr& communicator) test(cl); Test::MyClassPrx oneway = cl->ice_oneway(); + Test::MyClassPrx batchOneway = cl->ice_batchOneway(); void (Callback::*nullEx)(const Ice::Exception&) = 0; void (Callback::*nullExWC)(const Ice::Exception&, const CookiePtr&) = 0; - + cout << "testing ice_invoke... " << flush; { - Ice::ByteSeq inParams, outParams; - if(!oneway->ice_invoke("opOneway", Ice::Normal, inParams, outParams)) + Ice::ByteSeq inEncaps, outEncaps; + if(!oneway->ice_invoke("opOneway", Ice::Normal, inEncaps, outEncaps)) { test(false); } + test(batchOneway->ice_invoke("opOneway", Ice::Normal, inEncaps, outEncaps)); + test(batchOneway->ice_invoke("opOneway", Ice::Normal, inEncaps, outEncaps)); + test(batchOneway->ice_invoke("opOneway", Ice::Normal, inEncaps, outEncaps)); + test(batchOneway->ice_invoke("opOneway", Ice::Normal, inEncaps, outEncaps)); + batchOneway->ice_flushBatchRequests(); + Ice::OutputStreamPtr out = Ice::createOutputStream(communicator); + out->startEncapsulation(); out->write(testString); - out->finished(inParams); + out->endEncapsulation(); + out->finished(inEncaps); // ice_invoke - if(cl->ice_invoke("opString", Ice::Normal, inParams, outParams)) + if(cl->ice_invoke("opString", Ice::Normal, inEncaps, outEncaps)) { - Ice::InputStreamPtr in = Ice::createInputStream(communicator, outParams); + Ice::InputStreamPtr in = Ice::createInputStream(communicator, outEncaps); + in->startEncapsulation(); string s; in->read(s); test(s == testString); in->read(s); test(s == testString); + in->endEncapsulation(); } else { @@ -268,15 +291,17 @@ allTests(const Ice::CommunicatorPtr& communicator) } // ice_invoke with array mapping - pair<const ::Ice::Byte*, const ::Ice::Byte*> inPair(&inParams[0], &inParams[0] + inParams.size()); - if(cl->ice_invoke("opString", Ice::Normal, inPair, outParams)) + pair<const ::Ice::Byte*, const ::Ice::Byte*> inPair(&inEncaps[0], &inEncaps[0] + inEncaps.size()); + if(cl->ice_invoke("opString", Ice::Normal, inPair, outEncaps)) { - Ice::InputStreamPtr in = Ice::createInputStream(communicator, outParams); + Ice::InputStreamPtr in = Ice::createInputStream(communicator, outEncaps); + in->startEncapsulation(); string s; in->read(s); test(s == testString); in->read(s); test(s == testString); + in->endEncapsulation(); } else { @@ -285,14 +310,15 @@ allTests(const Ice::CommunicatorPtr& communicator) } { - Ice::ByteSeq inParams, outParams; - if(cl->ice_invoke("opException", Ice::Normal, inParams, outParams)) + Ice::ByteSeq inEncaps, outEncaps; + if(cl->ice_invoke("opException", Ice::Normal, inEncaps, outEncaps)) { test(false); } else { - Ice::InputStreamPtr in = Ice::createInputStream(communicator, outParams); + Ice::InputStreamPtr in = Ice::createInputStream(communicator, outEncaps); + in->startEncapsulation(); try { in->throwException(); @@ -304,6 +330,7 @@ allTests(const Ice::CommunicatorPtr& communicator) { test(false); } + in->endEncapsulation(); } } @@ -314,27 +341,31 @@ allTests(const Ice::CommunicatorPtr& communicator) { CookiePtr cookie = new Cookie(); - Ice::ByteSeq inParams, outParams; - Ice::AsyncResultPtr result = oneway->begin_ice_invoke("opOneway", Ice::Normal, inParams); - if(!oneway->end_ice_invoke(outParams, result)) + Ice::ByteSeq inEncaps, outEncaps; + Ice::AsyncResultPtr result = oneway->begin_ice_invoke("opOneway", Ice::Normal, inEncaps); + if(!oneway->end_ice_invoke(outEncaps, result)) { test(false); } Ice::OutputStreamPtr out = Ice::createOutputStream(communicator); + out->startEncapsulation(); out->write(testString); - out->finished(inParams); + out->endEncapsulation(); + out->finished(inEncaps); // begin_ice_invoke with no callback - result = cl->begin_ice_invoke("opString", Ice::Normal, inParams); - if(cl->end_ice_invoke(outParams, result)) + result = cl->begin_ice_invoke("opString", Ice::Normal, inEncaps); + if(cl->end_ice_invoke(outEncaps, result)) { - Ice::InputStreamPtr in = Ice::createInputStream(communicator, outParams); + Ice::InputStreamPtr in = Ice::createInputStream(communicator, outEncaps); + in->startEncapsulation(); string s; in->read(s); test(s == testString); in->read(s); test(s == testString); + in->endEncapsulation(); } else { @@ -342,16 +373,18 @@ allTests(const Ice::CommunicatorPtr& communicator) }; // begin_ice_invoke with no callback and array mapping - pair<const ::Ice::Byte*, const ::Ice::Byte*> inPair(&inParams[0], &inParams[0] + inParams.size()); + pair<const ::Ice::Byte*, const ::Ice::Byte*> inPair(&inEncaps[0], &inEncaps[0] + inEncaps.size()); result = cl->begin_ice_invoke("opString", Ice::Normal, inPair); - if(cl->end_ice_invoke(outParams, result)) + if(cl->end_ice_invoke(outEncaps, result)) { - Ice::InputStreamPtr in = Ice::createInputStream(communicator, outParams); + Ice::InputStreamPtr in = Ice::createInputStream(communicator, outEncaps); + in->startEncapsulation(); string s; in->read(s); test(s == testString); in->read(s); test(s == testString); + in->endEncapsulation(); } else { @@ -360,24 +393,24 @@ allTests(const Ice::CommunicatorPtr& communicator) // begin_ice_invoke with Callback CallbackPtr cb = new Callback(communicator, false); - cl->begin_ice_invoke("opString", Ice::Normal, inParams, Ice::newCallback(cb, &Callback::opString)); + cl->begin_ice_invoke("opString", Ice::Normal, inEncaps, Ice::newCallback(cb, &Callback::opString)); cb->check(); // begin_ice_invoke with Callback and Cookie cb = new Callback(communicator, true); - cl->begin_ice_invoke("opString", Ice::Normal, inParams, Ice::newCallback(cb, &Callback::opString), cookie); + cl->begin_ice_invoke("opString", Ice::Normal, inEncaps, Ice::newCallback(cb, &Callback::opString), cookie); cb->check(); // begin_ice_invoke with Callback_Object_ice_invoke cb = new Callback(communicator, false); Ice::Callback_Object_ice_invokePtr d = Ice::newCallback_Object_ice_invoke(cb, &Callback::opStringNC, nullEx); - cl->begin_ice_invoke("opString", Ice::Normal, inParams, d); + cl->begin_ice_invoke("opString", Ice::Normal, inEncaps, d); cb->check(); // begin_ice_invoke with Callback_Object_ice_invoke with Cookie cb = new Callback(communicator, false); d = Ice::newCallback_Object_ice_invoke(cb, &Callback::opStringWC, nullExWC); - cl->begin_ice_invoke("opString", Ice::Normal, inParams, d, cookie); + cl->begin_ice_invoke("opString", Ice::Normal, inEncaps, d, cookie); cb->check(); // begin_ice_invoke with Callback_Object_ice_invoke and array mapping @@ -395,17 +428,18 @@ allTests(const Ice::CommunicatorPtr& communicator) { CookiePtr cookie = new Cookie(); - Ice::ByteSeq inParams, outParams; + Ice::ByteSeq inEncaps, outEncaps; // begin_ice_invoke with no callback - Ice::AsyncResultPtr result = cl->begin_ice_invoke("opException", Ice::Normal, inParams); - if(cl->end_ice_invoke(outParams, result)) + Ice::AsyncResultPtr result = cl->begin_ice_invoke("opException", Ice::Normal, inEncaps); + if(cl->end_ice_invoke(outEncaps, result)) { test(false); } else { - Ice::InputStreamPtr in = Ice::createInputStream(communicator, outParams); + Ice::InputStreamPtr in = Ice::createInputStream(communicator, outEncaps); + in->startEncapsulation(); try { in->throwException(); @@ -417,29 +451,30 @@ allTests(const Ice::CommunicatorPtr& communicator) { test(false); } + in->endEncapsulation(); } // begin_ice_invoke with Callback CallbackPtr cb = new Callback(communicator, false); - cl->begin_ice_invoke("opException", Ice::Normal, inParams, Ice::newCallback(cb, &Callback::opException)); + cl->begin_ice_invoke("opException", Ice::Normal, inEncaps, Ice::newCallback(cb, &Callback::opException)); cb->check(); // begin_ice_invoke with Callback and Cookie cb = new Callback(communicator, true); - cl->begin_ice_invoke("opException", Ice::Normal, inParams, Ice::newCallback(cb, &Callback::opException), + cl->begin_ice_invoke("opException", Ice::Normal, inEncaps, Ice::newCallback(cb, &Callback::opException), cookie); cb->check(); // begin_ice_invoke with Callback_Object_ice_invoke cb = new Callback(communicator, false); Ice::Callback_Object_ice_invokePtr d = Ice::newCallback_Object_ice_invoke(cb, &Callback::opExceptionNC, nullEx); - cl->begin_ice_invoke("opException", Ice::Normal, inParams, d); + cl->begin_ice_invoke("opException", Ice::Normal, inEncaps, d); cb->check(); // begin_ice_invoke with Callback_Object_ice_invoke with Cookie cb = new Callback(communicator, false); d = Ice::newCallback_Object_ice_invoke(cb, &Callback::opExceptionWC, nullExWC); - cl->begin_ice_invoke("opException", Ice::Normal, inParams, d, cookie); + cl->begin_ice_invoke("opException", Ice::Normal, inEncaps, d, cookie); cb->check(); } diff --git a/cpp/test/Ice/invoke/BlobjectI.cpp b/cpp/test/Ice/invoke/BlobjectI.cpp index efef3052383..2076528ab47 100755 --- a/cpp/test/Ice/invoke/BlobjectI.cpp +++ b/cpp/test/Ice/invoke/BlobjectI.cpp @@ -15,10 +15,11 @@ using namespace std; bool -invokeInternal(const Ice::InputStreamPtr& in, vector<Ice::Byte>& outParams, const Ice::Current& current) +invokeInternal(const Ice::InputStreamPtr& in, vector<Ice::Byte>& outEncaps, const Ice::Current& current) { Ice::CommunicatorPtr communicator = current.adapter->getCommunicator(); Ice::OutputStreamPtr out = Ice::createOutputStream(communicator); + out->startEncapsulation(); if(current.operation == "opOneway") { return true; @@ -26,28 +27,36 @@ invokeInternal(const Ice::InputStreamPtr& in, vector<Ice::Byte>& outParams, cons else if(current.operation == "opString") { string s; + in->startEncapsulation(); in->read(s); + in->endEncapsulation(); out->write(s); out->write(s); - out->finished(outParams); + out->endEncapsulation(); + out->finished(outEncaps); return true; } else if(current.operation == "opException") { Test::MyException ex; out->writeException(ex); - out->finished(outParams); + out->endEncapsulation(); + out->finished(outEncaps); return false; } else if(current.operation == "shutdown") { + out->endEncapsulation(); + out->finished(outEncaps); communicator->shutdown(); return true; } else if(current.operation == "ice_isA") { string s; + in->startEncapsulation(); in->read(s); + in->endEncapsulation(); if(s == "::Test::MyClass") { out->write(true); @@ -56,7 +65,8 @@ invokeInternal(const Ice::InputStreamPtr& in, vector<Ice::Byte>& outParams, cons { out->write(false); } - out->finished(outParams); + out->endEncapsulation(); + out->finished(outEncaps); return true; } else @@ -70,48 +80,48 @@ invokeInternal(const Ice::InputStreamPtr& in, vector<Ice::Byte>& outParams, cons } bool -BlobjectI::ice_invoke(const vector<Ice::Byte>& inParams, vector<Ice::Byte>& outParams, const Ice::Current& current) +BlobjectI::ice_invoke(const vector<Ice::Byte>& inEncaps, vector<Ice::Byte>& outEncaps, const Ice::Current& current) { - Ice::InputStreamPtr in = Ice::createInputStream(current.adapter->getCommunicator(), inParams); - return invokeInternal(in, outParams, current); + Ice::InputStreamPtr in = Ice::createInputStream(current.adapter->getCommunicator(), inEncaps); + return invokeInternal(in, outEncaps, current); } bool -BlobjectArrayI::ice_invoke(const pair<const Ice::Byte*, const Ice::Byte*>& inParams, vector<Ice::Byte>& outParams, +BlobjectArrayI::ice_invoke(const pair<const Ice::Byte*, const Ice::Byte*>& inEncaps, vector<Ice::Byte>& outEncaps, const Ice::Current& current) { - Ice::InputStreamPtr in = Ice::createInputStream(current.adapter->getCommunicator(), inParams); - return invokeInternal(in, outParams, current); + Ice::InputStreamPtr in = Ice::createInputStream(current.adapter->getCommunicator(), inEncaps); + return invokeInternal(in, outEncaps, current); } void -BlobjectAsyncI::ice_invoke_async(const Ice::AMD_Object_ice_invokePtr& cb, const vector<Ice::Byte>& inParams, +BlobjectAsyncI::ice_invoke_async(const Ice::AMD_Object_ice_invokePtr& cb, const vector<Ice::Byte>& inEncaps, const Ice::Current& current) { - Ice::InputStreamPtr in = Ice::createInputStream(current.adapter->getCommunicator(), inParams); - vector<Ice::Byte> outParams; - bool ok = invokeInternal(in, outParams, current); - cb->ice_response(ok, outParams); + Ice::InputStreamPtr in = Ice::createInputStream(current.adapter->getCommunicator(), inEncaps); + vector<Ice::Byte> outEncaps; + bool ok = invokeInternal(in, outEncaps, current); + cb->ice_response(ok, outEncaps); } void BlobjectArrayAsyncI::ice_invoke_async(const Ice::AMD_Object_ice_invokePtr& cb, - const pair<const Ice::Byte*, const Ice::Byte*>& inParams, + const pair<const Ice::Byte*, const Ice::Byte*>& inEncaps, const Ice::Current& current) { - Ice::InputStreamPtr in = Ice::createInputStream(current.adapter->getCommunicator(), inParams); - vector<Ice::Byte> outParams; - bool ok = invokeInternal(in, outParams, current); + Ice::InputStreamPtr in = Ice::createInputStream(current.adapter->getCommunicator(), inEncaps); + vector<Ice::Byte> outEncaps; + bool ok = invokeInternal(in, outEncaps, current); #if (defined(_MSC_VER) && (_MSC_VER >= 1600)) pair<const Ice::Byte*, const Ice::Byte*> outPair(nullptr, nullptr); #else pair<const Ice::Byte*, const Ice::Byte*> outPair(0, 0); #endif - if(outParams.size() != 0) + if(outEncaps.size() != 0) { - outPair.first = &outParams[0]; - outPair.second = &outParams[0] + outParams.size(); + outPair.first = &outEncaps[0]; + outPair.second = &outEncaps[0] + outEncaps.size(); } cb->ice_response(ok, outPair); } diff --git a/cpp/test/Ice/objects/AllTests.cpp b/cpp/test/Ice/objects/AllTests.cpp index 2dadc7ca776..964da9ed5b5 100644 --- a/cpp/test/Ice/objects/AllTests.cpp +++ b/cpp/test/Ice/objects/AllTests.cpp @@ -58,137 +58,137 @@ allTests(const Ice::CommunicatorPtr& communicator, bool collocated) test(initial == base); cout << "ok" << endl; - cout << "testing constructor, copy constructor, and assignment operator... " << flush; + // cout << "testing constructor, copy constructor, and assignment operator... " << flush; - BasePtr ba1 = new Base; - test(ba1->theS.str == ""); - test(ba1->str == ""); + // BasePtr ba1 = new Base; + // test(ba1->theS.str == ""); + // test(ba1->str == ""); - S s; - s.str = "hello"; - BasePtr ba2 = new Base(s, "hi"); - test(ba2->theS.str == "hello"); - test(ba2->str == "hi"); + // S s; + // s.str = "hello"; + // BasePtr ba2 = new Base(s, "hi"); + // test(ba2->theS.str == "hello"); + // test(ba2->str == "hi"); - *ba1 = *ba2; - test(ba1->theS.str == "hello"); - test(ba1->str == "hi"); + // *ba1 = *ba2; + // test(ba1->theS.str == "hello"); + // test(ba1->str == "hi"); - BasePtr bp1 = new Base(); - *bp1 = *ba2; - test(bp1->theS.str == "hello"); - test(bp1->str == "hi"); + // BasePtr bp1 = new Base(); + // *bp1 = *ba2; + // test(bp1->theS.str == "hello"); + // test(bp1->str == "hi"); - cout << "ok" << endl; + // cout << "ok" << endl; - cout << "getting B1... " << flush; - BPtr b1 = initial->getB1(); - test(b1); - cout << "ok" << endl; + // cout << "getting B1... " << flush; + // BPtr b1 = initial->getB1(); + // test(b1); + // cout << "ok" << endl; - cout << "getting B2... " << flush; - BPtr b2 = initial->getB2(); - test(b2); - cout << "ok" << endl; + // cout << "getting B2... " << flush; + // BPtr b2 = initial->getB2(); + // test(b2); + // cout << "ok" << endl; - cout << "getting C... " << flush; - CPtr c = initial->getC(); - test(c); - cout << "ok" << endl; + // cout << "getting C... " << flush; + // CPtr c = initial->getC(); + // test(c); + // cout << "ok" << endl; - cout << "getting D... " << flush; - DPtr d = initial->getD(); - test(d); - cout << "ok" << endl; + // cout << "getting D... " << flush; + // DPtr d = initial->getD(); + // test(d); + // cout << "ok" << endl; - cout << "checking consistency... " << flush; - test(b1 != b2); - test(b1 != c); - test(b1 != d); - test(b2 != c); - test(b2 != d); - test(c != d); - test(b1->theB == b1); - test(b1->theC == 0); - test(BPtr::dynamicCast(b1->theA)); - test(BPtr::dynamicCast(b1->theA)->theA == b1->theA); - test(BPtr::dynamicCast(b1->theA)->theB == b1); - test(CPtr::dynamicCast(BPtr::dynamicCast(b1->theA)->theC)); - test(CPtr::dynamicCast(BPtr::dynamicCast(b1->theA)->theC)->theB == b1->theA); - if(!collocated) - { - test(b1->preMarshalInvoked); - test(b1->postUnmarshalInvoked()); - test(b1->theA->preMarshalInvoked); - test(b1->theA->postUnmarshalInvoked()); - test(BPtr::dynamicCast(b1->theA)->theC->preMarshalInvoked); - test(BPtr::dynamicCast(b1->theA)->theC->postUnmarshalInvoked()); - } - // More tests possible for b2 and d, but I think this is already sufficient. - test(b2->theA == b2); - test(d->theC == 0); - cout << "ok" << endl; - - cout << "getting B1, B2, C, and D all at once... " << flush; - initial->getAll(b1, b2, c, d); - test(b1); - test(b2); - test(c); - test(d); - cout << "ok" << endl; + // cout << "checking consistency... " << flush; + // test(b1 != b2); + // test(b1 != c); + // test(b1 != d); + // test(b2 != c); + // test(b2 != d); + // test(c != d); + // test(b1->theB == b1); + // test(b1->theC == 0); + // test(BPtr::dynamicCast(b1->theA)); + // test(BPtr::dynamicCast(b1->theA)->theA == b1->theA); + // test(BPtr::dynamicCast(b1->theA)->theB == b1); + // test(CPtr::dynamicCast(BPtr::dynamicCast(b1->theA)->theC)); + // test(CPtr::dynamicCast(BPtr::dynamicCast(b1->theA)->theC)->theB == b1->theA); + // if(!collocated) + // { + // test(b1->preMarshalInvoked); + // test(b1->postUnmarshalInvoked()); + // test(b1->theA->preMarshalInvoked); + // test(b1->theA->postUnmarshalInvoked()); + // test(BPtr::dynamicCast(b1->theA)->theC->preMarshalInvoked); + // test(BPtr::dynamicCast(b1->theA)->theC->postUnmarshalInvoked()); + // } + // // More tests possible for b2 and d, but I think this is already sufficient. + // test(b2->theA == b2); + // test(d->theC == 0); + // cout << "ok" << endl; + + // cout << "getting B1, B2, C, and D all at once... " << flush; + // initial->getAll(b1, b2, c, d); + // test(b1); + // test(b2); + // test(c); + // test(d); + // cout << "ok" << endl; - cout << "checking consistency... " << flush; - test(b1 != b2); - test(b1 != c); - test(b1 != d); - test(b2 != c); - test(b2 != d); - test(c != d); - test(b1->theA == b2); - test(b1->theB == b1); - test(b1->theC == 0); - test(b2->theA == b2); - test(b2->theB == b1); - test(b2->theC == c); - test(c->theB == b2); - test(d->theA == b1); - test(d->theB == b2); - test(d->theC == 0); - if(!collocated) - { - test(d->preMarshalInvoked); - test(d->postUnmarshalInvoked()); - test(d->theA->preMarshalInvoked); - test(d->theA->postUnmarshalInvoked()); - test(d->theB->preMarshalInvoked); - test(d->theB->postUnmarshalInvoked()); - test(d->theB->theC->preMarshalInvoked); - test(d->theB->theC->postUnmarshalInvoked()); - } - cout << "ok" << endl; - - cout << "testing protected members... " << flush; - EPtr e = initial->getE(); - test(e->checkValues()); - FPtr f = initial->getF(); - test(f->checkValues()); - test(f->e2->checkValues()); - cout << "ok" << endl; - - cout << "getting I, J and H... " << flush; - IPtr i = initial->getI(); - test(i); - IPtr j = initial->getJ(); - test(j && JPtr::dynamicCast(j)); - IPtr h = initial->getH(); - test(h && HPtr::dynamicCast(h)); - cout << "ok" << endl; - - cout << "setting I... " << flush; - initial->setI(i); - initial->setI(j); - initial->setI(h); - cout << "ok" << endl; + // cout << "checking consistency... " << flush; + // test(b1 != b2); + // test(b1 != c); + // test(b1 != d); + // test(b2 != c); + // test(b2 != d); + // test(c != d); + // test(b1->theA == b2); + // test(b1->theB == b1); + // test(b1->theC == 0); + // test(b2->theA == b2); + // test(b2->theB == b1); + // test(b2->theC == c); + // test(c->theB == b2); + // test(d->theA == b1); + // test(d->theB == b2); + // test(d->theC == 0); + // if(!collocated) + // { + // test(d->preMarshalInvoked); + // test(d->postUnmarshalInvoked()); + // test(d->theA->preMarshalInvoked); + // test(d->theA->postUnmarshalInvoked()); + // test(d->theB->preMarshalInvoked); + // test(d->theB->postUnmarshalInvoked()); + // test(d->theB->theC->preMarshalInvoked); + // test(d->theB->theC->postUnmarshalInvoked()); + // } + // cout << "ok" << endl; + + // cout << "testing protected members... " << flush; + // EPtr e = initial->getE(); + // test(e->checkValues()); + // FPtr f = initial->getF(); + // test(f->checkValues()); + // test(f->e2->checkValues()); + // cout << "ok" << endl; + + // cout << "getting I, J and H... " << flush; + // IPtr i = initial->getI(); + // test(i); + // IPtr j = initial->getJ(); + // test(j && JPtr::dynamicCast(j)); + // IPtr h = initial->getH(); + // test(h && HPtr::dynamicCast(h)); + // cout << "ok" << endl; + + // cout << "setting I... " << flush; + // initial->setI(i); + // initial->setI(j); + // initial->setI(h); + // cout << "ok" << endl; #if !defined(_MSC_VER) || (_MSC_VER >= 1300) if(!collocated) diff --git a/cpp/test/Ice/objects/TestI.cpp b/cpp/test/Ice/objects/TestI.cpp index a48aec3d519..feb0bff4a06 100644 --- a/cpp/test/Ice/objects/TestI.cpp +++ b/cpp/test/Ice/objects/TestI.cpp @@ -231,9 +231,11 @@ UnexpectedObjectExceptionTestI::ice_invoke(const std::vector<Ice::Byte>&, #if !defined(_MSC_VER) || (_MSC_VER >= 1300) Ice::CommunicatorPtr communicator = current.adapter->getCommunicator(); Ice::OutputStreamPtr out = Ice::createOutputStream(communicator); + out->startEncapsulation(); AlsoEmptyPtr ae = new AlsoEmpty; out->write(ae); out->writePendingObjects(); + out->endEncapsulation(); out->finished(outParams); #endif return true; diff --git a/cpp/test/Ice/proxy/AllTests.cpp b/cpp/test/Ice/proxy/AllTests.cpp index 30eb3fa18b2..91b34490bd4 100644 --- a/cpp/test/Ice/proxy/AllTests.cpp +++ b/cpp/test/Ice/proxy/AllTests.cpp @@ -327,6 +327,31 @@ allTests(const Ice::CommunicatorPtr& communicator) test(!b1->ice_isCollocationOptimized()); prop->setProperty(property, ""); + property = propertyPrefix + ".Encoding"; + test(b1->ice_getEncodingVersion() == Ice::currentEncoding); + prop->setProperty(property, "1.0"); + b1 = communicator->propertyToProxy(propertyPrefix); + test(b1->ice_getEncodingVersion().major == 1 && b1->ice_getEncodingVersion().minor == 0); + prop->setProperty(property, "6.5"); + try + { + communicator->propertyToProxy(propertyPrefix); + test(false); + } + catch(const Ice::UnsupportedEncodingException&) + { + } + prop->setProperty(property, "1.2"); + try + { + communicator->propertyToProxy(propertyPrefix); + test(false); + } + catch(const Ice::UnsupportedEncodingException&) + { + } + prop->setProperty(property, ""); + cout << "ok" << endl; cout << "testing proxyToProperty... " << flush; @@ -337,7 +362,8 @@ allTests(const Ice::CommunicatorPtr& communicator) b1 = b1->ice_preferSecure(false); b1 = b1->ice_endpointSelection(Ice::Ordered); b1 = b1->ice_locatorCacheTimeout(100); - + Ice::EncodingVersion v = { 1, 0 }; + b1 = b1->ice_encodingVersion(v); Ice::ObjectPrx router = communicator->stringToProxy("router"); router = router->ice_collocationOptimized(false); router = router->ice_connectionCached(true); @@ -356,9 +382,10 @@ allTests(const Ice::CommunicatorPtr& communicator) b1 = b1->ice_locator(Ice::LocatorPrx::uncheckedCast(locator)); Ice::PropertyDict proxyProps = communicator->proxyToProperty(b1, "Test"); - test(proxyProps.size() == 18); + test(proxyProps.size() == 21); test(proxyProps["Test"] == "test -t"); + test(proxyProps["Test.Encoding"] == "1.0"); test(proxyProps["Test.CollocationOptimized"] == "1"); test(proxyProps["Test.ConnectionCached"] == "1"); test(proxyProps["Test.PreferSecure"] == "0"); @@ -366,6 +393,7 @@ allTests(const Ice::CommunicatorPtr& communicator) test(proxyProps["Test.LocatorCacheTimeout"] == "100"); test(proxyProps["Test.Locator"] == "locator -t"); + test(proxyProps["Test.Locator.Encoding"] == Ice::encodingVersionToString(Ice::currentEncoding)); test(proxyProps["Test.Locator.CollocationOptimized"] == "1"); test(proxyProps["Test.Locator.ConnectionCached"] == "0"); test(proxyProps["Test.Locator.PreferSecure"] == "1"); @@ -373,12 +401,23 @@ allTests(const Ice::CommunicatorPtr& communicator) test(proxyProps["Test.Locator.LocatorCacheTimeout"] == "300"); test(proxyProps["Test.Locator.Router"] == "router -t"); + test(proxyProps["Test.Locator.Router.Encoding"] == Ice::encodingVersionToString(Ice::currentEncoding)); test(proxyProps["Test.Locator.Router.CollocationOptimized"] == "0"); test(proxyProps["Test.Locator.Router.ConnectionCached"] == "1"); test(proxyProps["Test.Locator.Router.PreferSecure"] == "1"); test(proxyProps["Test.Locator.Router.EndpointSelection"] == "Random"); test(proxyProps["Test.Locator.Router.LocatorCacheTimeout"] == "200"); + try + { + Ice::EncodingVersion v = { 3, 4 }; + b1->ice_encodingVersion(v); + test(false); + } + catch(const Ice::UnsupportedEncodingException&) + { + } + cout << "ok" << endl; cout << "testing ice_getCommunicator... " << flush; @@ -401,6 +440,9 @@ allTests(const Ice::CommunicatorPtr& communicator) test(!base->ice_collocationOptimized(false)->ice_isCollocationOptimized()); test(base->ice_preferSecure(true)->ice_isPreferSecure()); test(!base->ice_preferSecure(false)->ice_isPreferSecure()); + test(base->ice_encodingVersion(Ice::Encoding_1_0)->ice_getEncodingVersion() == Ice::Encoding_1_0); + test(base->ice_encodingVersion(Ice::Encoding_1_1)->ice_getEncodingVersion() == Ice::Encoding_1_1); + test(base->ice_encodingVersion(Ice::Encoding_1_0)->ice_getEncodingVersion() != Ice::Encoding_1_1); cout << "ok" << endl; cout << "testing proxy comparison... " << flush; @@ -531,6 +573,11 @@ allTests(const Ice::CommunicatorPtr& communicator) test(!(endpts2 < endpts1)); test(endpts1 == communicator->stringToProxy("foo:tcp -h 127.0.0.1 -p 10000")->ice_getEndpoints()); + test(compObj1->ice_encodingVersion(Ice::Encoding_1_0) == compObj1->ice_encodingVersion(Ice::Encoding_1_0)); + test(compObj1->ice_encodingVersion(Ice::Encoding_1_0) != compObj1->ice_encodingVersion(Ice::Encoding_1_1)); + test(compObj->ice_encodingVersion(Ice::Encoding_1_0) < compObj->ice_encodingVersion(Ice::Encoding_1_1)); + test(!(compObj->ice_encodingVersion(Ice::Encoding_1_1) < compObj->ice_encodingVersion(Ice::Encoding_1_0))); + // // TODO: Ideally we should also test comparison of fixed proxies. // @@ -606,6 +653,81 @@ allTests(const Ice::CommunicatorPtr& communicator) cout << "ok" << endl; + cout << "testing encoding versioning... " << flush; + string ref20 = "test:default -p 12010 -e 2.0"; + Test::MyClassPrx cl20 = Test::MyClassPrx::uncheckedCast(communicator->stringToProxy(ref20)); + try + { + cl20->ice_collocationOptimized(false)->ice_ping(); + test(false); + } + catch(const Ice::NoEndpointException&) + { + // Server 2.0 endpoint doesn't support 1.1 version. + } + + string ref10 = "test:default -p 12010 -e 1.0"; + Test::MyClassPrx cl10 = Test::MyClassPrx::uncheckedCast(communicator->stringToProxy(ref10)); + try + { + cl10->ice_collocationOptimized(false)->ice_ping(); // Can't send request with 1.1 encoding on 1.0 endpoint. + test(false); + } + catch(const Ice::NoEndpointException&) + { + // Server 1.0 endpoint doesn't support 1.1 version. + } + + // Server with 1.0 endpoint supports 1.0 encoding. + cl10->ice_encodingVersion(Ice::Encoding_1_0)->ice_ping(); + + // Server with 1.1 endpoint supports 1.0 encoding. + cl->ice_collocationOptimized(false)->ice_encodingVersion(Ice::Encoding_1_0)->ice_ping(); + + try + { + // Send request with bogus 1.2 encoding. + Ice::EncodingVersion version = { 1, 2 }; + Ice::OutputStreamPtr out = Ice::createOutputStream(communicator); + out->startEncapsulation(); + out->endEncapsulation(); + vector<Ice::Byte> inEncaps; + out->finished(inEncaps); + inEncaps[4] = version.major; + inEncaps[5] = version.minor; + vector<Ice::Byte> outEncaps; + cl->ice_collocationOptimized(false)->ice_invoke("ice_ping", Ice::Normal, inEncaps, outEncaps); + test(false); + } + catch(const Ice::UnknownLocalException& ex) + { + // The server thrown an UnsupportedEncodingException + test(ex.unknown.find("UnsupportedEncodingException") != string::npos); + } + + try + { + // Send request with bogus 2.0 encoding. + Ice::EncodingVersion version = { 2, 0 }; + Ice::OutputStreamPtr out = Ice::createOutputStream(communicator); + out->startEncapsulation(); + out->endEncapsulation(); + vector<Ice::Byte> inEncaps; + out->finished(inEncaps); + inEncaps[4] = version.major; + inEncaps[5] = version.minor; + vector<Ice::Byte> outEncaps; + cl->ice_collocationOptimized(false)->ice_invoke("ice_ping", Ice::Normal, inEncaps, outEncaps); + test(false); + } + catch(const Ice::UnknownLocalException& ex) + { + // The server thrown an UnsupportedEncodingException + test(ex.unknown.find("UnsupportedEncodingException") != string::npos); + } + + cout << "ok" << endl; + cout << "testing opaque endpoints... " << flush; try @@ -719,10 +841,17 @@ allTests(const Ice::CommunicatorPtr& communicator) } // Legal TCP endpoint expressed as opaque endpoint - Ice::ObjectPrx p1 = communicator->stringToProxy("test:opaque -t 1 -v CTEyNy4wLjAuMeouAAAQJwAAAA=="); + Ice::ObjectPrx p1 = communicator->stringToProxy("test:opaque -e 1.0 -t 1 -v CTEyNy4wLjAuMeouAAAQJwAAAA=="); string pstr = communicator->proxyToString(p1); test(pstr == "test -t:tcp -h 127.0.0.1 -p 12010 -t 10000"); - + + // 1.1 TCP endpoint encoded with 1.1 encoding. + Ice::ObjectPrx p2 = communicator->stringToProxy("test:opaque -e 1.1 -t 1 -v CTEyNy4wLjAuMeouAAAQJwAAAAEAAQE="); + test(communicator->proxyToString(p2) == "test -t:tcp -e 1.1 -h 127.0.0.1 -p 12010 -t 10000"); + + // 1.0 TCP endpoint encoded with 1.1 encoding. + p2 = communicator->stringToProxy("test: opaque -t 1 -e 1.1 -v CTEyNy4wLjAuMeouAAAQJwAAAAEAAQA="); + test(communicator->proxyToString(p2) == "test -t:tcp -h 127.0.0.1 -p 12010 -t 10000"); if(communicator->getProperties()->getPropertyAsInt("Ice.IPv6") == 0) { @@ -730,11 +859,11 @@ allTests(const Ice::CommunicatorPtr& communicator) bool ssl = communicator->getProperties()->getProperty("Ice.Default.Protocol") == "ssl"; if(!ssl) { - p1->ice_ping(); + p1->ice_encodingVersion(Ice::Encoding_1_0)->ice_ping(); } // Two legal TCP endpoints expressed as opaque endpoints - p1 = communicator->stringToProxy("test:opaque -t 1 -v CTEyNy4wLjAuMeouAAAQJwAAAA==:opaque -t 1 -v CTEyNy4wLjAuMusuAAAQJwAAAA=="); + p1 = communicator->stringToProxy("test:opaque -e 1.0 -t 1 -v CTEyNy4wLjAuMeouAAAQJwAAAA==:opaque -e 1.0 -t 1 -v CTEyNy4wLjAuMusuAAAQJwAAAA=="); pstr = communicator->proxyToString(p1); test(pstr == "test -t:tcp -h 127.0.0.1 -p 12010 -t 10000:tcp -h 127.0.0.2 -p 12011 -t 10000"); @@ -742,15 +871,15 @@ allTests(const Ice::CommunicatorPtr& communicator) // Test that an SSL endpoint and a nonsense endpoint get written // back out as an opaque endpoint. // - p1 = communicator->stringToProxy("test:opaque -t 2 -v CTEyNy4wLjAuMREnAAD/////AA==:opaque -t 99 -v abch"); + p1 = communicator->stringToProxy("test:opaque -e 1.0 -t 2 -v CTEyNy4wLjAuMREnAAD/////AA==:opaque -e 1.0 -t 99 -v abch"); pstr = communicator->proxyToString(p1); if(!ssl) { - test(pstr == "test -t:opaque -t 2 -v CTEyNy4wLjAuMREnAAD/////AA==:opaque -t 99 -v abch"); + test(pstr == "test -t:opaque -t 2 -e 1.0 -v CTEyNy4wLjAuMREnAAD/////AA==:opaque -t 99 -e 1.0 -v abch"); } else { - test(pstr == "test -t:ssl -h 127.0.0.1 -p 10001:opaque -t 99 -v abch"); + test(pstr == "test -t:ssl -h 127.0.0.1 -p 10001:opaque -t 99 -e 1.0 -v abch"); } // @@ -760,7 +889,7 @@ allTests(const Ice::CommunicatorPtr& communicator) // try { - p1->ice_ping(); + p1->ice_encodingVersion(Ice::Encoding_1_0)->ice_ping(); test(false); } catch(const Ice::NoEndpointException&) @@ -782,11 +911,11 @@ allTests(const Ice::CommunicatorPtr& communicator) pstr = communicator->proxyToString(p2); if(!ssl) { - test(pstr == "test -t:opaque -t 2 -v CTEyNy4wLjAuMREnAAD/////AA==:opaque -t 99 -v abch"); + test(pstr == "test -t:opaque -t 2 -e 1.0 -v CTEyNy4wLjAuMREnAAD/////AA==:opaque -t 99 -e 1.0 -v abch"); } else { - test(pstr == "test -t:ssl -h 127.0.0.1 -p 10001:opaque -t 99 -v abch"); + test(pstr == "test -t:ssl -h 127.0.0.1 -p 10001:opaque -t 99 -e 1.0 -v abch"); } } diff --git a/cpp/test/Ice/proxy/Collocated.cpp b/cpp/test/Ice/proxy/Collocated.cpp index 49e3c8062ea..d42acbd322b 100644 --- a/cpp/test/Ice/proxy/Collocated.cpp +++ b/cpp/test/Ice/proxy/Collocated.cpp @@ -37,6 +37,7 @@ main(int argc, char* argv[]) { Ice::InitializationData initData; initData.properties = Ice::createProperties(argc, argv); + initData.properties->setProperty("Ice.Warn.Dispatch", "0"); communicator = Ice::initialize(argc, argv, initData); status = run(argc, argv, communicator, initData); } diff --git a/cpp/test/Ice/proxy/Server.cpp b/cpp/test/Ice/proxy/Server.cpp index 2aae00c5837..3808a561807 100644 --- a/cpp/test/Ice/proxy/Server.cpp +++ b/cpp/test/Ice/proxy/Server.cpp @@ -34,6 +34,7 @@ main(int argc, char* argv[]) { Ice::InitializationData initData; initData.properties = Ice::createProperties(argc, argv); + initData.properties->setProperty("Ice.Warn.Dispatch", "0"); communicator = Ice::initialize(argc, argv, initData); status = run(argc, argv, communicator); } diff --git a/cpp/test/Ice/proxy/ServerAMD.cpp b/cpp/test/Ice/proxy/ServerAMD.cpp index d0e1f15fa7e..51bfc4dde7f 100644 --- a/cpp/test/Ice/proxy/ServerAMD.cpp +++ b/cpp/test/Ice/proxy/ServerAMD.cpp @@ -35,6 +35,7 @@ main(int argc, char* argv[]) Ice::InitializationData initData; initData.properties = Ice::createProperties(argc, argv); initData.properties->setProperty("Ice.Warn.Connections", "0"); + initData.properties->setProperty("Ice.Warn.Dispatch", "0"); communicator = Ice::initialize(argc, argv, initData); status = run(argc, argv, communicator); |