Author: carnold
Date: Mon Feb 19 13:32:20 2007
New Revision: 509338

URL: http://svn.apache.org/viewvc?view=rev&rev=509338
Log:
LOG4NET-114: Support unit tests on .NET 1.1, 2.0, Mono 2.0

Modified:
    logging/log4net/trunk/tests/   (props changed)
    logging/log4net/trunk/tests/lib/   (props changed)
    logging/log4net/trunk/tests/lib/prerequisites.txt
    logging/log4net/trunk/tests/nant.build

Propchange: logging/log4net/trunk/tests/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Mon Feb 19 13:32:20 2007
@@ -1,3 +1,4 @@
 bin
+doc
 obj
 *.csproj.user

Propchange: logging/log4net/trunk/tests/lib/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Mon Feb 19 13:32:20 2007
@@ -0,0 +1,2 @@
+net
+mono

Modified: logging/log4net/trunk/tests/lib/prerequisites.txt
URL: 
http://svn.apache.org/viewvc/logging/log4net/trunk/tests/lib/prerequisites.txt?view=diff&rev=509338&r1=509337&r2=509338
==============================================================================
--- logging/log4net/trunk/tests/lib/prerequisites.txt (original)
+++ logging/log4net/trunk/tests/lib/prerequisites.txt Mon Feb 19 13:32:20 2007
@@ -5,8 +5,7 @@
 The nunit.framework.dll assembly version 2.2.7 is required to build 
 the log4net tests.
 
-The NAnt 0.85 nightly builds since 2006/03/04 have included the
-2.2.7 version of the nunit.framework.dll.
+NAnt 0.85 includes the 2.2.7 version of the nunit.framework.dll.
 
 The nunit.framework.dll is available as different builds for each 
 version of the .net runtime. To build multiple versions of the
@@ -18,6 +17,7 @@
 Microsoft .NET Framework 1.0
 Microsoft .NET Framework 1.1
 Microsoft .NET Framework 2.0
+Mono Framework 2.0
 
 Under the tests/lib directory you must create the following directory
 structure containing the nunit.framework.dll assembly built for the
@@ -29,6 +29,9 @@
       nunit.framework.dll
     1.1\
       nunit.framework.dll
+    2.0\
+      nunit.framework.dll
+  mono\
     2.0\
       nunit.framework.dll
     

Modified: logging/log4net/trunk/tests/nant.build
URL: 
http://svn.apache.org/viewvc/logging/log4net/trunk/tests/nant.build?view=diff&rev=509338&r1=509337&r2=509338
==============================================================================
--- logging/log4net/trunk/tests/nant.build (original)
+++ logging/log4net/trunk/tests/nant.build Mon Feb 19 13:32:20 2007
@@ -15,7 +15,7 @@
 See the License for the specific language governing permissions and
 limitations under the License.
 -->
-<project name="log4net-samples" default="compile-all" 
xmlnds="http://tempuri.org/nant-vs.xsd";>
+<project name="log4net-samples" default="runtests" 
xmlnds="http://tempuri.org/nant-vs.xsd";>
     <property name="log4net.basedir" value="../" readonly="false" />
     <property name="project.build.config" value="debug" readonly="false" />
     <property name="project.build.package" value="false" readonly="false" />
@@ -64,6 +64,19 @@
                 <echo message="The .NET Framework 1.1 is not available. Build 
skipped." />
             </if>
         </if>
+
+        <if test="${framework::exists('mono-2.0')}">
+            <call target="compile-mono-2.0" />
+        </if>
+        <if test="${not framework::exists('mono-2.0')}">
+            <if test="${property::exists('project.build.package') and 
project.build.package}">
+                <fail message="The Mono Framework 2.0 is not available." />
+            </if>
+            <if test="${not(property::exists('project.build.package') and 
project.build.package)}">
+                <echo message="The Mono Framework 2.0 is not available. Build 
skipped." />
+            </if>
+        </if>
+
     </target>
 
     <!-- Target for compiling the tests on net-1.0 -->
@@ -233,13 +246,101 @@
         </csc>
     </target>
 
+    <target name="compile-mono-2.0" description="Builds log4net tests Mono 
Framework 2.0 version" depends="set-mono-2.0-runtime-configuration, 
check-log4net-basedir, clean-current-bin-dir, check-log4net-assembly">
+        <!-- copy log4net build output -->
+        <copy todir="${current.bin.dir}">
+            <fileset basedir="${log4net.basedir}/${current.bin.dir}">
+                <include name="*.*" />
+            </fileset>
+        </copy>
+        <!-- copy referenced libraries to build output -->
+        <copy todir="${current.bin.dir}">
+            <fileset basedir="${log4net.basedir}/tests/lib">
+                <include name="/*.dll" />
+            </fileset>
+        </copy>
+        <copy todir="${current.bin.dir}">
+            <fileset 
basedir="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}">
+                <include name="*.dll" />
+            </fileset>
+        </copy>
+        <copy todir="${current.bin.dir}">
+            <fileset 
basedir="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}">
+                <include name="*.dll" />
+            </fileset>
+        </copy>
+        <copy todir="${current.bin.dir}">
+            <fileset 
basedir="${log4net.basedir}/lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}">
+                <include name="*.dll" />
+            </fileset>
+        </copy>
+        <copy todir="${current.bin.dir}">
+            <fileset 
basedir="${log4net.basedir}/lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}">
+                <include name="*.dll" />
+            </fileset>
+        </copy>
+        <csc noconfig="true" warnaserror="false" target="library" 
debug="${current.build.debug}" define="${current.build.defines.csc}" 
output="${current.bin.dir}/log4net.Tests.dll">
+            <sources basedir="${log4net.basedir}/tests/src">
+                <include name="**/*.cs" />
+                <include name="../../src/AssemblyVersionInfo.cs" />
+            </sources>
+            <references defaultexcludes="true">
+                <!-- include name="mscorlib.dll" / -->
+                <include name="System.dll" />
+                <include name="System.Data.dll" />
+                <include name="System.Web.dll" />
+                <include name="System.Xml.dll" />
+                <include name="System.Runtime.Remoting.dll" />
+                <include name="${current.bin.dir}/log4net.dll" 
frompath="false" />
+                <!-- allow for third party assemblies to be referenced by just 
storing them in the lib/<framework>/<framework version>/<build configuration> 
directory -->
+                <include 
name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll"
 frompath="false" />
+                <include 
name="lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/*.dll"
 frompath="false" />
+                <include 
name="${log4net.basedir}/lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/${current.build.config}/*.dll"
 frompath="false" />
+                <include 
name="${log4net.basedir}/lib/${framework::get-family(framework::get-target-framework())}/${framework::get-version(framework::get-target-framework())}/*.dll"
 frompath="false" />
+            </references>
+        </csc>
+    </target>
+
+
     <!-- Currently we cannot run the tests in the environment of the target 
framework only in the host framework -->
 
     <target name="runtests" description="Runs log4net tests">
-        <call target="runtests-net-1.0" />
+        <if test="${framework::exists('net-1.0')}">
+               <call target="runtests-net-1.0" />
+        </if>
+        <if test="${framework::exists('net-1.1')}">
+               <call target="runtests-net-1.1" />
+        </if>
+        <if test="${framework::exists('net-2.0')}">
+               <call target="runtests-net-2.0" />
+        </if>
+        <if test="${framework::exists('mono-2.0')}">
+               <call target="runtests-mono-2.0" />
+        </if>
     </target>
     
     <target name="runtests-net-1.0" description="Runs log4net tests on .NET 
Framework 1.0 version" depends="compile-net-1.0">
+        <nunit2>
+            <formatter type="Plain" />
+            <test assemblyname="${current.bin.dir}/log4net.Tests.dll" />
+        </nunit2>
+    </target>
+
+    <target name="runtests-net-1.1" description="Runs log4net tests on .NET 
Framework 1.1 version" depends="compile-net-1.1">
+        <nunit2>
+            <formatter type="Plain" />
+            <test assemblyname="${current.bin.dir}/log4net.Tests.dll" />
+        </nunit2>
+    </target>
+
+    <target name="runtests-net-2.0" description="Runs log4net tests on .NET 
Framework 2.0 version" depends="compile-net-2.0">
+        <nunit2>
+            <formatter type="Plain" />
+            <test assemblyname="${current.bin.dir}/log4net.Tests.dll" />
+        </nunit2>
+    </target>
+
+    <target name="runtests-mono-2.0" description="Runs log4net tests on Mono 
Framework 2.0 version" depends="compile-mono-2.0">
         <nunit2>
             <formatter type="Plain" />
             <test assemblyname="${current.bin.dir}/log4net.Tests.dll" />


Reply via email to