summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cpp/test/Ice/optional/Test.ice2
-rw-r--r--cpp/test/Ice/optional/TestAMD.ice2
-rw-r--r--cpp/test/Ice/optional/TestAMDI.cpp13
-rw-r--r--cpp/test/Ice/optional/TestAMDI.h4
-rw-r--r--cpp/test/Ice/optional/TestI.cpp6
-rw-r--r--cpp/test/Ice/optional/TestI.h2
-rw-r--r--csharp/test/Ice/optional/AllTests.cs18
-rw-r--r--csharp/test/Ice/optional/Test.ice2
-rw-r--r--csharp/test/Ice/optional/TestAMD.ice2
-rw-r--r--csharp/test/Ice/optional/TestAMDI.cs6
-rw-r--r--csharp/test/Ice/optional/TestI.cs5
-rw-r--r--java-compat/test/src/main/java/test/Ice/optional/AMDInitialI.java7
-rw-r--r--java-compat/test/src/main/java/test/Ice/optional/InitialI.java7
-rw-r--r--java-compat/test/src/main/java/test/Ice/optional/Test.ice2
-rw-r--r--java-compat/test/src/main/java/test/Ice/optional/TestAMD.ice2
-rw-r--r--java/test/src/main/java/test/Ice/optional/AMDInitialI.java10
-rw-r--r--java/test/src/main/java/test/Ice/optional/InitialI.java10
-rw-r--r--java/test/src/main/java/test/Ice/optional/Test.ice2
-rw-r--r--java/test/src/main/java/test/Ice/optional/TestAMD.ice2
-rw-r--r--js/test/Ice/optional/Test.ice2
-rw-r--r--objective-c/test/Ice/optional/OptionalTest.ice2
-rw-r--r--objective-c/test/Ice/optional/TestI.h1
-rw-r--r--objective-c/test/Ice/optional/TestI.m4
-rw-r--r--php/test/Ice/optional/Test.ice4
-rwxr-xr-xpython/test/Ice/optional/Server.py3
-rwxr-xr-xpython/test/Ice/optional/ServerAMD.py3
-rw-r--r--python/test/Ice/optional/Test.ice2
-rw-r--r--python/test/Ice/optional/TestAMD.ice2
-rw-r--r--ruby/test/Ice/optional/Test.ice4
29 files changed, 125 insertions, 6 deletions
diff --git a/cpp/test/Ice/optional/Test.ice b/cpp/test/Ice/optional/Test.ice
index 7b2489829cb..ebf60d3a15f 100644
--- a/cpp/test/Ice/optional/Test.ice
+++ b/cpp/test/Ice/optional/Test.ice
@@ -332,6 +332,8 @@ class Initial
bool supportsCsharpSerializable();
bool supportsCppStringView();
+
+ bool supportsNullOptional();
};
};
diff --git a/cpp/test/Ice/optional/TestAMD.ice b/cpp/test/Ice/optional/TestAMD.ice
index 139c4962a99..5ae931827f9 100644
--- a/cpp/test/Ice/optional/TestAMD.ice
+++ b/cpp/test/Ice/optional/TestAMD.ice
@@ -333,6 +333,8 @@ class Initial
bool supportsCsharpSerializable();
bool supportsCppStringView();
+
+ bool supportsNullOptional();
};
};
diff --git a/cpp/test/Ice/optional/TestAMDI.cpp b/cpp/test/Ice/optional/TestAMDI.cpp
index 817afefb905..be47d85f394 100644
--- a/cpp/test/Ice/optional/TestAMDI.cpp
+++ b/cpp/test/Ice/optional/TestAMDI.cpp
@@ -545,6 +545,13 @@ InitialI::supportsCppStringViewAsync(::std::function<void(bool)> response,
response(true);
}
+void
+InitialI::supportsNullOptionalAsync(::std::function<void(bool)> response,
+ ::std::function<void(::std::exception_ptr)>, const Ice::Current&)
+{
+ response(true);
+}
+
#else // C++98 mapping
@@ -1012,4 +1019,10 @@ InitialI::supportsCppStringView_async(const ::Test::AMD_Initial_supportsCppStrin
cb->ice_response(true);
}
+void
+InitialI::supportsNullOptional_async(const ::Test::AMD_Initial_supportsNullOptionalPtr& cb, const Ice::Current&)
+{
+ cb->ice_response(true);
+}
+
#endif
diff --git a/cpp/test/Ice/optional/TestAMDI.h b/cpp/test/Ice/optional/TestAMDI.h
index c38e7301662..48bbe84452e 100644
--- a/cpp/test/Ice/optional/TestAMDI.h
+++ b/cpp/test/Ice/optional/TestAMDI.h
@@ -292,6 +292,8 @@ public:
virtual void supportsCppStringViewAsync(::std::function<void(bool)>,
::std::function<void(::std::exception_ptr)>, const Ice::Current&) override;
+ virtual void supportsNullOptionalAsync(::std::function<void(bool)>,
+ ::std::function<void(::std::exception_ptr)>, const Ice::Current&) override;
#else // C++98 mapping
@@ -515,6 +517,8 @@ public:
virtual void supportsCppStringView_async(const ::Test::AMD_Initial_supportsCppStringViewPtr&,
const Ice::Current&);
+ virtual void supportsNullOptional_async(const ::Test::AMD_Initial_supportsNullOptionalPtr&, const Ice::Current&);
+
#endif
};
diff --git a/cpp/test/Ice/optional/TestI.cpp b/cpp/test/Ice/optional/TestI.cpp
index 1ebaf4afd93..46f76291366 100644
--- a/cpp/test/Ice/optional/TestI.cpp
+++ b/cpp/test/Ice/optional/TestI.cpp
@@ -560,3 +560,9 @@ InitialI::supportsCppStringView(const Ice::Current&)
{
return true;
}
+
+bool
+InitialI::supportsNullOptional(const Ice::Current&)
+{
+ return true;
+}
diff --git a/cpp/test/Ice/optional/TestI.h b/cpp/test/Ice/optional/TestI.h
index edd141ce2f5..b6fcdeb9dfc 100644
--- a/cpp/test/Ice/optional/TestI.h
+++ b/cpp/test/Ice/optional/TestI.h
@@ -267,6 +267,8 @@ public:
virtual bool supportsCsharpSerializable(const Ice::Current&);
virtual bool supportsCppStringView(const Ice::Current&);
+
+ virtual bool supportsNullOptional(const Ice::Current&);
};
#endif
diff --git a/csharp/test/Ice/optional/AllTests.cs b/csharp/test/Ice/optional/AllTests.cs
index ad332075000..522d0ad9900 100644
--- a/csharp/test/Ice/optional/AllTests.cs
+++ b/csharp/test/Ice/optional/AllTests.cs
@@ -1154,11 +1154,14 @@ public class AllTests : TestCommon.TestApp
test(!p2.HasValue && !p3.HasValue);
p2 = initial.opOneOptional(Ice.Util.None, out p3);
test(!p2.HasValue && !p3.HasValue);
- p2 = initial.opOneOptional(null, out p3); // Implicitly converts to Ice.Optional<OneOptional>(null)
- test(p2.HasValue && p2.Value == null && p3.HasValue && p3.Value == null);
+ if(initial.supportsNullOptional())
+ {
+ p2 = initial.opOneOptional(null, out p3); // Implicitly converts to Ice.Optional<OneOptional>(null)
+ test(p2.HasValue && p2.Value == null && p3.HasValue && p3.Value == null);
- p2 = initial.opOneOptional(new Ice.Optional<Test.OneOptional>((Test.OneOptional)null), out p3);
- test(p2.HasValue && p3.HasValue && p2.Value == null && p3.Value == null);
+ p2 = initial.opOneOptional(new Ice.Optional<Test.OneOptional>((Test.OneOptional)null), out p3);
+ test(p2.HasValue && p3.HasValue && p2.Value == null && p3.Value == null);
+ }
p1 = new Test.OneOptional(58);
p2 = initial.opOneOptional(p1, out p3);
@@ -1207,8 +1210,11 @@ public class AllTests : TestCommon.TestApp
test(!p2.HasValue && !p3.HasValue);
p2 = initial.opOneOptionalProxy(Ice.Util.None, out p3);
test(!p2.HasValue && !p3.HasValue);
- p2 = initial.opOneOptionalProxy(null, out p3);
- test(p2.HasValue && p3.HasValue && p2.Value == null && p3.Value == null);
+ if(initial.supportsNullOptional())
+ {
+ p2 = initial.opOneOptionalProxy(null, out p3);
+ test(p2.HasValue && p3.HasValue && p2.Value == null && p3.Value == null);
+ }
//
// Not allowed by C# language spec because OptionalOnePrx is an interface.
diff --git a/csharp/test/Ice/optional/Test.ice b/csharp/test/Ice/optional/Test.ice
index 4d861430528..de9cafe9339 100644
--- a/csharp/test/Ice/optional/Test.ice
+++ b/csharp/test/Ice/optional/Test.ice
@@ -312,6 +312,8 @@ class Initial
bool supportsCsharpSerializable();
bool supportsCppStringView();
+
+ bool supportsNullOptional();
};
};
diff --git a/csharp/test/Ice/optional/TestAMD.ice b/csharp/test/Ice/optional/TestAMD.ice
index 019a2d760a5..6621246fe41 100644
--- a/csharp/test/Ice/optional/TestAMD.ice
+++ b/csharp/test/Ice/optional/TestAMD.ice
@@ -312,6 +312,8 @@ class Initial
bool supportsCsharpSerializable();
bool supportsCppStringView();
+
+ bool supportsNullOptional();
};
};
diff --git a/csharp/test/Ice/optional/TestAMDI.cs b/csharp/test/Ice/optional/TestAMDI.cs
index f5293fc9dae..bfbff2a758c 100644
--- a/csharp/test/Ice/optional/TestAMDI.cs
+++ b/csharp/test/Ice/optional/TestAMDI.cs
@@ -350,4 +350,10 @@ public class InitialI : Test.InitialDisp_
{
return Task.FromResult<bool>(false);
}
+
+ public override Task<bool>
+ supportsNullOptionalAsync(Ice.Current current)
+ {
+ return Task.FromResult<bool>(true);
+ }
}
diff --git a/csharp/test/Ice/optional/TestI.cs b/csharp/test/Ice/optional/TestI.cs
index 6f62581d397..0b51fa21ed9 100644
--- a/csharp/test/Ice/optional/TestI.cs
+++ b/csharp/test/Ice/optional/TestI.cs
@@ -368,4 +368,9 @@ public class InitialI : Test.InitialDisp_
{
return false;
}
+
+ public override bool supportsNullOptional(Ice.Current current)
+ {
+ return true;
+ }
}
diff --git a/java-compat/test/src/main/java/test/Ice/optional/AMDInitialI.java b/java-compat/test/src/main/java/test/Ice/optional/AMDInitialI.java
index b95ef4dca9a..3bd97d11755 100644
--- a/java-compat/test/src/main/java/test/Ice/optional/AMDInitialI.java
+++ b/java-compat/test/src/main/java/test/Ice/optional/AMDInitialI.java
@@ -678,4 +678,11 @@ public final class AMDInitialI extends Initial
{
cb.ice_response(false);
}
+
+ @Override
+ public void
+ supportsNullOptional_async(AMD_Initial_supportsNullOptional cb, Ice.Current current)
+ {
+ cb.ice_response(true);
+ }
}
diff --git a/java-compat/test/src/main/java/test/Ice/optional/InitialI.java b/java-compat/test/src/main/java/test/Ice/optional/InitialI.java
index 37febe6803a..ffa2dbd11e1 100644
--- a/java-compat/test/src/main/java/test/Ice/optional/InitialI.java
+++ b/java-compat/test/src/main/java/test/Ice/optional/InitialI.java
@@ -730,4 +730,11 @@ public final class InitialI extends Initial
{
return false;
}
+
+ @Override
+ public boolean
+ supportsNullOptional(Ice.Current current)
+ {
+ return true;
+ }
}
diff --git a/java-compat/test/src/main/java/test/Ice/optional/Test.ice b/java-compat/test/src/main/java/test/Ice/optional/Test.ice
index 7a79670d415..596f2102d77 100644
--- a/java-compat/test/src/main/java/test/Ice/optional/Test.ice
+++ b/java-compat/test/src/main/java/test/Ice/optional/Test.ice
@@ -349,6 +349,8 @@ class Initial
bool supportsCsharpSerializable();
bool supportsCppStringView();
+
+ bool supportsNullOptional();
};
};
diff --git a/java-compat/test/src/main/java/test/Ice/optional/TestAMD.ice b/java-compat/test/src/main/java/test/Ice/optional/TestAMD.ice
index b9d34d172d0..2fc1437cf73 100644
--- a/java-compat/test/src/main/java/test/Ice/optional/TestAMD.ice
+++ b/java-compat/test/src/main/java/test/Ice/optional/TestAMD.ice
@@ -352,6 +352,8 @@ class Initial
bool supportsCsharpSerializable();
bool supportsCppStringView();
+
+ bool supportsNullOptional();
};
};
diff --git a/java/test/src/main/java/test/Ice/optional/AMDInitialI.java b/java/test/src/main/java/test/Ice/optional/AMDInitialI.java
index 70ebdaff730..f472ee519dd 100644
--- a/java/test/src/main/java/test/Ice/optional/AMDInitialI.java
+++ b/java/test/src/main/java/test/Ice/optional/AMDInitialI.java
@@ -635,4 +635,14 @@ public final class AMDInitialI implements _InitialDisp
{
return CompletableFuture.completedFuture(false);
}
+
+ @Override
+ public CompletionStage<Boolean> supportsNullOptionalAsync(Current current)
+ {
+ //
+ // The java.util.Optional class does not support a null value. Constructing an Optional
+ // using Optional.ofNullable(null) returns an optional whose value is NOT present.
+ //
+ return CompletableFuture.completedFuture(false);
+ }
}
diff --git a/java/test/src/main/java/test/Ice/optional/InitialI.java b/java/test/src/main/java/test/Ice/optional/InitialI.java
index 9e0a57c6ee6..305ecff4c68 100644
--- a/java/test/src/main/java/test/Ice/optional/InitialI.java
+++ b/java/test/src/main/java/test/Ice/optional/InitialI.java
@@ -589,4 +589,14 @@ public final class InitialI implements _InitialDisp
{
return false;
}
+
+ @Override
+ public boolean supportsNullOptional(Current current)
+ {
+ //
+ // The java.util.Optional class does not support a null value. Constructing an Optional
+ // using Optional.ofNullable(null) returns an optional whose value is NOT present.
+ //
+ return false;
+ }
}
diff --git a/java/test/src/main/java/test/Ice/optional/Test.ice b/java/test/src/main/java/test/Ice/optional/Test.ice
index ba3a7ba5f51..debb2a28680 100644
--- a/java/test/src/main/java/test/Ice/optional/Test.ice
+++ b/java/test/src/main/java/test/Ice/optional/Test.ice
@@ -351,6 +351,8 @@ class Initial
bool supportsCsharpSerializable();
bool supportsCppStringView();
+
+ bool supportsNullOptional();
};
};
diff --git a/java/test/src/main/java/test/Ice/optional/TestAMD.ice b/java/test/src/main/java/test/Ice/optional/TestAMD.ice
index 07a9f690f40..b9993895e02 100644
--- a/java/test/src/main/java/test/Ice/optional/TestAMD.ice
+++ b/java/test/src/main/java/test/Ice/optional/TestAMD.ice
@@ -352,6 +352,8 @@ class Initial
bool supportsCsharpSerializable();
bool supportsCppStringView();
+
+ bool supportsNullOptional();
};
};
diff --git a/js/test/Ice/optional/Test.ice b/js/test/Ice/optional/Test.ice
index 77ff26ca7cd..c527ba9e0f9 100644
--- a/js/test/Ice/optional/Test.ice
+++ b/js/test/Ice/optional/Test.ice
@@ -297,6 +297,8 @@ class Initial
bool supportsJavaSerializable();
bool supportsCsharpSerializable();
+
+ bool supportsNullOptional();
};
};
diff --git a/objective-c/test/Ice/optional/OptionalTest.ice b/objective-c/test/Ice/optional/OptionalTest.ice
index 97829f03e31..7528f766fc0 100644
--- a/objective-c/test/Ice/optional/OptionalTest.ice
+++ b/objective-c/test/Ice/optional/OptionalTest.ice
@@ -322,6 +322,8 @@ class Initial
bool supportsCsharpSerializable();
bool supportsCppStringView();
+
+ bool supportsNullOptional();
};
};
diff --git a/objective-c/test/Ice/optional/TestI.h b/objective-c/test/Ice/optional/TestI.h
index cc3450d105f..2ad19aa1183 100644
--- a/objective-c/test/Ice/optional/TestI.h
+++ b/objective-c/test/Ice/optional/TestI.h
@@ -15,4 +15,5 @@
-(BOOL) supportsRequiredParams:(ICECurrent*)current;
-(BOOL) supportsJavaSerializable:(ICECurrent*)current;
-(BOOL) supportsCsharpSerializable:(ICECurrent*)current;
+-(BOOL) supportsNullOptional:(ICECurrent*)current;
@end
diff --git a/objective-c/test/Ice/optional/TestI.m b/objective-c/test/Ice/optional/TestI.m
index 7a7d8076ecb..f56d3badd6e 100644
--- a/objective-c/test/Ice/optional/TestI.m
+++ b/objective-c/test/Ice/optional/TestI.m
@@ -287,5 +287,9 @@
{
return NO;
}
+-(BOOL) supportsNullOptional:(ICECurrent*)current
+{
+ return YES;
+}
@end
diff --git a/php/test/Ice/optional/Test.ice b/php/test/Ice/optional/Test.ice
index b5e86d04a75..c889c947b47 100644
--- a/php/test/Ice/optional/Test.ice
+++ b/php/test/Ice/optional/Test.ice
@@ -295,6 +295,10 @@ class Initial
bool supportsJavaSerializable();
bool supportsCsharpSerializable();
+
+ bool supportsCppStringView();
+
+ bool supportsNullOptional();
};
};
diff --git a/python/test/Ice/optional/Server.py b/python/test/Ice/optional/Server.py
index c865c37b1c3..7dac81076cd 100755
--- a/python/test/Ice/optional/Server.py
+++ b/python/test/Ice/optional/Server.py
@@ -183,6 +183,9 @@ class InitialI(Test.Initial):
def supportsCppStringView(self, current=None):
return False
+ def supportsNullOptional(self, current=None):
+ return True
+
def run(args, communicator):
communicator.getProperties().setProperty("TestAdapter.Endpoints", "default -p 12010:udp")
adapter = communicator.createObjectAdapter("TestAdapter")
diff --git a/python/test/Ice/optional/ServerAMD.py b/python/test/Ice/optional/ServerAMD.py
index bd95c1feb33..5851064e4d9 100755
--- a/python/test/Ice/optional/ServerAMD.py
+++ b/python/test/Ice/optional/ServerAMD.py
@@ -184,6 +184,9 @@ class InitialI(Test.Initial):
def supportsCppStringView_async(self, cb, current=None):
cb.ice_response(False)
+ def supportsNullOptional(self, cb, current=None):
+ cb.ice_response(True)
+
def run(args, communicator):
communicator.getProperties().setProperty("TestAdapter.Endpoints", "default -p 12010:udp")
adapter = communicator.createObjectAdapter("TestAdapter")
diff --git a/python/test/Ice/optional/Test.ice b/python/test/Ice/optional/Test.ice
index bf98d343436..a4b05fe844a 100644
--- a/python/test/Ice/optional/Test.ice
+++ b/python/test/Ice/optional/Test.ice
@@ -306,6 +306,8 @@ class Initial
bool supportsCsharpSerializable();
bool supportsCppStringView();
+
+ bool supportsNullOptional();
};
};
diff --git a/python/test/Ice/optional/TestAMD.ice b/python/test/Ice/optional/TestAMD.ice
index 9ef8436a35e..8f315c90d83 100644
--- a/python/test/Ice/optional/TestAMD.ice
+++ b/python/test/Ice/optional/TestAMD.ice
@@ -307,6 +307,8 @@ class Initial
bool supportsCsharpSerializable();
bool supportsCppStringView();
+
+ bool supportsNullOptional();
};
};
diff --git a/ruby/test/Ice/optional/Test.ice b/ruby/test/Ice/optional/Test.ice
index e018e04535d..8019aaafe39 100644
--- a/ruby/test/Ice/optional/Test.ice
+++ b/ruby/test/Ice/optional/Test.ice
@@ -304,6 +304,10 @@ class Initial
bool supportsJavaSerializable();
bool supportsCsharpSerializable();
+
+ bool supportsCppStringView();
+
+ bool supportsNullOptional();
};
};