← Back to team overview

nunit-core team mailing list archive

Re: [Bug 561487] Re: NullReferenceException ProcessRunner.Load loading test

 

I see the problem.... If you have it installed, just build with NAnt. The Nant
script for each of the exe's builds both the cil and the x86 images. Failing
that, you can easily work with the VS solution if you're willing to hack it....

For each exe (nunit, nunit-console and nunit-agent) create another project
containing the same files called nunit-x86, nunit-console-x86 and
nunit-agent-x86. They should be identical except that the platform target
is x86 and the assemblies have a different name. Copy all your assemblies
into a directory structure similar to what the nunit install provides: a main
directory for the executables plus subdirectories lib, test and framework.

Or wait for 2.5.5 around the end of the month. :-)

Charlie

On Tue, Apr 13, 2010 at 5:07 PM, ruddy <douglass@xxxxxxxxxx> wrote:
> I can change the source code (and did), but in order to load the dll it
> has to be compiled for x86 - and of course its not readily doing that as
> we've discussed - so when i forced nunit to build as x86:
> NUnitConfiguration::GetTestAgentExePath is trying to load nunit-
> agent-x86.exe which of course didn't get built...
>
> As to my previous ramblings
> #1 was only a problem because i tried renaming the .exe as you suggested for a test, but in order for the renamed nunit  to actually run after renaming i had to rename the config which sort of lead to the #2 issue {strictly speaking i didn't have to rename the nunit-agent config file since it was not intended to run in the test anyway} and of course i wouldn't have normally run the agent manually but i was just verifying it was no longer crashing at startup because of mismatched configuration file.  Some type of warning might be nice, but hardly a major priority.
>
> #3 - is only somewhat problematic since i'd like to build the x86
> version of the code to fix this {since a build targeting 'any cpu' will
> load as 64bit code on a 64bit machine but then gives a "bad image" error
> on trying to load a 32 bit C++/clI test dll which is where i started
> down this path to begin with...} of course, manually updating the
> projects, while not hard, is something that will get lost with each new
> code drop.
>
> FWIW: This is not a critical issue for me personally at this point as i
> can use 2.5.3 that i had already built against 4.0/x86 for the time
> being.  I'd be happy to try any patches/release that this is corrected
> in when-ever it becomes available.
>
> --
> NullReferenceException ProcessRunner.Load loading test
> https://bugs.launchpad.net/bugs/561487
> You received this bug notification because you are a member of NUnit
> Developers, which is subscribed to NUnit V2.
>

-- 
NullReferenceException ProcessRunner.Load loading test
https://bugs.launchpad.net/bugs/561487
You received this bug notification because you are a member of NUnit
Developers, which is subscribed to NUnit V2.

Status in NUnit V2 Test Framework: Triaged

Bug description:
NUnit 2.5.4.10098, MSI Install

When running nunit-x86.exe to load a 32bit C++/CLI test dll (Built with VS2010 RC, .NET v4.0.30128) on windows 2008R2 64bit the following exception/call stack is generated.

System.NullReferenceException...

Server stack trace:
   at NUnit.Util.ProcessRunner.Load(TestPackage package)
   at NUnit.Core.ProxyTestRunner.Load(TestPackage package)
   at NUnit.Util.RemoteTestAgent.AgentRunner.Load(TestPackage package)
   at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
   at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)

Exception rethrown at [0]:
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at NUnit.Core.TestRunner.Load(TestPackage package)
   at NUnit.Core.ProxyTestRunner.Load(TestPackage package)
   at NUnit.Util.ProcessRunner.Load(TestPackage package)
   at NUnit.Util.TestLoader.LoadTest(String testName)

After that error dialog is dismissed accessing the File menu generates the following exception:

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host

Server stack trace:
   at System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
   at System.Runtime.Remoting.Channels.SocketStream.Write(Byte[] buffer, Int32 offset, Int32 count)
   at System.Runtime.Remoting.Channels.ChunkedMemoryStream.WriteTo(Stream stream)
   at System.Runtime.Remoting.Channels.Tcp.TcpClientSocketHandler.GetRequestStream(IMessage msg, Int32 contentLength, ITransportHeaders headers)
   at System.Runtime.Remoting.Channels.Tcp.TcpClientSocketHandler.SendRequest(IMessage msg, ITransportHeaders headers, Stream contentStream)
   at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.SendRequestWithRetry(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream)
   at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.ProcessMessage(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream, ITransportHeaders& responseHeaders, Stream& responseStream)
   at System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage msg)

Exception rethrown at [0]:
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at NUnit.Core.TestRunner.get_Running()
   at NUnit.Core.ProxyTestRunner.get_Running()
   at NUnit.Util.TestLoader.get_Running()
   at NUnit.Gui.NUnitForm.get_IsTestRunning()
   at NUnit.Gui.NUnitForm.fileMenu_Popup(Object sender, EventArgs e)
   at System.Windows.Forms.MenuItem.OnPopup(EventArgs e)
   at System.Windows.Forms.MenuItem.OnInitMenuPopup(EventArgs e)
   at System.Windows.Forms.MenuItem._OnInitMenuPopup(EventArgs e)
   at System.Windows.Forms.Menu.ProcessInitMenuPopup(IntPtr handle)
   at System.Windows.Forms.Form.WmInitMenuPopup(Message& m)
   at System.Windows.Forms.Form.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Loaded Assemblies **************
mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
nunit-x86
    Assembly Version: 2.5.4.10098
    Win32 Version: 2.5.4.10098
    CodeBase: file:///C:/Program%20Files%20(x86)/NUnit%202.5.4/bin/net-2.0/nunit-x86.exe
----------------------------------------
nunit-gui-runner
    Assembly Version: 2.5.4.10098
    Win32 Version: 2.5.4.10098
    CodeBase: file:///C:/Program%20Files%20(x86)/NUnit%202.5.4/bin/net-2.0/lib/nunit-gui-runner.DLL
----------------------------------------
nunit.core
    Assembly Version: 2.5.4.10098
    Win32 Version: 2.5.4.10098
    CodeBase: file:///C:/Program%20Files%20(x86)/NUnit%202.5.4/bin/net-2.0/lib/nunit.core.DLL
----------------------------------------
System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
nunit.uikit
    Assembly Version: 2.5.4.10098
    Win32 Version: 2.5.4.10098
    CodeBase: file:///C:/Program%20Files%20(x86)/NUnit%202.5.4/bin/net-2.0/lib/nunit.uikit.DLL
----------------------------------------
System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
nunit.util
    Assembly Version: 2.5.4.10098
    Win32 Version: 2.5.4.10098
    CodeBase: file:///C:/Program%20Files%20(x86)/NUnit%202.5.4/bin/net-2.0/lib/nunit.util.DLL
----------------------------------------
nunit.core.interfaces
    Assembly Version: 2.5.4.10098
    Win32 Version: 2.5.4.10098
    CodeBase: file:///C:/Program%20Files%20(x86)/NUnit%202.5.4/bin/net-2.0/lib/nunit.core.interfaces.DLL
----------------------------------------
System.Configuration
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Runtime.Remoting
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
nunit.uiexception
    Assembly Version: 2.5.4.10098
    Win32 Version: 2.5.4.10098
    CodeBase: file:///C:/Program%20Files%20(x86)/NUnit%202.5.4/bin/net-2.0/lib/nunit.uiexception.DLL
----------------------------------------
System.Web
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.4927 (NetFXspW7.050727-4900)
    CodeBase: file:///C:/Windows/assembly/GAC_32/System.Web/2.0.0.0__b03f5f7f11d50a3a/System.Web.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.







References