summaryrefslogtreecommitdiff
path: root/cpp/test/Ice/operations/TwowaysAMI.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/test/Ice/operations/TwowaysAMI.cpp')
-rw-r--r--cpp/test/Ice/operations/TwowaysAMI.cpp22
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());