stevel 2003/03/10 00:03:24
Added: src/etc/testcases/taskdefs/optional dotnet.xml src/etc/testcases/taskdefs/optional/dotnet HelloWorld.wsdl example.cs example.il example2.il Log: dotnet tests Revision Changes Path 1.1 ant/src/etc/testcases/taskdefs/optional/dotnet.xml Index: dotnet.xml =================================================================== <?xml version="1.0"?> <project name="dotnet" basedir="." default="init"> <property environment="env"/> <property name="build.dir" location="dotnet/build"/> <property name="src.dir" location="dotnet"/> <property name="out.csc" location="${src.dir}/out.cs"/> <property name="out.app" location="${classes.dir}/out.exe"/> <property name="out.type" value="exe"/> <target name="probe_for_apps" > <condition property="ilasm.found"> <or> <available file="ilasm" filepath="${env.PATH}" /> <available file="ilasm.exe" filepath="${env.PATH}" /> <available file="ilasm.exe" filepath="${env.Path}" /> </or> </condition> <echo> ilasm.found=${ilasm.found}</echo> <condition property="csc.found"> <or> <available file="csc" filepath="${env.PATH}" /> <available file="csc.exe" filepath="${env.PATH}" /> <available file="csc.exe" filepath="${env.Path}" /> </or> </condition> <echo> csc.found=${csc.found}</echo> <!-- <condition property="vbc.found"> <or> <available file="vbc" filepath="${env.PATH}" /> <available file="vbc.exe" filepath="${env.PATH}" /> <available file="vbc.exe" filepath="${env.Path}" /> </or> </condition> <echo> vbc.found=${vbc.found}</echo> --> <condition property="dotnetapps.found"> <and> <isset property="csc.found"/> <!-- <isset property="vbc.found"/> --> <isset property="ilasm.found"/> </and> </condition> <echo> dotnetapps.found=${dotnetapps.found}</echo> </target> <target name="validate" depends="probe_for_apps" > <fail unless="dotnetapps.found">Needed .net apps are missing</fail> </target> <target name="init" depends="validate"> <mkdir dir="${build.dir}"/> </target> <target name="teardown"> <delete dir="${build.dir}"/> </target> <target name="testCSC" depends="init"> <property name="testCSC.exe" location="${build.dir}/ExampleCsc.exe" /> <csc destFile="${testCSC.exe}" targetType="exe" > <src dir="${src.dir}" includes="**/*.cs"/> </csc> <available property="app.created" file="${testCSC.exe}"/> <fail unless="app.created">No app ${testCSC.exe}created</fail> <exec executable="${testCSC.exe}" failonerror="true" /> </target> <target name="testILASM" depends="init"> <property name="testILASM.exe" location="${build.dir}/ExampleIlasm.exe" /> <ilasm destFile="${testILASM.exe}" targetType="exe" > <src dir="${src.dir}" includes="**/*.il"/> </ilasm> <available property="app.created" file="${testILASM.exe}"/> <fail unless="app.created">No app ${testCSC.exe}created</fail> <exec executable="${testILASM.exe}" failonerror="true" /> </target> <!-- not including this in the test as it creates an exe in the src dir --> <target name="testIlasmNoDestFile" depends="init"> <ilasm targetType="exe" > <src dir="${src.dir}" includes="**/*.il"/> </ilasm> </target> <!-- just here to look at fileset refid conversion by hand --> <target name="echoFileset"> <fileset id="ilasm" dir="${src.dir}" includes="**/*.il" /> <property name="ilasm.string" refid="ilasm"/> <echo>${ilasm.string}</echo> </target> </project> 1.1 ant/src/etc/testcases/taskdefs/optional/dotnet/HelloWorld.wsdl Index: HelloWorld.wsdl =================================================================== <?xml version="1.0" encoding="UTF-8"?> <definitions name="HelloWorld" targetNamespace="http://hello.jaxrpc.samples/" xmlns:tns="http://hello.jaxrpc.samples/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> <types /> <message name="sayHello"> <part name="String_1" type="xsd:string" /> </message> <message name="sayHelloResponse"> <part name="result" type="xsd:string" /> </message> <portType name="Hello"> <operation name="sayHello" parameterOrder="String_1"> <input message="tns:sayHello" /> <output message="tns:sayHelloResponse" /> </operation> </portType> <binding name="HelloBinding" type="tns:Hello"> <operation name="sayHello"> <input> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="encoded" namespace="http://hello.jaxrpc.samples/" /> </input> <output> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="encoded" namespace="http://hello.jaxrpc.samples/" /> </output> <soap:operation soapAction="" /> </operation> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc" /> </binding> <service name="HelloWorld"> <port name="HelloPort" binding="tns:HelloBinding"> <soap:address location="http://localhost:8080/axis/Hello" /> </port> </service> </definitions> 1.1 ant/src/etc/testcases/taskdefs/optional/dotnet/example.cs Index: example.cs =================================================================== /* * The Apache Software License, Version 1.1 * * Copyright (c) 2001-2003 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. The end-user documentation included with the redistribution, if * any, must include the following acknowlegement: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowlegement may appear in the software itself, * if and wherever such third-party acknowlegements normally appear. * * 4. The names "Ant" and "Apache Software * Foundation" must not be used to endorse or promote products derived * from this software without prior written permission. For written * permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache" * nor may "Apache" appear in their names without prior written * permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. */ using System; public class Example { public static void Main(String[] args) { Console.WriteLine("hello, I look like Java, but I'm really .NET"); } } 1.1 ant/src/etc/testcases/taskdefs/optional/dotnet/example.il Index: example.il =================================================================== //created from ildasm of example.cs .assembly extern /*23000001*/ mscorlib { .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. .ver 1:0:3300:0 } .assembly /*20000001*/ example { // --- The following custom attribute is added automatically, do not uncomment ------- // .custom /*0C000001:0A000001*/ instance void [mscorlib/* 23000001 */]System.Diagnostics.DebuggableAttribute/* 01000002 */::.ctor(bool, // bool) /* 0A000001 */ = ( 01 00 00 01 00 00 ) .hash algorithm 0x00008004 .ver 0:0:0:0 } .module example.exe // MVID: {641E4709-F7B6-4BB0-BC5D-49C2CF1F1CF8} .imagebase 0x00400000 .subsystem 0x00000003 .file alignment 512 .corflags 0x00000001 // Image base: 0x03180000 // // ============== CLASS STRUCTURE DECLARATION ================== // .class /*02000002*/ public auto ansi beforefieldinit Example extends [mscorlib/* 23000001 */]System.Object/* 01000001 */ { } // end of class Example // ============================================================= // =============== GLOBAL FIELDS AND METHODS =================== // ============================================================= // =============== CLASS MEMBERS DECLARATION =================== // note that class flags, 'extends' and 'implements' clauses // are provided here for information only .class /*02000002*/ public auto ansi beforefieldinit Example extends [mscorlib/* 23000001 */]System.Object/* 01000001 */ { .method /*06000001*/ public hidebysig static void Main(string[] args) cil managed // SIG: 00 01 01 1D 0E { .entrypoint // Method begins at RVA 0x2050 // Code size 11 (0xb) .maxstack 1 IL_0000: /* 72 | (70)000001 */ ldstr "hello, I look like Java, but I'm really .NET" /* 70000001 */ IL_0005: /* 28 | (0A)000002 */ call void [mscorlib/* 23000001 */]System.Console/* 01000003 */::WriteLine(string) /* 0A000002 */ IL_000a: /* 2A | */ ret } // end of method Example::Main .method /*06000002*/ public hidebysig specialname rtspecialname instance void .ctor() cil managed // SIG: 20 00 01 { // Method begins at RVA 0x2068 // Code size 7 (0x7) .maxstack 1 IL_0000: /* 02 | */ ldarg.0 IL_0001: /* 28 | (0A)000003 */ call instance void [mscorlib/* 23000001 */]System.Object/* 01000001 */::.ctor() /* 0A000003 */ IL_0006: /* 2A | */ ret } // end of method Example::.ctor } // end of class Example 1.1 ant/src/etc/testcases/taskdefs/optional/dotnet/example2.il Index: example2.il =================================================================== // Microsoft (R) .NET Framework IL Disassembler. Version 1.0.3705.0 // Copyright (C) Microsoft Corporation 1998-2001. All rights reserved. // Image base: 0x03180000 // // ============== CLASS STRUCTURE DECLARATION ================== // .class public auto ansi beforefieldinit Example2 extends [mscorlib]System.Object { } // end of class Example2 // ============================================================= // =============== GLOBAL FIELDS AND METHODS =================== // ============================================================= // =============== CLASS MEMBERS DECLARATION =================== // note that class flags, 'extends' and 'implements' clauses // are provided here for information only .class public auto ansi beforefieldinit Example2 extends [mscorlib]System.Object { .field public int32 some_variable .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 14 (0xe) .maxstack 2 IL_0000: ldarg.0 IL_0001: ldc.i4.3 IL_0002: stfld int32 Example2::some_variable IL_0007: ldarg.0 IL_0008: call instance void [mscorlib]System.Object::.ctor() IL_000d: ret } // end of method Example2::.ctor } // end of class Example2 // ============================================================= //*********** DISASSEMBLY COMPLETE *********************** // WARNING: Created Win32 resource file example2.res