summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2018-09-13 18:13:35 +0200
committerJose <jose@zeroc.com>2018-09-13 18:17:32 +0200
commit873c217879435669b74ea501a058f47c0255312b (patch)
tree61517e00e0153d0c29d8950cafb7c54afaf900f5
parentAllow to build Python 3.7 with Visual Studio 2017 (diff)
downloadice-873c217879435669b74ea501a058f47c0255312b.tar.bz2
ice-873c217879435669b74ea501a058f47c0255312b.tar.xz
ice-873c217879435669b74ea501a058f47c0255312b.zip
Test using Value type as a class data member
See #203
-rw-r--r--cpp/test/Ice/objects/AllTests.cpp7
-rw-r--r--cpp/test/Ice/objects/Test.ice13
-rw-r--r--cpp/test/Ice/objects/TestI.cpp7
-rw-r--r--cpp/test/Ice/objects/TestI.h2
-rw-r--r--csharp/test/Ice/objects/AllTests.cs8
-rw-r--r--csharp/test/Ice/objects/InitialI.cs5
-rw-r--r--csharp/test/Ice/objects/Test.ice14
-rw-r--r--java-compat/test/src/main/java/test/Ice/objects/InitialI.java9
-rw-r--r--java-compat/test/src/main/java/test/Ice/objects/Test.ice14
-rw-r--r--java/test/src/main/java/test/Ice/objects/AllTests.java10
-rw-r--r--java/test/src/main/java/test/Ice/objects/InitialI.java6
-rw-r--r--java/test/src/main/java/test/Ice/objects/Test.ice14
-rw-r--r--js/test/Ice/objects/Client.js6
-rw-r--r--js/test/Ice/objects/InitialI.js5
-rw-r--r--js/test/Ice/objects/Test.ice14
-rw-r--r--matlab/test/Ice/objects/AllTests.m7
-rw-r--r--matlab/test/Ice/objects/Test.ice14
-rw-r--r--python/test/Ice/objects/AllTests.py7
-rw-r--r--python/test/Ice/objects/Test.ice14
-rw-r--r--python/test/Ice/objects/TestI.py3
20 files changed, 172 insertions, 7 deletions
diff --git a/cpp/test/Ice/objects/AllTests.cpp b/cpp/test/Ice/objects/AllTests.cpp
index 324cb2af3a1..659ce152cff 100644
--- a/cpp/test/Ice/objects/AllTests.cpp
+++ b/cpp/test/Ice/objects/AllTests.cpp
@@ -340,6 +340,13 @@ allTests(Test::TestHelper* helper)
#endif
cout << "ok" << endl;
+ cout << "getting K... " << flush;
+ KPtr k = initial->getK();
+ LPtr l = ICE_DYNAMIC_CAST(L, k->value);
+ test(l);
+ test(l->data == "l");
+ cout << "ok" << endl;
+
cout << "getting D1... " << flush;
D1Ptr d1 = ICE_MAKE_SHARED(D1,
ICE_MAKE_SHARED(A1, "a1"),
diff --git a/cpp/test/Ice/objects/Test.ice b/cpp/test/Ice/objects/Test.ice
index 2d445d5573f..54352db915c 100644
--- a/cpp/test/Ice/objects/Test.ice
+++ b/cpp/test/Ice/objects/Test.ice
@@ -177,6 +177,16 @@ class Recursive
Recursive v;
}
+class K
+{
+ Value value;
+}
+
+class L
+{
+ string data;
+}
+
interface Initial
{
void shutdown();
@@ -195,9 +205,10 @@ interface Initial
void getAll(out B b1, out B b2, out C theC, out D theD);
+ I getH();
I getI();
I getJ();
- I getH();
+ K getK();
D1 getD1(D1 d1);
void throwEDerived() throws EDerived;
diff --git a/cpp/test/Ice/objects/TestI.cpp b/cpp/test/Ice/objects/TestI.cpp
index c94b9c263db..7ee2703aa79 100644
--- a/cpp/test/Ice/objects/TestI.cpp
+++ b/cpp/test/Ice/objects/TestI.cpp
@@ -329,6 +329,13 @@ InitialI::getH(const Ice::Current&)
}
#endif
+
+KPtr
+InitialI::getK(const Ice::Current&)
+{
+ return ICE_MAKE_SHARED(K, ICE_MAKE_SHARED(L, "l"));
+}
+
D1Ptr
InitialI::getD1(ICE_IN(Test::D1Ptr) d1, const Ice::Current&)
{
diff --git a/cpp/test/Ice/objects/TestI.h b/cpp/test/Ice/objects/TestI.h
index 1061864de50..8002d37bf12 100644
--- a/cpp/test/Ice/objects/TestI.h
+++ b/cpp/test/Ice/objects/TestI.h
@@ -119,6 +119,8 @@ public:
virtual Test::IPtr getH(const Ice::Current&);
#endif
+ virtual Test::KPtr getK(const Ice::Current&);
+
virtual Test::D1Ptr getD1(ICE_IN(Test::D1Ptr), const Ice::Current&);
virtual void throwEDerived(const Ice::Current&);
diff --git a/csharp/test/Ice/objects/AllTests.cs b/csharp/test/Ice/objects/AllTests.cs
index b2eca5de77b..b2bbf875e0c 100644
--- a/csharp/test/Ice/objects/AllTests.cs
+++ b/csharp/test/Ice/objects/AllTests.cs
@@ -276,6 +276,14 @@ namespace Ice
test(h != null);
output.WriteLine("ok");
+ output.Write("getting K... ");
+ output.Flush();
+ var k = initial.getK();
+ var l = k.value as L;
+ test(l != null);
+ test(l.data.Equals("l"));
+ output.WriteLine("ok");
+
output.Write("getting D1... ");
output.Flush();
D1 d1 = new D1(new A1("a1"), new A1("a2"), new A1("a3"), new A1("a4"));
diff --git a/csharp/test/Ice/objects/InitialI.cs b/csharp/test/Ice/objects/InitialI.cs
index f09f0e50ad6..309f8f81352 100644
--- a/csharp/test/Ice/objects/InitialI.cs
+++ b/csharp/test/Ice/objects/InitialI.cs
@@ -93,6 +93,11 @@ namespace Ice
return new HI();
}
+ public override Test.K getK(Ice.Current current)
+ {
+ return new Test.K(new Test.L("l"));
+ }
+
public override void setRecursive(Test.Recursive r, Ice.Current current)
{
}
diff --git a/csharp/test/Ice/objects/Test.ice b/csharp/test/Ice/objects/Test.ice
index 6e9592c71bf..194212b422b 100644
--- a/csharp/test/Ice/objects/Test.ice
+++ b/csharp/test/Ice/objects/Test.ice
@@ -172,6 +172,16 @@ class Recursive
Recursive v;
}
+class K
+{
+ Value value;
+}
+
+class L
+{
+ string data;
+}
+
interface Initial
{
void shutdown();
@@ -190,9 +200,11 @@ interface Initial
void getAll(out B b1, out B b2, out C theC, out D theD);
+ I getH();
I getI();
I getJ();
- I getH();
+
+ K getK();
D1 getD1(D1 d1);
void throwEDerived() throws EDerived;
diff --git a/java-compat/test/src/main/java/test/Ice/objects/InitialI.java b/java-compat/test/src/main/java/test/Ice/objects/InitialI.java
index 792e3d962df..88ca1055e02 100644
--- a/java-compat/test/src/main/java/test/Ice/objects/InitialI.java
+++ b/java-compat/test/src/main/java/test/Ice/objects/InitialI.java
@@ -20,6 +20,8 @@ import test.Ice.objects.Test.E;
import test.Ice.objects.Test.F;
import test.Ice.objects.Test.G;
import test.Ice.objects.Test.I;
+import test.Ice.objects.Test.K;
+import test.Ice.objects.Test.L;
import test.Ice.objects.Test.A1;
import test.Ice.objects.Test.D1;
import test.Ice.objects.Test.EDerived;
@@ -175,6 +177,13 @@ public final class InitialI extends Initial
}
@Override
+ public K
+ getK(Ice.Current current)
+ {
+ return new K(new L("l"));
+ }
+
+ @Override
public D1
getD1(D1 d1, Ice.Current current)
{
diff --git a/java-compat/test/src/main/java/test/Ice/objects/Test.ice b/java-compat/test/src/main/java/test/Ice/objects/Test.ice
index 95da33b1578..9d43497af31 100644
--- a/java-compat/test/src/main/java/test/Ice/objects/Test.ice
+++ b/java-compat/test/src/main/java/test/Ice/objects/Test.ice
@@ -173,6 +173,16 @@ class Recursive
Recursive v;
}
+class K
+{
+ Value value;
+}
+
+class L
+{
+ string data;
+}
+
class Initial
{
void shutdown();
@@ -191,9 +201,11 @@ class Initial
void getAll(out B b1, out B b2, out C theC, out D theD);
+ I getH();
I getI();
I getJ();
- I getH();
+
+ K getK();
D1 getD1(D1 d1);
void throwEDerived() throws EDerived;
diff --git a/java/test/src/main/java/test/Ice/objects/AllTests.java b/java/test/src/main/java/test/Ice/objects/AllTests.java
index c8cc245f046..0f7d343209f 100644
--- a/java/test/src/main/java/test/Ice/objects/AllTests.java
+++ b/java/test/src/main/java/test/Ice/objects/AllTests.java
@@ -20,6 +20,8 @@ import test.Ice.objects.Test.F;
import test.Ice.objects.Test.G;
import test.Ice.objects.Test.H;
import test.Ice.objects.Test.I;
+import test.Ice.objects.Test.K;
+import test.Ice.objects.Test.L;
import test.Ice.objects.Test.A1;
import test.Ice.objects.Test.B1;
import test.Ice.objects.Test.D1;
@@ -195,6 +197,14 @@ public class AllTests
test(h != null && ((H)h) != null);
out.println("ok");
+ out.print("getting K... ");
+ out.flush();
+ K k = initial.getK();
+ test(k.value instanceof L);
+ L l = (L)k.value;
+ test(l.data.equals("l"));
+ out.println("ok");
+
out.print("getting D1... ");
out.flush();
D1 d1 = new D1(new A1("a1"), new A1("a2"), new A1("a3"), new A1("a4"));
diff --git a/java/test/src/main/java/test/Ice/objects/InitialI.java b/java/test/src/main/java/test/Ice/objects/InitialI.java
index ea12334cb8d..9ef2d5617d7 100644
--- a/java/test/src/main/java/test/Ice/objects/InitialI.java
+++ b/java/test/src/main/java/test/Ice/objects/InitialI.java
@@ -135,6 +135,12 @@ public final class InitialI implements Initial
}
@Override
+ public K getK(com.zeroc.Ice.Current current)
+ {
+ return new K(new L("l"));
+ }
+
+ @Override
public D1 getD1(D1 d1, com.zeroc.Ice.Current current)
{
return d1;
diff --git a/java/test/src/main/java/test/Ice/objects/Test.ice b/java/test/src/main/java/test/Ice/objects/Test.ice
index eefcdf650d9..2655564b794 100644
--- a/java/test/src/main/java/test/Ice/objects/Test.ice
+++ b/java/test/src/main/java/test/Ice/objects/Test.ice
@@ -173,6 +173,16 @@ class Recursive
Recursive v;
}
+class K
+{
+ Value value;
+}
+
+class L
+{
+ string data;
+}
+
interface Initial
{
void shutdown();
@@ -191,9 +201,11 @@ interface Initial
void getAll(out B b1, out B b2, out C theC, out D theD);
+ I getH();
I getI();
I getJ();
- I getH();
+
+ K getK();
D1 getD1(D1 d1);
void throwEDerived() throws EDerived;
diff --git a/js/test/Ice/objects/Client.js b/js/test/Ice/objects/Client.js
index 593824b8529..401f0e808a9 100644
--- a/js/test/Ice/objects/Client.js
+++ b/js/test/Ice/objects/Client.js
@@ -267,6 +267,12 @@
test(h);
out.writeLine("ok");
+ out.write("getting K...");
+ const k = await initial.getK();
+ test(k);
+ test(k.value.data == "l");
+ out.writeLine("ok");
+
out.write("getting D1... ");
const d1 = await initial.getD1(new Test.D1(new Test.A1("a1"),
new Test.A1("a2"),
diff --git a/js/test/Ice/objects/InitialI.js b/js/test/Ice/objects/InitialI.js
index f209b35e634..b0864a4280c 100644
--- a/js/test/Ice/objects/InitialI.js
+++ b/js/test/Ice/objects/InitialI.js
@@ -254,6 +254,11 @@
return new HI();
}
+ getK(current)
+ {
+ return new Test.K(new Test.L("l"));
+ }
+
getD1(d1, current)
{
return d1;
diff --git a/js/test/Ice/objects/Test.ice b/js/test/Ice/objects/Test.ice
index e1461e326ba..aa4750b87bf 100644
--- a/js/test/Ice/objects/Test.ice
+++ b/js/test/Ice/objects/Test.ice
@@ -176,6 +176,16 @@ class Recursive
Recursive v;
}
+class K
+{
+ Value value;
+}
+
+class L
+{
+ string data;
+}
+
interface Initial
{
void shutdown();
@@ -194,9 +204,11 @@ interface Initial
void getAll(out B b1, out B b2, out C theC, out D theD);
+ I getH();
I getI();
I getJ();
- I getH();
+
+ K getK();
D1 getD1(D1 d1);
void throwEDerived() throws EDerived;
diff --git a/matlab/test/Ice/objects/AllTests.m b/matlab/test/Ice/objects/AllTests.m
index 3df02fc80ab..964c111a3ec 100644
--- a/matlab/test/Ice/objects/AllTests.m
+++ b/matlab/test/Ice/objects/AllTests.m
@@ -113,6 +113,13 @@ classdef AllTests
assert(~isempty(h) && isa(h, 'Test.H'));
fprintf('ok\n');
+ fprintf('getting K... ');
+ k = initial.getK();
+ assert(~isempty(k));
+ assert(isa(k.value, 'Test.L'));
+ assert(strcmp(k.value.data, 'l'));
+ fprintf('ok\n');
+
fprintf('getting D1... ');
d1 = D1(A1('a1'), A1('a2'), A1('a3'), A1('a4'));
d1 = initial.getD1(d1);
diff --git a/matlab/test/Ice/objects/Test.ice b/matlab/test/Ice/objects/Test.ice
index b9e1ecc9d29..1c363fc869e 100644
--- a/matlab/test/Ice/objects/Test.ice
+++ b/matlab/test/Ice/objects/Test.ice
@@ -172,6 +172,16 @@ class Recursive
Recursive v;
}
+class K
+{
+ Value value;
+}
+
+class L
+{
+ string data;
+}
+
interface Initial
{
void shutdown();
@@ -190,9 +200,11 @@ interface Initial
void getAll(out B b1, out B b2, out C theC, out D theD);
+ I getH();
I getI();
I getJ();
- I getH();
+
+ K getK();
D1 getD1(D1 d1);
void throwEDerived() throws EDerived;
diff --git a/python/test/Ice/objects/AllTests.py b/python/test/Ice/objects/AllTests.py
index b8dde23b1b4..2ddefafb01b 100644
--- a/python/test/Ice/objects/AllTests.py
+++ b/python/test/Ice/objects/AllTests.py
@@ -111,6 +111,13 @@ def allTests(helper, communicator):
test(isinstance(h, Test.H))
print("ok")
+ sys.stdout.write("getting K... ")
+ sys.stdout.flush()
+ k = initial.getK()
+ test(isinstance(k.value, Test.L))
+ test(k.value.data == "l")
+ print("ok")
+
sys.stdout.write("getting D1... ")
sys.stdout.flush()
d1 = initial.getD1(Test.D1(Test.A1("a1"), Test.A1("a2"), Test.A1("a3"), Test.A1("a4")))
diff --git a/python/test/Ice/objects/Test.ice b/python/test/Ice/objects/Test.ice
index 7f9a7ebaa62..a6a3034400e 100644
--- a/python/test/Ice/objects/Test.ice
+++ b/python/test/Ice/objects/Test.ice
@@ -172,6 +172,16 @@ class Recursive
Recursive v;
}
+class K
+{
+ Value value;
+}
+
+class L
+{
+ string data;
+}
+
interface Initial
{
void shutdown();
@@ -190,9 +200,11 @@ interface Initial
void getAll(out B b1, out B b2, out C theC, out D theD);
+ I getH();
I getI();
I getJ();
- I getH();
+
+ K getK();
D1 getD1(D1 d1);
void throwEDerived() throws EDerived;
diff --git a/python/test/Ice/objects/TestI.py b/python/test/Ice/objects/TestI.py
index 7bdcbc6b338..6da50f05ef2 100644
--- a/python/test/Ice/objects/TestI.py
+++ b/python/test/Ice/objects/TestI.py
@@ -153,6 +153,9 @@ class InitialI(Test.Initial):
def getH(self, current=None):
return HI()
+ def getK(self, current=None):
+ return Test.K(Test.L("l"))
+
def getD1(self, d1, current=None):
return d1