← Back to team overview

nunit-core team mailing list archive

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

 

The log files nailed it. In the nunit log, you can see NUnit properly deciding
to use .NET 4.0. In the agent log, on line 3, you can see that agent is
running under .NET 2.0!

After all the talk about 64-bitness and other complexities, the answer is
actually very simple. NUnit never heard of .NET 4.0.30128 because I
never told it about it!

If you use the source, you can make a quick fix to TestAgency.cs.
Search for '4.0.21006' and add two lines just like what's there for
Beta 1 and Beta 2. I'll be fixing it in a more general way, but just
adding your own version number should work as well.

Regarding the other points:

1. The distribution provides properly named configs, so you shouldn't
have to rename them. But see #3 as well.

2. NUnit-agent is not intended to be run manually. Do you think we need
a warning somewhere?

3. The VS builds are for convenience. You can't really build a distribution
copy of NUnit except with the NAnt build. That's because the distribution
includes builds for different frameworks. It also does some of the config
renaming you were talking about. It's possible that we will make the IDE
build the primary build at some time in the future, after we drop support
for .NET 1.0 and 1.1.

Charlie

On Tue, Apr 13, 2010 at 8:40 AM, ruddy <douglass@xxxxxxxxxx> wrote:
> I have also attached the log files as requested.
>
> A couple things i noticed during my gathering of this information -
> probably just some incoherent ramblings - but i'll throw them out there.
>
> 1. If you don't properly rename the .config to match the .exe for
> nunit/agent both will crash on startup
>
> 2. If you manually run nunit-agent it will launch and stay running and
> then (apparently) cause any additional ones spawned (by say nunit) to
> apparently hang (could see them in the sysinternal process explorer as a
> child of nunit) and a few seconds after trying to load the test dll
> nunit complains that no test was found in the dll -- took me a while to
> figure out why the problem had apparently morphed.
>
> 3. I downloaded the code for 2.5.4 and built it with VS2010RC - but i
> don't see any configurations that make the "x86" versions - so i didn't
> go any further - i had originally (Last week) downloaded 2.5.3,
> converted the 2008 solutions to VS2010RC, manually changed all the
> projects to build against .NET 4.0 & target the x86 and that would
> successfully load and execute the tests (For what little that is worth)
> but when i saw 2.5.4 was available i thought i'd try that instead since
> it should load and handle the .NET 4.0 tests
>
>
>
> ** Attachment added: "Requested Logs"
>   http://launchpadlibrarian.net/44046074/nunit-gui_2824.zip
>
> --
> 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