Browse Source

First fix the tests to fail when they should, then fix rmic to work as before, even on Java1.5, then add new tests to explicitly do version checks.

bug "rmic always compiles on Java1.5"
http://issues.apache.org/bugzilla/show_bug.cgi?id=33862


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@277811 13f79535-47bb-0310-9956-ffa450edef68
master
Steve Loughran 20 years ago
parent
commit
b1f75a400d
3 changed files with 111 additions and 13 deletions
  1. +67
    -6
      src/etc/testcases/taskdefs/rmic/rmic.xml
  2. +15
    -4
      src/main/org/apache/tools/ant/taskdefs/rmic/DefaultRmicAdapter.java
  3. +29
    -3
      src/testcases/org/apache/tools/ant/taskdefs/RmicAdvancedTest.java

+ 67
- 6
src/etc/testcases/taskdefs/rmic/rmic.xml View File

@@ -37,26 +37,71 @@
<macrodef name="assertFileCreated">
<attribute name="file" />
<sequential>
<property name="file.to.find" location="${build.dir}/@{file}" />
<available property="file.found" file="${file.to.find}"/>
<fail unless="file.found">Not found : ${file.to.find}</fail>
<fail>Not found : ${build.dir}/@{file}
<condition>
<not><available file="${build.dir}/@{file}"/></not>
</condition>
</fail>
</sequential>
</macrodef>

<macrodef name="assertBaseCompiled">
<macrodef name="assertFileAbsent">
<attribute name="file" />
<sequential>
<fail>Expected to be missing : ${build.dir}/@{file}
<condition>
<available file="${build.dir}/@{file}"/>
</condition>
</fail>
</sequential>
</macrodef>

<macrodef name="assertStubCompiled">
<sequential>
<assertFileCreated file="RemoteTimestampImpl_Stub.class" />
<assertFileCreated file="RemoteTimestampImpl_Skel.class"/>
</sequential>
</macrodef>

<macrodef name="assertAntCompiled">
<macrodef name="assertSkelCompiled">
<sequential>
<assertFileCreated file="RemoteTimestampImpl_Skel.class" />
</sequential>
</macrodef>

<macrodef name="assertSkelAbsent">
<sequential>
<assertFileAbsent file="RemoteTimestampImpl_Skel.class" />
</sequential>
</macrodef>
<macrodef name="assertBaseCompiled">
<sequential>
<assertStubCompiled />
<assertSkelCompiled />
</sequential>
</macrodef>

<macrodef name="assertAntStubCompiled">
<sequential>
<assertFileCreated file="AntTimestamp_Stub.class"/>
</sequential>
</macrodef>
<macrodef name="assertAntSkelCompiled">
<sequential>
<assertFileCreated file="AntTimestamp_Skel.class"/>
</sequential>
</macrodef>

<macrodef name="assertAntCompiled">
<sequential>
<assertAntStubCompiled />
<assertAntSkelCompiled />
</sequential>
</macrodef>

</target>
<target name="probe-rmic">
@@ -75,6 +120,22 @@
<assertBaseCompiled/>
</target>

<target name="testVersion11" depends="init">
<base-rmic compiler="default" stubversion="1.1" />
<assertBaseCompiled/>
</target>

<target name="testVersion12" depends="init">
<base-rmic compiler="default" stubversion="1.2" />
<assertStubCompiled/>
<assertSkelAbsent/>
</target>
<target name="testVersionCompat" depends="init">
<base-rmic compiler="default" stubversion="compat" />
<assertBaseCompiled/>
</target>
<target name="testRmic" if="rmic.present" depends="init">
<base-rmic compiler="sun"/>
<assertBaseCompiled/>


+ 15
- 4
src/main/org/apache/tools/ant/taskdefs/rmic/DefaultRmicAdapter.java View File

@@ -1,5 +1,5 @@
/*
* Copyright 2001-2004 The Apache Software Foundation
* Copyright 2001-2005 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -44,6 +44,9 @@ public abstract class DefaultRmicAdapter implements RmicAdapter {
public static final String RMI_SKEL_SUFFIX = "_Skel";
/** suffix denoting a tie file */
public static final String RMI_TIE_SUFFIX = "_Tie";
public static final String STUB_COMPAT = "-vcompat";
public static final String STUB_1_1 = "-v1.1";
public static final String STUB_1_2 = "-v1.2";

/**
* Default constructor
@@ -186,16 +189,24 @@ public abstract class DefaultRmicAdapter implements RmicAdapter {
cmd.createArgument().setValue("-classpath");
cmd.createArgument().setPath(classpath);

//handle the many different stub options.
String stubVersion = attributes.getStubVersion();
//default is compatibility
String stubOption=STUB_COMPAT;
if (null != stubVersion) {
if ("1.1".equals(stubVersion)) {
cmd.createArgument().setValue("-v1.1");
stubOption = STUB_1_1;
} else if ("1.2".equals(stubVersion)) {
cmd.createArgument().setValue("-v1.2");
stubOption = STUB_1_2;
} else if ("compat".equals(stubVersion)) {
stubOption = STUB_COMPAT;
} else {
cmd.createArgument().setValue("-vcompat");
//anything else
attributes.log("Unknown stub option "+stubVersion);
//do nothing with the value? or go -v+stubVersion??
}
}
cmd.createArgument().setValue(stubOption);

if (null != attributes.getSourceBase()) {
cmd.createArgument().setValue("-keepgenerated");


+ 29
- 3
src/testcases/org/apache/tools/ant/taskdefs/RmicAdvancedTest.java View File

@@ -1,5 +1,5 @@
/*
* Copyright 2004 The Apache Software Foundation
* Copyright 2004-2005 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -92,7 +92,7 @@ public class RmicAdvancedTest extends BuildFileTest {
/**
* test the forking compiler
*/
public void NotestForkingAntClasspath() throws Exception {
public void testForkingAntClasspath() throws Exception {
executeTarget("testForkingAntClasspath");
}

@@ -154,7 +154,7 @@ public class RmicAdvancedTest extends BuildFileTest {


/**
* test the forking compiler
*
*/
public void testMagicPropertyIsEmptyString() throws Exception {
executeTarget("testMagicPropertyIsEmptyString");
@@ -168,6 +168,32 @@ public class RmicAdvancedTest extends BuildFileTest {
}


/**
* test that version 1.1 stubs are good
* @throws Exception
*/
public void testVersion11() throws Exception {
executeTarget("testVersion11");
}

/**
* test that version 1.2 stubs are good
*
* @throws Exception
*/
public void testVersion12() throws Exception {
executeTarget("testVersion12");
}

/**
* test that version compat stubs are good
*
* @throws Exception
*/
public void testVersionCompat() throws Exception {
executeTarget("testVersionCompat");
}

/**
* this little bunny verifies that we can load stuff, and that
* a failure to execute is turned into a fault


Loading…
Cancel
Save