Browse Source

dotnet tests

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@274218 13f79535-47bb-0310-9956-ffa450edef68
master
Steve Loughran 23 years ago
parent
commit
18f584943f
6 changed files with 469 additions and 0 deletions
  1. +108
    -0
      src/etc/testcases/taskdefs/optional/dotnet.xml
  2. +54
    -0
      src/etc/testcases/taskdefs/optional/dotnet/HelloWorld.wsdl
  3. +62
    -0
      src/etc/testcases/taskdefs/optional/dotnet/example.cs
  4. +78
    -0
      src/etc/testcases/taskdefs/optional/dotnet/example.il
  5. +52
    -0
      src/etc/testcases/taskdefs/optional/dotnet/example2.il
  6. +115
    -0
      src/testcases/org/apache/tools/ant/taskdefs/optional/DotnetTest.java

+ 108
- 0
src/etc/testcases/taskdefs/optional/dotnet.xml View File

@@ -0,0 +1,108 @@
<?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>


+ 54
- 0
src/etc/testcases/taskdefs/optional/dotnet/HelloWorld.wsdl View File

@@ -0,0 +1,54 @@
<?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>


+ 62
- 0
src/etc/testcases/taskdefs/optional/dotnet/example.cs View File

@@ -0,0 +1,62 @@
/*
* 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 apache@apache.org.
*
* 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");
}
}

+ 78
- 0
src/etc/testcases/taskdefs/optional/dotnet/example.il View File

@@ -0,0 +1,78 @@
//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




+ 52
- 0
src/etc/testcases/taskdefs/optional/dotnet/example2.il View File

@@ -0,0 +1,52 @@

// 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

+ 115
- 0
src/testcases/org/apache/tools/ant/taskdefs/optional/DotnetTest.java View File

@@ -0,0 +1,115 @@
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2002-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 apache@apache.org.
*
* 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/>.
*/
package org.apache.tools.ant.taskdefs.optional;

import java.io.*;
import java.util.Properties;

import org.apache.tools.ant.BuildFileTest;

/**
* Tests the Dotnet tasks, based off WsdlToDotnetTest
*
* @author steve loughran
* @since Ant 1.6
*/
public class DotnetTest extends BuildFileTest {

/**
* Description of the Field
*/
private final static String TASKDEFS_DIR = "src/etc/testcases/taskdefs/optional/";


/**
* Constructor
*
* @param name testname
*/
public DotnetTest(String name) {
super(name);
}


/**
* The JUnit setup method
*/
public void setUp() {
configureProject(TASKDEFS_DIR + "dotnet.xml");
}


/**
* The teardown method for JUnit
*/
public void tearDown() {
executeTarget("teardown");
}


/**
* A unit test for JUnit
*/
public void testCSC() throws Exception {
executeTarget("testCSC");
}
/**
* A unit test for JUnit
*/
public void testILASM() throws Exception {
executeTarget("testILASM");
}

}


Loading…
Cancel
Save