summaryrefslogtreecommitdiff
path: root/csharp/test
diff options
context:
space:
mode:
Diffstat (limited to 'csharp/test')
-rw-r--r--csharp/test/Ice/ami/AllTests.cs14
-rw-r--r--csharp/test/Ice/ami/Collocated.cs1
-rw-r--r--csharp/test/Ice/ami/Server.cs1
-rw-r--r--csharp/test/Ice/ami/Test.ice15
-rw-r--r--csharp/test/Ice/ami/TestI.cs10
5 files changed, 41 insertions, 0 deletions
diff --git a/csharp/test/Ice/ami/AllTests.cs b/csharp/test/Ice/ami/AllTests.cs
index 2f5d3e12473..985c1f77eed 100644
--- a/csharp/test/Ice/ami/AllTests.cs
+++ b/csharp/test/Ice/ami/AllTests.cs
@@ -3820,6 +3820,20 @@ public class AllTests : TestCommon.AllTests
}
WriteLine("ok");
+ Write("testing result struct... ");
+ Flush();
+ {
+ var q = Test.Outer.Inner.TestIntfPrxHelper.uncheckedCast(
+ communicator.stringToProxy("test2:" + app.getTestEndpoint(0)));
+ q.opAsync(1).ContinueWith(t =>
+ {
+ var r = t.Result;
+ test(r.returnValue == 1);
+ test(r.j == 1);
+ }).Wait();
+ }
+ WriteLine("ok");
+
p.shutdown();
}
}
diff --git a/csharp/test/Ice/ami/Collocated.cs b/csharp/test/Ice/ami/Collocated.cs
index 9a069dde732..767727ee8ac 100644
--- a/csharp/test/Ice/ami/Collocated.cs
+++ b/csharp/test/Ice/ami/Collocated.cs
@@ -28,6 +28,7 @@ public class Collocated : TestCommon.Application
Ice.ObjectAdapter adapter2 = communicator().createObjectAdapter("ControllerAdapter");
adapter.add(new TestI(), Ice.Util.stringToIdentity("test"));
+ adapter.add(new TestII(), Ice.Util.stringToIdentity("test2"));
//adapter.activate(); // Collocated test doesn't need to activate the OA
adapter2.add(new TestControllerI(adapter), Ice.Util.stringToIdentity("testController"));
//adapter2.activate(); // Collocated test doesn't need to activate the OA
diff --git a/csharp/test/Ice/ami/Server.cs b/csharp/test/Ice/ami/Server.cs
index 6dfdfd12c61..1e71acb2819 100644
--- a/csharp/test/Ice/ami/Server.cs
+++ b/csharp/test/Ice/ami/Server.cs
@@ -28,6 +28,7 @@ public class Server : TestCommon.Application
Ice.ObjectAdapter adapter2 = communicator().createObjectAdapter("ControllerAdapter");
adapter.add(new TestI(), Ice.Util.stringToIdentity("test"));
+ adapter.add(new TestII(), Ice.Util.stringToIdentity("test2"));
adapter.activate();
adapter2.add(new TestControllerI(adapter), Ice.Util.stringToIdentity("testController"));
adapter2.activate();
diff --git a/csharp/test/Ice/ami/Test.ice b/csharp/test/Ice/ami/Test.ice
index 0ba929e94b9..d6006190001 100644
--- a/csharp/test/Ice/ami/Test.ice
+++ b/csharp/test/Ice/ami/Test.ice
@@ -64,4 +64,19 @@ interface TestIntfController
void resumeAdapter();
}
+module Outer
+{
+
+module Inner
+{
+
+interface TestIntf
+{
+ int op(int i, out int j);
+}
+
+}
+
+}
+
}
diff --git a/csharp/test/Ice/ami/TestI.cs b/csharp/test/Ice/ami/TestI.cs
index 4f7ec7fbe79..61377d11ef3 100644
--- a/csharp/test/Ice/ami/TestI.cs
+++ b/csharp/test/Ice/ami/TestI.cs
@@ -186,6 +186,16 @@ public class TestI : TestIntfDisp_
private List<TaskCompletionSource<object>> _pending = new List<TaskCompletionSource<object>>();
}
+public class TestII : Test.Outer.Inner.TestIntfDisp_
+{
+ override public int
+ op(int i, out int j, Ice.Current current)
+ {
+ j = i;
+ return i;
+ }
+}
+
public class TestControllerI : TestIntfControllerDisp_
{
override public void