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
  
  
  

Reply via email to