diff options
Diffstat (limited to 'cpp/test/Ice/operations/TwowaysAMI.cpp')
-rw-r--r-- | cpp/test/Ice/operations/TwowaysAMI.cpp | 22 |
1 files changed, 22 insertions, 0 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()); |