summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe George <joe@zeroc.com>2016-07-18 14:32:13 -0400
committerJoe George <joe@zeroc.com>2016-07-21 14:09:18 -0400
commitb42ec425b82eed48eebbc4dc059911fe201893ef (patch)
tree1a475024a1228fc7516a619c490df061b3098323
parentICE-7239 - Disable Ice.Warn.Dispatch for Python Ice/proxy test (diff)
downloadice-b42ec425b82eed48eebbc4dc059911fe201893ef.tar.bz2
ice-b42ec425b82eed48eebbc4dc059911fe201893ef.tar.xz
ice-b42ec425b82eed48eebbc4dc059911fe201893ef.zip
Fix ICE-7235 - Objective-C cross C++ objects test
-rw-r--r--objective-c/test/Ice/objects/ObjectsTest.ice48
-rw-r--r--objective-c/test/Ice/objects/TestI.m13
2 files changed, 53 insertions, 8 deletions
diff --git a/objective-c/test/Ice/objects/ObjectsTest.ice b/objective-c/test/Ice/objects/ObjectsTest.ice
index 39e33fceca6..8f2795367a1 100644
--- a/objective-c/test/Ice/objects/ObjectsTest.ice
+++ b/objective-c/test/Ice/objects/ObjectsTest.ice
@@ -129,15 +129,44 @@ exception Ex
};
-sequence<Object> ObjectSeq; // For Objective-C only
-sequence<Object*> ObjectPrxSeq; // For Objective-C only
-sequence<Base> BaseSeq; // For Objective-C only
-sequence<Base*> BasePrxSeq; // For Objective-C only
+class A1
+{
+ string name;
+};
+
+class B1
+{
+ A1 a1;
+ A1 a2;
+};
+
+class D1 extends B1
+{
+ A1 a3;
+ A1 a4;
+};
-dictionary<string, Object> ObjectDict; // For Objective-C only
-dictionary<string, Object*> ObjectPrxDict; // For Objective-C only
-dictionary<string, Base> BaseDict; // For Objective-C only
-dictionary<string, Base*> BasePrxDict; // For Objective-C only
+exception EBase
+{
+ A1 a1;
+ A1 a2;
+};
+
+exception EDerived extends EBase
+{
+ A1 a3;
+ A1 a4;
+};
+
+sequence<Object> ObjectSeq; // For Objective-C only
+sequence<Object*> ObjectPrxSeq; // For Objective-C only
+sequence<Base> BaseSeq; // For Objective-C only
+sequence<Base*> BasePrxSeq; // For Objective-C only
+
+dictionary<string, Object> ObjectDict; // For Objective-C only
+dictionary<string, Object*> ObjectPrxDict; // For Objective-C only
+dictionary<string, Base> BaseDict; // For Objective-C only
+dictionary<string, Base*> BasePrxDict; // For Objective-C only
class Initial
{
@@ -155,6 +184,9 @@ class Initial
I getJ();
I getH();
+ D1 getD1(D1 d1);
+ void throwEDerived() throws EDerived;
+
void setI(I theI);
BaseSeq opBaseSeq(BaseSeq inSeq, out BaseSeq outSeq);
diff --git a/objective-c/test/Ice/objects/TestI.m b/objective-c/test/Ice/objects/TestI.m
index ccf6f628928..23ac5ca093e 100644
--- a/objective-c/test/Ice/objects/TestI.m
+++ b/objective-c/test/Ice/objects/TestI.m
@@ -235,6 +235,19 @@
return (TestObjectsI*)[TestObjectsH h];
}
+-(TestObjectsI*) getD1:(TestObjectsI*)d1 current:(ICECurrent*)current
+{
+ return d1;
+}
+
+-(void) throwEDerived:(ICECurrent*)current
+{
+ @throw [TestObjectsEDerived eDerived:[TestObjectsA1 a1:@"a1"]
+ a2:[TestObjectsA1 a1:@"a2"]
+ a3:[TestObjectsA1 a1:@"a3"]
+ a4:[TestObjectsA1 a1:@"a4"]];
+}
+
-(TestObjectsBaseSeq*) opBaseSeq:(TestObjectsMutableBaseSeq*)inSeq outSeq:(TestObjectsBaseSeq**)outSeq
current:(ICECurrent*)current
{