blob: 1f41bcf0cf0004ee4f2d381f59bb77a33335b255 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.apache.tools.ant.taskdefs;
import org.apache.tools.ant.AntAssert;
import org.apache.tools.ant.BuildFileRule;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.taskdefs.rmic.RmicAdapterFactory;
import org.apache.tools.ant.taskdefs.rmic.DefaultRmicAdapter;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import static org.junit.Assert.fail;
/**
* Date: 04-Aug-2004
* Time: 22:15:46
*/
public class RmicAdvancedTest {
private final static String TASKDEFS_DIR = "src/etc/testcases/taskdefs/rmic/";
@Rule
public BuildFileRule buildRule = new BuildFileRule();
/**
* The JUnit setup method
*/
@Before
public void setUp() throws Exception {
buildRule.configureProject(TASKDEFS_DIR + "rmic.xml");
}
/**
* verify that "default" binds us to the default compiler
*/
@Test
public void testDefault() throws Exception {
buildRule.executeTarget("testDefault");
}
/**
* verify that "default" binds us to the default compiler
*/
@Test
public void testDefaultDest() throws Exception {
buildRule.executeTarget("testDefaultDest");
}
/**
* verify that "" binds us to the default compiler
*/
@Test
public void testEmpty() throws Exception {
buildRule.executeTarget("testEmpty");
}
/**
* verify that "" binds us to the default compiler
*/
@Test
public void testEmptyDest() throws Exception {
buildRule.executeTarget("testEmptyDest");
}
/**
* test sun's rmic compiler
*/
@Test
public void testRmic() throws Exception {
buildRule.executeTarget("testRmic");
}
/**
* test sun's rmic compiler
*/
@Test
public void testRmicDest() throws Exception {
buildRule.executeTarget("testRmicDest");
}
/**
* test sun's rmic compiler strips
* out -J arguments when not forking
*/
@Test
public void testRmicJArg() throws Exception {
buildRule.executeTarget("testRmicJArg");
}
/**
* test sun's rmic compiler strips
* out -J arguments when not forking
*/
@Test
public void testRmicJArgDest() throws Exception {
buildRule.executeTarget("testRmicJArgDest");
}
/**
* A unit test for JUnit
*/
@Test
public void testKaffe() throws Exception {
buildRule.executeTarget("testKaffe");
}
/**
* A unit test for JUnit
*/
@Test
public void testKaffeDest() throws Exception {
buildRule.executeTarget("testKaffeDest");
}
// WLrmic tests don't work
/**
* test weblogic
*/
@Test
@Ignore("WLRmic tests don't work")
public void XtestWlrmic() throws Exception {
buildRule.executeTarget("testWlrmic");
}
/**
* test weblogic's stripping of -J args
*/
@Test
@Ignore("WLRmic tests don't work")
public void XtestWlrmicJArg() throws Exception {
buildRule.executeTarget("testWlrmicJArg");
}
/**
* test the forking compiler
*/
@Test
public void testForking() throws Exception {
buildRule.executeTarget("testForking");
}
/**
* test the forking compiler
*/
@Test
public void testForkingAntClasspath() throws Exception {
buildRule.executeTarget("testForkingAntClasspath");
}
/**
* test the forking compiler
*/
@Test
public void testForkingAntClasspathDest() throws Exception {
buildRule.executeTarget("testForkingAntClasspathDest");
}
/**
* test the forking compiler
*/
@Test
public void testAntClasspath() throws Exception {
buildRule.executeTarget("testAntClasspath");
}
/**
* test the forking compiler
*/
@Test
public void testAntClasspathDest() throws Exception {
buildRule.executeTarget("testAntClasspathDest");
}
/**
* A unit test for JUnit
*/
@Test
public void testBadName() throws Exception {
try {
buildRule.executeTarget("testBadName");
fail("Compile not known");
} catch (BuildException ex) {
AntAssert.assertContains(RmicAdapterFactory.ERROR_UNKNOWN_COMPILER, ex.getMessage());
}
}
/**
* load an adapter by name
*/
@Test
public void testExplicitClass() throws Exception {
buildRule.executeTarget("testExplicitClass");
}
/**
* A unit test for JUnit
*/
@Test
public void testWrongClass() throws Exception {
try {
buildRule.executeTarget("testWrongClass");
fail("Class not an RMIC adapter");
} catch (BuildException ex) {
AntAssert.assertContains(RmicAdapterFactory.ERROR_NOT_RMIC_ADAPTER, ex.getMessage());
}
}
/**
* A unit test for JUnit
*/
@Test
public void testDefaultBadClass() throws Exception {
try {
buildRule.executeTarget("testDefaultBadClass");
fail("expected the class to fail");
} catch(BuildException ex) {
AntAssert.assertContains(Rmic.ERROR_RMIC_FAILED, ex.getMessage());
}
//dont look for much text here as it is vendor and version dependent
AntAssert.assertContains("unimplemented.class", buildRule.getLog());
}
/**
* A unit test for JUnit
*/
@Test
public void testMagicProperty() throws Exception {
try {
buildRule.executeTarget("testMagicProperty");
fail("Magic property not working");
} catch (BuildException ex) {
AntAssert.assertContains(RmicAdapterFactory.ERROR_UNKNOWN_COMPILER, ex.getMessage());
}
}
/**
* A unit test for JUnit
*/
@Test
public void testMagicPropertyOverridesEmptyString() throws Exception {
try {
buildRule.executeTarget("testMagicPropertyOverridesEmptyString");
fail("Magic property not working");
} catch (BuildException ex) {
AntAssert.assertContains(RmicAdapterFactory.ERROR_UNKNOWN_COMPILER, ex.getMessage());
}
}
@Test
public void testMagicPropertyIsEmptyString() throws Exception {
buildRule.executeTarget("testMagicPropertyIsEmptyString");
}
@Test
@Ignore("Previously named to prevent execution")
public void NotestFailingAdapter() throws Exception {
try {
buildRule.executeTarget("testFailingAdapter");
fail("Expected failures to propogate");
} catch (BuildException ex) {
AntAssert.assertContains(Rmic.ERROR_RMIC_FAILED, ex.getMessage());
}
}
/**
* test that version 1.1 stubs are good
* @throws Exception
*/
@Test
public void testVersion11() throws Exception {
buildRule.executeTarget("testVersion11");
}
/**
* test that version 1.1 stubs are good
* @throws Exception
*/
@Test
public void testVersion11Dest() throws Exception {
buildRule.executeTarget("testVersion11Dest");
}
/**
* test that version 1.2 stubs are good
*
* @throws Exception
*/
@Test
public void testVersion12() throws Exception {
buildRule.executeTarget("testVersion12");
}
/**
* test that version 1.2 stubs are good
*
* @throws Exception
*/
@Test
public void testVersion12Dest() throws Exception {
buildRule.executeTarget("testVersion12Dest");
}
/**
* test that version compat stubs are good
*
* @throws Exception
*/
@Test
public void testVersionCompat() throws Exception {
buildRule.executeTarget("testVersionCompat");
}
/**
* test that version compat stubs are good
*
* @throws Exception
*/
@Test
public void testVersionCompatDest() throws Exception {
buildRule.executeTarget("testVersionCompatDest");
}
/**
* test that passes -Xnew to sun's rmic running in a different VM.
*
* @throws Exception
*/
@Test
public void testXnewForked() throws Exception {
buildRule.executeTarget("testXnewForked");
}
/**
* test that passes -Xnew to sun's rmic running in a different VM.
*
* @throws Exception
*/
@Test
public void testXnewForkedDest() throws Exception {
buildRule.executeTarget("testXnewForkedDest");
}
/**
* test that runs the new xnew compiler adapter.
*
* @throws Exception
*/
@Test
public void testXnewCompiler() throws Exception {
buildRule.executeTarget("testXnewCompiler");
}
/**
* test that runs the new xnew compiler adapter.
*
* @throws Exception
*/
@Test
public void testXnewCompilerDest() throws Exception {
buildRule.executeTarget("testXnewCompilerDest");
}
/**
* test that verifies that IDL compiles.
*
* @throws Exception
*/
@Test
public void testIDL() throws Exception {
buildRule.executeTarget("testIDL");
}
/**
* test that verifies that IDL compiles.
*
* @throws Exception
*/
@Test
public void testIDLDest() throws Exception {
buildRule.executeTarget("testIDLDest");
}
/**
* test that verifies that IIOP compiles.
*
* @throws Exception
*/
@Test
public void testIIOP() throws Exception {
buildRule.executeTarget("testIIOP");
}
/**
* test that verifies that IIOP compiles.
*
* @throws Exception
*/
@Test
public void testIIOPDest() throws Exception {
buildRule.executeTarget("testIIOPDest");
}
/**
* this little bunny verifies that we can load stuff, and that
* a failure to execute is turned into a fault
*/
public static class FailingRmicAdapter extends DefaultRmicAdapter {
public static final String LOG_MESSAGE = "hello from FailingRmicAdapter";
/**
* Executes the task.
*
* @return false -always
*/
public boolean execute() throws BuildException {
getRmic().log(LOG_MESSAGE);
return false;
}
}
}