From: Robert Jordan Date: Sat, 27 Feb 2010 23:18:52 +0000 (-0000) Subject: In corlib/System.Runtime.Remoting.Proxies: X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=f2062c1ef91223d13d0e4da4cddb9acfdd0f993c;p=mono.git In corlib/System.Runtime.Remoting.Proxies: 2010-02-28 Robert Jordan * RealProxy.cs (PrivateInvoke): BeginInvoke return messages do not have out args (by design). The issue has existed for many years but it was invisible because mono_delegate_begin_invoke () has swallowed exceptions, which was fixed by Gonzalo in r141856. Fixes a couple of disabled remoting tests (#576618). In System.Runtime.Remoting/Test: 2010-02-28 Robert Jordan * BaseCalls.cs: Enable tests again. See bug #576618. svn path=/trunk/mcs/; revision=152616 --- diff --git a/mcs/class/System.Runtime.Remoting/Test/BaseCalls.cs b/mcs/class/System.Runtime.Remoting/Test/BaseCalls.cs index e97ba613c98..d1e7bb000e7 100644 --- a/mcs/class/System.Runtime.Remoting/Test/BaseCalls.cs +++ b/mcs/class/System.Runtime.Remoting/Test/BaseCalls.cs @@ -157,21 +157,18 @@ namespace MonoTests.Remoting } [Test] - [Category ("NotWorking")] public void TestInstancePrimitiveParamsInOut () { RunTestPrimitiveParamsInOut (InternalGetInstanceSurrogate()); } [Test] - [Category ("NotWorking")] public void TestAbstractPrimitiveParamsInOut () { RunTestPrimitiveParamsInOut (InternalGetAbstractSurrogate()); } [Test] - [Category ("NotWorking")] public void TestInterfacePrimitiveParamsInOut () { RunTestPrimitiveParamsInOut (InternalGetInterfaceSurrogate()); @@ -196,21 +193,21 @@ namespace MonoTests.Remoting } [Test] - [Ignore ("Fails on MS")] + [Category ("NotDotNet")] public void TestInstanceComplexParamsInOut () { RunTestComplexParamsInOut (InternalGetInstanceSurrogate()); } [Test] - [Ignore ("Fails on MS")] + [Category ("NotDotNet")] public void TestAbstractComplexParamsInOut () { RunTestComplexParamsInOut (InternalGetAbstractSurrogate()); } [Test] - [Ignore ("Fails on MS")] + [Category ("NotDotNet")] public void TestInterfaceComplexParamsInOut () { RunTestComplexParamsInOut (InternalGetInterfaceSurrogate()); diff --git a/mcs/class/System.Runtime.Remoting/Test/ChangeLog b/mcs/class/System.Runtime.Remoting/Test/ChangeLog index 7a12c0c55cb..8b3c8e5c94a 100644 --- a/mcs/class/System.Runtime.Remoting/Test/ChangeLog +++ b/mcs/class/System.Runtime.Remoting/Test/ChangeLog @@ -1,3 +1,7 @@ +2010-02-28 Robert Jordan + + * BaseCalls.cs: Enable tests again. See bug #576618. + 2010-02-11 Jonathan Pobst * ActivationTests.cs: Disable TestCreateHttpWkoSingleCall and diff --git a/mcs/class/corlib/System.Runtime.Remoting.Proxies/ChangeLog b/mcs/class/corlib/System.Runtime.Remoting.Proxies/ChangeLog index c9235c69087..aafa601367a 100644 --- a/mcs/class/corlib/System.Runtime.Remoting.Proxies/ChangeLog +++ b/mcs/class/corlib/System.Runtime.Remoting.Proxies/ChangeLog @@ -1,3 +1,11 @@ +2010-02-28 Robert Jordan + + * RealProxy.cs (PrivateInvoke): BeginInvoke return messages + do not have out args (by design). The issue has existed for many + years but it was invisible because mono_delegate_begin_invoke () + has swallowed exceptions, which was fixed by Gonzalo in r141856. + Fixes a couple of disabled remoting tests (#576618). + 2009-09-27 Gonzalo Paniagua Javier * RealProxy.cs: for a custom proxy, retrieve the OutArgs before diff --git a/mcs/class/corlib/System.Runtime.Remoting.Proxies/RealProxy.cs b/mcs/class/corlib/System.Runtime.Remoting.Proxies/RealProxy.cs index c504001d602..f5f0bfba31f 100644 --- a/mcs/class/corlib/System.Runtime.Remoting.Proxies/RealProxy.cs +++ b/mcs/class/corlib/System.Runtime.Remoting.Proxies/RealProxy.cs @@ -225,10 +225,13 @@ namespace System.Runtime.Remoting.Proxies out_args = null; throw exc.FixRemotingException(); } - else if (res_msg is IConstructionReturnMessage || mMsg.CallType == CallType.BeginInvoke) { + else if (res_msg is IConstructionReturnMessage) { if (out_args == null) out_args = res_msg.OutArgs; } + else if (mMsg.CallType == CallType.BeginInvoke) { + // We don't have OutArgs in this case. + } else if (mMsg.CallType == CallType.Sync) { out_args = ProcessResponse (res_msg, mMsg); }