summaryrefslogtreecommitdiffstats
path: root/test/junit/net/sf/antcontrib/cpptasks/TestLinkerDef.java
diff options
context:
space:
mode:
Diffstat (limited to 'test/junit/net/sf/antcontrib/cpptasks/TestLinkerDef.java')
-rw-r--r--test/junit/net/sf/antcontrib/cpptasks/TestLinkerDef.java343
1 files changed, 0 insertions, 343 deletions
diff --git a/test/junit/net/sf/antcontrib/cpptasks/TestLinkerDef.java b/test/junit/net/sf/antcontrib/cpptasks/TestLinkerDef.java
deleted file mode 100644
index 9387d5b..0000000
--- a/test/junit/net/sf/antcontrib/cpptasks/TestLinkerDef.java
+++ /dev/null
@@ -1,343 +0,0 @@
-/*
- *
- * Copyright 2002-2004 The Ant-Contrib project
- *
- * Licensed 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 net.sf.antcontrib.cpptasks;
-
-import java.io.File;
-import java.io.IOException;
-import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration;
-import net.sf.antcontrib.cpptasks.compiler.Linker;
-import net.sf.antcontrib.cpptasks.devstudio.DevStudioLinker;
-import net.sf.antcontrib.cpptasks.gcc.GccLinker;
-import net.sf.antcontrib.cpptasks.types.FlexLong;
-import net.sf.antcontrib.cpptasks.types.LibrarySet;
-import net.sf.antcontrib.cpptasks.types.LinkerArgument;
-import net.sf.antcontrib.cpptasks.types.SystemLibrarySet;
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.types.FlexInteger;
-
-/**
- * Tests for LinkerDef class.
- */
-public final class TestLinkerDef
- extends TestProcessorDef {
- /**
- * Constructor.
- *
- * @param name
- * test name
- */
- public TestLinkerDef(final String name) {
- super(name);
- }
-
- /**
- * Creates a processor.
- *
- * @return new linker
- */
- protected ProcessorDef create() {
- return new LinkerDef();
- }
-
- /**
- * Test if setting the classname attribute to the name of the GCC linker
- * results in the singleton GCC linker.
- */
- public void testGetGcc() {
- LinkerDef linkerDef = (LinkerDef) create();
- linkerDef.setClassname("net.sf.antcontrib.cpptasks.gcc.GccLinker");
- Linker comp = (Linker) linkerDef.getProcessor();
- assertNotNull(comp);
- assertSame(GccLinker.getInstance(), comp);
- }
-
- /**
- * Test if setting the classname attribute to the name of the MSVC linker
- * results in the singleton MSVC linker.
- */
- public void testGetMSVC() {
- LinkerDef linkerDef = (LinkerDef) create();
- linkerDef
- .setClassname("net.sf.antcontrib.cpptasks.devstudio.DevStudioLinker");
- Linker comp = (Linker) linkerDef.getProcessor();
- assertNotNull(comp);
- assertSame(DevStudioLinker.getInstance(), comp);
- }
-
- /**
- * Tests if setting the classname attribute to an bogus classname results in
- * a BuildException.
- *
- */
- public void testUnknownClass() {
- LinkerDef linkerDef = (LinkerDef) create();
- try {
- linkerDef
- .setClassname("net.sf.antcontrib.cpptasks.bogus.BogusLinker");
- } catch (BuildException ex) {
- return;
- }
- fail("should have thrown exception");
- }
-
- /**
- * Tests if setting the classname to the name of a class that doesn't
- * support Linker throws a BuildException.
- *
- */
- public void testWrongType() {
- LinkerDef linkerDef = (LinkerDef) create();
- try {
- linkerDef.setClassname("net.sf.antcontrib.cpptasks.CCTask");
- } catch (ClassCastException ex) {
- return;
- }
- fail("should have thrown exception");
- }
-
- /**
- * Gets the command line arguments that appear before the filenames.
- *
- * @param processor processor under test
- * @return command line arguments
- */
- protected String[] getPreArguments(final ProcessorDef processor) {
- return ((CommandLineLinkerConfiguration) getConfiguration(processor))
- .getPreArguments();
- }
-
- /**
- * Sets the name attribute.
- *
- * @param linker
- * linker defintion
- * @param name
- * linker name
- */
- private static void setLinkerName(final LinkerDef linker,
- final String name) {
- LinkerEnum linkerName = new LinkerEnum();
- linkerName.setValue(name);
- linker.setName(linkerName);
- }
-
- /**
- * Tests that linkerarg's that appear in the base linker are effective when
- * creating the command line for a linker that extends it.
- */
- public void testExtendsLinkerArgs() {
- LinkerDef baseLinker = new LinkerDef();
- LinkerArgument linkerArg = new LinkerArgument();
- linkerArg.setValue("/base");
- baseLinker.addConfiguredLinkerArg(linkerArg);
- LinkerDef extendedLinker = (LinkerDef) createExtendedProcessorDef(
- baseLinker);
- String[] preArgs = getPreArguments(extendedLinker);
- assertEquals(1, preArgs.length);
- assertEquals("/base", preArgs[0]);
- }
-
- /**
- * Tests that fileset's that appear in the base linker are effective when
- * creating the command line for a linker that extends it.
- * @throws IOException if unable to create or delete temporary file
- */
- public void testExtendsFileSet() throws IOException {
- super.testExtendsFileSet(File.createTempFile("cpptaskstest", ".o"));
- }
-
- /**
- * Tests that libset's that appear in the base linker are effective when
- * creating the command line for a linker that extends it.
- */
- public void testExtendsLibSet() {
- LinkerDef baseLinker = new LinkerDef();
- LibrarySet libset = new LibrarySet();
- LinkerDef extendedLinker = (LinkerDef) createExtendedProcessorDef(
- baseLinker);
- libset.setProject(baseLinker.getProject());
- CUtil.StringArrayBuilder libs = new CUtil.StringArrayBuilder("advapi32");
- libset.setLibs(libs);
- baseLinker.addLibset(libset);
- CommandLineLinkerConfiguration config = (CommandLineLinkerConfiguration)
- getConfiguration(extendedLinker);
- String[] libnames = config.getLibraryNames();
- assertEquals(1, libnames.length);
- assertEquals("advapi32", libnames[0]);
- }
-
- /**
- * Tests that syslibset's that appear in the base linker are effective when
- * creating the command line for a linker that extends it.
- */
- public void testExtendsSysLibSet() {
- LinkerDef baseLinker = new LinkerDef();
- SystemLibrarySet libset = new SystemLibrarySet();
- LinkerDef extendedLinker = (LinkerDef) createExtendedProcessorDef(
- baseLinker);
- libset.setProject(baseLinker.getProject());
- CUtil.StringArrayBuilder libs = new CUtil.StringArrayBuilder("advapi32");
- libset.setLibs(libs);
- baseLinker.addSyslibset(libset);
- CommandLineLinkerConfiguration config = (CommandLineLinkerConfiguration)
- getConfiguration(extendedLinker);
- String[] libnames = config.getLibraryNames();
- assertEquals(1, libnames.length);
- assertEquals("advapi32", libnames[0]);
- }
-
- /**
- * Tests that the base attribute in the base linker is effective when
- * creating the command line for a linker that extends it.
- */
- public void testExtendsBase() {
- LinkerDef baseLinker = new LinkerDef();
- baseLinker.setBase(new FlexLong("10000"));
- LinkerDef extendedLinker = (LinkerDef) createExtendedProcessorDef(
- baseLinker);
- setLinkerName(extendedLinker, "msvc");
- String[] preArgs = getPreArguments(extendedLinker);
- assertEquals("/NOLOGO", preArgs[0]);
- assertEquals("/SUBSYSTEM:WINDOWS", preArgs[1]);
- assertEquals("/INCREMENTAL:NO", preArgs[2]);
- assertEquals("/BASE:0x2710", preArgs[3]);
- }
-
- /**
- * Tests that the stack attribute in the base linker is effective when
- * creating the command line for a linker that extends it.
- */
- public void testExtendsStack() {
- LinkerDef baseLinker = new LinkerDef();
- baseLinker.setStack(new FlexInteger("10000"));
- LinkerDef extendedLinker = (LinkerDef) createExtendedProcessorDef(
- baseLinker);
- setLinkerName(extendedLinker, "msvc");
- String[] preArgs = getPreArguments(extendedLinker);
- assertEquals("/NOLOGO", preArgs[0]);
- assertEquals("/SUBSYSTEM:WINDOWS", preArgs[1]);
- assertEquals("/INCREMENTAL:NO", preArgs[2]);
- assertEquals("/STACK:0x2710", preArgs[3]);
- }
-
- /**
- * Tests that the entry attribute in the base linker is effective when
- * creating the command line for a linker that extends it.
- */
- public void testExtendsEntry() {
- LinkerDef baseLinker = new LinkerDef();
- baseLinker.setEntry("foo");
- LinkerDef extendedLinker = (LinkerDef) createExtendedProcessorDef(
- baseLinker);
- String[] preArgs = getPreArguments(extendedLinker);
- assertEquals("-e", preArgs[0]);
- assertEquals("foo", preArgs[1]);
- }
-
- /**
- * Tests that the fixed attribute in the base linker is effective when
- * creating the command line for a linker that extends it.
- */
- public void testExtendsFixed() {
- LinkerDef baseLinker = new LinkerDef();
- baseLinker.setFixed(true);
- LinkerDef extendedLinker = (LinkerDef) createExtendedProcessorDef(
- baseLinker);
- setLinkerName(extendedLinker, "msvc");
- String[] preArgs = getPreArguments(extendedLinker);
- assertEquals("/NOLOGO", preArgs[0]);
- assertEquals("/SUBSYSTEM:WINDOWS", preArgs[1]);
- assertEquals("/INCREMENTAL:NO", preArgs[2]);
- assertEquals("/FIXED", preArgs[3]);
- }
-
- /**
- * Tests that the incremental attribute in the base linker is effective when
- * creating the command line for a linker that extends it.
- */
- public void testExtendsIncremental() {
- LinkerDef baseLinker = new LinkerDef();
- baseLinker.setIncremental(true);
- LinkerDef extendedLinker = (LinkerDef) createExtendedProcessorDef(
- baseLinker);
- setLinkerName(extendedLinker, "msvc");
- String[] preArgs = getPreArguments(extendedLinker);
- assertEquals("/NOLOGO", preArgs[0]);
- assertEquals("/SUBSYSTEM:WINDOWS", preArgs[1]);
- assertEquals("/INCREMENTAL:YES", preArgs[2]);
- }
-
- /**
- * Tests that the map attribute in the base linker is effective when
- * creating the command line for a linker that extends it.
- */
- public void testExtendsMap() {
- LinkerDef baseLinker = new LinkerDef();
- baseLinker.setMap(true);
- LinkerDef extendedLinker = (LinkerDef) createExtendedProcessorDef(
- baseLinker);
- setLinkerName(extendedLinker, "msvc");
- String[] preArgs = getPreArguments(extendedLinker);
- assertEquals("/NOLOGO", preArgs[0]);
- assertEquals("/SUBSYSTEM:WINDOWS", preArgs[1]);
- assertEquals("/INCREMENTAL:NO", preArgs[2]);
- assertEquals("/MAP", preArgs[3]);
- }
-
- /**
- * Tests that the rebuild attribute in the base linker is effective when
- * creating the command line for a linker that extends it.
- */
- public void testExtendsRebuild() {
- testExtendsRebuild(new LinkerDef());
- }
-
- /**
- * Tests that the name attribute in the base linker is effective when
- * creating the command line for a linker that extends it.
- */
- public void testExtendsName() {
- LinkerDef baseLinker = new LinkerDef();
- setLinkerName(baseLinker, "msvc");
- LinkerDef extendedLinker = (LinkerDef) createExtendedProcessorDef(
- baseLinker);
- extendedLinker.setBase(new FlexLong("10000"));
- String[] preArgs = getPreArguments(extendedLinker);
- assertEquals("/NOLOGO", preArgs[0]);
- assertEquals("/SUBSYSTEM:WINDOWS", preArgs[1]);
- assertEquals("/INCREMENTAL:NO", preArgs[2]);
- assertEquals("/BASE:0x2710", preArgs[3]);
- }
-
- /**
- * Tests that the classname attribute in the base linker is effective when
- * creating the command line for a linker that extends it.
- */
- public void testExtendsClassname() {
- LinkerDef baseLinker = new LinkerDef();
- baseLinker
- .setClassname("net.sf.antcontrib.cpptasks.devstudio.DevStudioLinker");
- LinkerDef extendedLinker = (LinkerDef) createExtendedProcessorDef(
- baseLinker);
- extendedLinker.setBase(new FlexLong("10000"));
- String[] preArgs = getPreArguments(extendedLinker);
- assertEquals("/NOLOGO", preArgs[0]);
- assertEquals("/SUBSYSTEM:WINDOWS", preArgs[1]);
- assertEquals("/INCREMENTAL:NO", preArgs[2]);
- assertEquals("/BASE:0x2710", preArgs[3]);
- }
-}