diff options
author | Mark Spruiell <mes@zeroc.com> | 2016-09-08 13:56:08 -0700 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2016-09-08 13:56:08 -0700 |
commit | 2e78fe1212d27bbcfb049dfa6a56e52db496b816 (patch) | |
tree | ff33e5967bbb7ce6aa528dac6db88d4177efe8cb | |
parent | Update java-compat to latest version of builder (diff) | |
download | ice-2e78fe1212d27bbcfb049dfa6a56e52db496b816.tar.bz2 ice-2e78fe1212d27bbcfb049dfa6a56e52db496b816.tar.xz ice-2e78fe1212d27bbcfb049dfa6a56e52db496b816.zip |
ICE-7333 - Java/C# cross test failure in Ice/optional
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(); }; }; |