diff options
Diffstat (limited to 'cpp/test')
-rw-r--r-- | cpp/test/Ice/objects/AllTests.cpp | 2 | ||||
-rw-r--r-- | cpp/test/Ice/objects/TestI.cpp | 1 | ||||
-rw-r--r-- | cpp/test/Ice/optional/AllTests.cpp | 28 | ||||
-rw-r--r-- | cpp/test/Ice/optional/Test.ice | 5 | ||||
-rw-r--r-- | cpp/test/Ice/optional/TestI.cpp | 11 | ||||
-rw-r--r-- | cpp/test/Ice/optional/TestI.h | 4 |
6 files changed, 49 insertions, 2 deletions
diff --git a/cpp/test/Ice/objects/AllTests.cpp b/cpp/test/Ice/objects/AllTests.cpp index 04b56d01a83..c4522b7a5e0 100644 --- a/cpp/test/Ice/objects/AllTests.cpp +++ b/cpp/test/Ice/objects/AllTests.cpp @@ -215,7 +215,7 @@ allTests(const Ice::CommunicatorPtr& communicator, bool collocated) initial->setI(h); cout << "ok" << endl; - cout << "testing sequences..." << flush; + cout << "testing sequences... " << flush; BaseSeq inS, outS, retS; retS = initial->opBaseSeq(inS, outS); diff --git a/cpp/test/Ice/objects/TestI.cpp b/cpp/test/Ice/objects/TestI.cpp index 246864b2019..12cd0e1915c 100644 --- a/cpp/test/Ice/objects/TestI.cpp +++ b/cpp/test/Ice/objects/TestI.cpp @@ -210,7 +210,6 @@ InitialI::setI(const IPtr&, const Ice::Current&) { } - BaseSeq InitialI::opBaseSeq(const BaseSeq& inSeq, BaseSeq& outSeq, const Ice::Current&) { diff --git a/cpp/test/Ice/optional/AllTests.cpp b/cpp/test/Ice/optional/AllTests.cpp index 22c0d3cdb3c..6719dca601e 100644 --- a/cpp/test/Ice/optional/AllTests.cpp +++ b/cpp/test/Ice/optional/AllTests.cpp @@ -548,6 +548,19 @@ allTests(const Ice::CommunicatorPtr& communicator, bool collocated) in->endEncapsulation(); test(obj && dynamic_cast<TestObjectReader*>(obj.get())); factory->setEnabled(false); + + // + // Use the 1.0 encoding with operations whose only class parameters are optional. + // + IceUtil::Optional<OneOptionalPtr> oo(new OneOptional(53)); + initial->sendOptionalClass(true, oo); + initial->ice_encodingVersion(Ice::Encoding_1_0)->sendOptionalClass(true, oo); + + initial->returnOptionalClass(true, oo); + test(oo); + initial->ice_encodingVersion(Ice::Encoding_1_0)->returnOptionalClass(true, oo); + test(!oo); + cout << "ok" << endl; cout << "testing marshalling of large containers with fixed size elements..." << flush; @@ -1092,6 +1105,21 @@ allTests(const Ice::CommunicatorPtr& communicator, bool collocated) test(ex.b == string("test")); test((*ex.o)->a = 53); } + + try + { + // + // Use the 1.0 encoding with an exception whose only class members are optional. + // + initial->ice_encodingVersion(Ice::Encoding_1_0)-> + opOptionalException(30, string("test"), OneOptionalPtr(new OneOptional(53))); + } + catch(const OptionalException& ex) + { + test(!ex.a); + test(!ex.b); + test(!ex.o); + } } cout << "ok" << endl; diff --git a/cpp/test/Ice/optional/Test.ice b/cpp/test/Ice/optional/Test.ice index baea70cb293..d693ae649a2 100644 --- a/cpp/test/Ice/optional/Test.ice +++ b/cpp/test/Ice/optional/Test.ice @@ -138,6 +138,7 @@ class WD exception OptionalException { + bool req = false; optional(1) int a = 5; optional(2) string b; optional(50) OneOptional o; @@ -253,6 +254,10 @@ class Initial void opClassAndUnknownOptional(A p); + void sendOptionalClass(bool req, optional(1) OneOptional o); + + void returnOptionalClass(bool req, out optional(1) OneOptional o); + bool supportsRequiredParams(); bool supportsJavaSerializable(); diff --git a/cpp/test/Ice/optional/TestI.cpp b/cpp/test/Ice/optional/TestI.cpp index b40ee6cf67d..f26194e934a 100644 --- a/cpp/test/Ice/optional/TestI.cpp +++ b/cpp/test/Ice/optional/TestI.cpp @@ -344,6 +344,17 @@ InitialI::opClassAndUnknownOptional(const APtr& a, const Ice::Current&) { } +void +InitialI::sendOptionalClass(bool, const Optional<OneOptionalPtr>&, const Ice::Current&) +{ +} + +void +InitialI::returnOptionalClass(bool, Optional<OneOptionalPtr>& o, const Ice::Current&) +{ + o = new OneOptional(53); +} + bool InitialI::supportsRequiredParams(const Ice::Current&) { diff --git a/cpp/test/Ice/optional/TestI.h b/cpp/test/Ice/optional/TestI.h index 2114639de63..aab81137006 100644 --- a/cpp/test/Ice/optional/TestI.h +++ b/cpp/test/Ice/optional/TestI.h @@ -172,6 +172,10 @@ public: virtual void opClassAndUnknownOptional(const Test::APtr&, const Ice::Current&); + virtual void sendOptionalClass(bool, const IceUtil::Optional<Test::OneOptionalPtr>&, const Ice::Current&); + + virtual void returnOptionalClass(bool, IceUtil::Optional<Test::OneOptionalPtr>&, const Ice::Current&); + virtual bool supportsRequiredParams(const Ice::Current&); virtual bool supportsJavaSerializable(const Ice::Current&); |