diff options
Diffstat (limited to 'cpp/test')
-rw-r--r-- | cpp/test/Ice/operations/TwowaysAMI.cpp | 22 | ||||
-rw-r--r-- | cpp/test/Ice/slicing/objects/AllTests.cpp | 2 |
2 files changed, 23 insertions, 1 deletions
diff --git a/cpp/test/Ice/operations/TwowaysAMI.cpp b/cpp/test/Ice/operations/TwowaysAMI.cpp index fb81868048f..6c735a98418 100644 --- a/cpp/test/Ice/operations/TwowaysAMI.cpp +++ b/cpp/test/Ice/operations/TwowaysAMI.cpp @@ -916,6 +916,28 @@ twowaysAMI(const Ice::CommunicatorPtr& communicator, const Test::MyClassPrx& p) } { + // Check that CommunicatorDestroyedException is raised directly. + Ice::InitializationData initData; + initData.properties = communicator->getProperties()->clone(); + Ice::CommunicatorPtr ic = Ice::initialize(initData); + Ice::ObjectPrx obj = ic->stringToProxy(p->ice_toString()); + Test::MyClassPrx p2 = Test::MyClassPrx::checkedCast(obj); + + ic->destroy(); + + AMI_MyClass_opVoidIPtr cb = new AMI_MyClass_opVoidI; + try + { + p2->opVoid_async(cb); + test(false); + } + catch(const Ice::CommunicatorDestroyedException& ex) + { + // Expected. + } + } + + { AMI_MyClass_opByteIPtr cb = new AMI_MyClass_opByteI; p->opByte_async(cb, Ice::Byte(0xff), Ice::Byte(0x0f)); test(cb->check()); diff --git a/cpp/test/Ice/slicing/objects/AllTests.cpp b/cpp/test/Ice/slicing/objects/AllTests.cpp index b9f102b6c5a..c3c0614d92d 100644 --- a/cpp/test/Ice/slicing/objects/AllTests.cpp +++ b/cpp/test/Ice/slicing/objects/AllTests.cpp @@ -776,7 +776,7 @@ allTests(const Ice::CommunicatorPtr& communicator) try { AMI_Test_SUnknownAsObjectIPtr cb = new AMI_Test_SUnknownAsObjectI; - test->SUnknownAsObject_async(cb);
+ test->SUnknownAsObject_async(cb); test(cb->check()); } catch(...) |