Fwd: [Mono-dev] [PATCH] make nunit work out of the box on 2.0 profile

Kamil Skalski kamil.skalski at gmail.com
Sat Sep 10 05:02:33 EDT 2005


I was a little bit too fast with saying that everything works without
installing nunit assemblies into 2.0 install dir. The symlinks from
/install_path/lib/mono/2.0/nunit.core.dll -> /GAC are missing (it
worked for me, because I had some old ones from previous
installation).
So it seems only my original patch actuall works, but as Sebastien
pointed out it is not perfect - overwriting dll from one profile with
other dlls during install is not a good idea, even though the result
is satisfactionary...

I don't know what might be the solution for this... My last patch
allows using nunit-console2 out of the box (that is without MONO_PATH
hack), but requires referencing /path/lib/mono/1.0/nunit.core.dll
explicitly when compiling testcases.

2005/9/9, Kamil Skalski <kamil.skalski at gmail.com>:
> 2005/9/9, Sebastien Pouliot <sebastien.pouliot at gmail.com>:
> > Hello,
> >
> > On Thu, 2005-08-09 at 23:22 +0200, Kamil Skalski wrote:
> > > Currently nunit distributed with mono is rather unusable with 2.0
> >
> > there are, at least, 14236 tests saying otherwise
> 
> I said rather unusable, not completely unusable ;-)
> Moreover, it IS completely unusable after make install (see notes below)
> 
> > http://mono.ximian.com/tests/displayTestResults.php?&profile=1&distro=0
> >
> > but I agree it may not be perfect for 2.0 ;-)
> 
> In fact, it runs only because of two special hacks in mono build system
> 1) the MONO_PATH=to_corlib_from_1.1_or_2.0_profile is specified to
> override settings specified in nunit-console.exe.config
> 
> 2) when compiling the testcases, the nunit dlls with 2.0 version are
> referenced from explicitly specified build directory. Unfortunately
> they are not installed, thus it is not possible to compile 2.0
> testcase with what resides in system after make install
> 
> > >
> > > - the nunit dlls from 2.0 are now installed
> >
> > you mean installed in the GAC ?
> 
> Well, I didn't notice that... yes, they are installed into the gac.
> After some futher testing it seems that this part of patch is not
> necessary. NUnit can handle running 2.0 tests without its 2.0 dlls in
> the path.
> 
> >
> > if so what happens when 2.0 compiled assemblies overwrites the
> > assemblies compiled with 1.1 (same name, version# and public key) ?
> >
> > does the 1.1 (default) profile still works ?
> 
> Yes, it seems that 2.0 assemblies, which overwritten their 1.1
> couterparts did not cause 1.1 profile to stop working. Anyways, I
> guess the shorter patch (attached) is better.
> 
> >
> > > Optionally we could leave the
> > >   <appSettings>
> > >       <!--    Specify the location to be used by .NET for the cache -->
> > >     <add key="shadowfiles.path" value="%temp%\nunit20\ShadowCopyCache" />
> > >   </appSettings>
> > >
> > > section in nunit-console.exe.config and remove any other contents.
> > >
> > > Should I commit?
> >
> > I think the real question is "is it working ?", i.e. have you tested
> > this on the mcs tree and ensure every test target are still working ?
> 
> Yes, it is working (I wouldn't post a question about commit if I
> didn't test it),
> however make check shows some failures, but I think the errors are not
> related - nunit framework works just fine.
> 
> Like this:
> 
> OS Version: Unix 2.6.11.6    Mono Version: 2.0.50215.16
> 
> Tests run: 5909, Failures: 1, Not run: 35, Time: 107,604149 seconds
> 
> 
> Failures:
> 1) MonoTests.System.TimeZoneTest.TestCtors : A03
>         String lengths are both 19.
>         Strings differ at index 12.
> 
>         expected:<"03/31/2002 01:00:00">
>          but was:<"03/31/2002 02:00:00">
>         -----------------------^
> 
> in [0x00054] (at
> /home/nazgul/projects/monosvn/mcs/class/corlib/Test/System/TimeZoneTest.cs:41)
> MonoTests.System.TimeZoneTest:CET (System.TimeZone t1)
> in [0x00028] (at
> /home/nazgul/projects/monosvn/mcs/class/corlib/Test/System/TimeZoneTest.cs:143)
> MonoTests.System.TimeZoneTest:TestCtors ()
> in <0x00000> <unknown method>
> in (wrapper managed-to-native)
> System.Reflection.MonoMethod:InternalInvoke (object,object[])
> in [0x00044] (at
> /home/nazgul/projects/monosvn/mcs/class/corlib/System.Reflection/MonoMethod.cs:127)
> System.Reflection.MonoMethod:Invoke (System.Object obj, BindingFlags
> invokeAttr, System.Reflection.Binder binder, System.Object[]
> parameters, System.Globalization.CultureInfo culture)
> 
> 
> --
> Kamil Skalski
> http://nazgul.omega.pl
> 
> 
> 


-- 
Kamil Skalski
http://nazgul.omega.pl
-------------- next part --------------
A non-text attachment was scrubbed...
Name: nunit.patch
Type: text/x-patch
Size: 3824 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20050910/5c71b09a/attachment.bin 


More information about the Mono-devel-list mailing list