Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Applied Re: [cdt-patch] The JUnit build tests finally out of the core


Hoda Amer
Staff Software Engineer
Rational Software - IBM Software Group



Sean Evoy/Ottawa/IBM@IBMCA
Sent by: cdt-patch-admin@xxxxxxxxxxx

04/23/2004 10:29 AM

Please respond to
cdt-patch

To
cdt-patch@xxxxxxxxxxx
cc
Subject
[cdt-patch] The JUnit build tests finally out of the core






Hi All,

This is the last time I will have to bother people to apply a test patch for me. This patch removes the managed build tests (and framework) from the core tests package. Once it has been applied, I will commit the tests into the new package and never darken your door again.


Sean Evoy
Rational Software - IBM Software Group
Ottawa, Ontario, Canada


Index: plugin.xml
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/plugin.xml,v
retrieving revision 1.31
diff -u -r1.31 plugin.xml
--- plugin.xml	5 Apr 2004 17:43:15 -0000	1.31
+++ plugin.xml	23 Apr 2004 14:27:47 -0000
@@ -25,341 +25,6 @@
       <import plugin="org.eclipse.core.runtime.compatibility"/>
    </requires>
 
-
-   <extension
-         id="buildTest"
-         name="Tools for Build Test"
-         point="org.eclipse.cdt.managedbuilder.core.ManagedBuildInfo">
-      <tool
-            natureFilter="both"
-            name="Target Independent Tool"
-            sources="rc"
-            headerExtensions="h"
-            outputFlag="/fo"
-            command="RC.EXE"
-            outputs="free"
-            id="target.independent.tool">
-         <optionCategory
-               owner="target.independent.tool"
-               name="Free"
-               id="indy.cat.free">
-         </optionCategory>
-         <option
-               defaultValue="Live free or die"
-               name="String in Free"
-               category="indy.cat.free"
-               valueType="string"
-               id="org.eclipse.cdt.core.tests.option1">
-         </option>
-         <optionCategory
-               owner="indy.cat.free"
-               name="Chained"
-               id="indy.cat.chained">
-         </optionCategory>
-         <option
-               defaultValue="false"
-               name="Boolean in Chained"
-               category="indy.cat.chained"
-               valueType="boolean"
-               id="org.eclipse.cdt.core.tests.option2">
-         </option>
-      </tool>
-      <target
-            name="Test Root"
-            id="test.root"
-            cleanCommand="del /myworld"
-            isTest="true"
-            defaultExtension="toor"
-            isAbstract="false"
-            makeCommand="make"
-            binaryParser="org.eclipse.cdt.core.PE"
-            makeFlags="-k"
-            osList="win32">
-         <tool
-               natureFilter="cnature"
-               sources="foo,bar"
-               name="Root Tool"
-               headerExtensions="baz"
-               outputFlag="-r"
-               outputs="toor"
-               command="doIt"
-               id="root.tool">
-            <optionCategory
-                  owner="root.tool"
-                  name="Category"
-                  id="category">
-            </optionCategory>
-            <option
-                  name="List Option in Top"
-                  command="-L"
-                  valueType="stringList"
-                  id="list.option">
-               <listOptionValue
-                     value="a">
-               </listOptionValue>
-               <listOptionValue
-                     value="b"
-                     builtIn="false">
-               </listOptionValue>
-               <listOptionValue
-                     value="c"
-                     builtIn="true">
-               </listOptionValue>
-            </option>
-            <option
-                  defaultValue="false"
-                  name="Boolean Option in Top"
-                  command="-b"
-                  valueType="boolean"
-                  id="boolean.option">
-            </option>
-            <option
-                  defaultValue="x"
-                  name="String Option in Category"
-                  category="category"
-                  valueType="string"
-                  id="string.option">
-            </option>
-            <option
-                  defaultValue=""
-                  name="Another String Option in Category"
-                  category="category"
-                  command="-str"
-                  id="another.string.option"
-                  valueType="string">
-            </option>
-            <option
-                  name="Enumerated Option in Category"
-                  category="category"
-                  valueType="enumerated"
-                  id="enumerated.option">
-               <enumeratedOptionValue
-                     name="Default Enum"
-                     isDefault="true"
-                     command="-e1"
-                     id="default.enum.option">
-               </enumeratedOptionValue>
-               <enumeratedOptionValue
-                     name="Another Enum"
-                     command="-e2"
-                     id="another.enum.option">
-               </enumeratedOptionValue>
-            </option>
-            <option
-                  commandFalse="-nob"
-                  name="Boolean Option in Category"
-                  category="category"
-                  id="boolean.false.option"
-                  valueType="boolean">
-            </option>
-         </tool>
-         <configuration
-               name="Root Config"
-               id="root.config">
-         </configuration>
-         <configuration
-               name="Root Override Config"
-               id="root.override.config">
-            <toolReference
-                  id="root.tool">
-               <optionReference
-                     defaultValue="y"
-                     id="string.option">
-               </optionReference>
-               <optionReference
-                     defaultValue="true"
-                     id="boolean.option">
-               </optionReference>
-            </toolReference>
-         </configuration>
-         <configuration
-               name="Complete Override Config"
-               id="complete.override.config">
-            <toolReference
-                  id="root.tool">
-               <optionReference
-                     defaultValue="overridden"
-                     id="string.option">
-               </optionReference>
-               <optionReference
-                     defaultValue="alsooverridden"
-                     id="another.string.option">
-               </optionReference>
-               <optionReference
-                     defaultValue="true"
-                     id="boolean.option">
-               </optionReference>
-               <optionReference
-                     defaultValue="true"
-                     id="boolean.false.option">
-               </optionReference>
-               <optionReference
-                     defaultValue="-e2"
-                     id="enumerated.option">
-               </optionReference>
-               <optionReference
-                     id="list.option">
-                  <listOptionValue
-                        value="d">
-                  </listOptionValue>
-                  <listOptionValue
-                        value="e">
-                  </listOptionValue>
-                  <listOptionValue
-                        value="f">
-                  </listOptionValue>
-               </optionReference>
-            </toolReference>
-         </configuration>
-      </target>
-      <target
-            name="Test Sub"
-            id="test.sub"
-            cleanCommand="rm -yourworld"
-            isTest="true"
-            defaultExtension="bus"
-            isAbstract="false"
-            binaryParser="org.eclipse.cdt.core.PE"
-            makeFlags="-d"
-            parent="test.root"
-            osList="win32,linux,solaris">
-         <configuration
-               name="Sub Config"
-               id="sub.config">
-         </configuration>
-         <tool
-               natureFilter="both"
-               sources="yarf"
-               name="Sub Tool"
-               headerExtensions="arf,barf"
-               outputs="bus"
-               outputPrefix="lib"
-               id="tool.sub">
-            <option
-                  name="Include Paths"
-                  command="-I"
-                  browseType="directory"
-                  valueType="includePath"
-                  id="sub.tool.opt.inc.paths">
-               <listOptionValue
-                     value="/usr/include">
-               </listOptionValue>
-               <listOptionValue
-                     value="/opt/gnome/include">
-               </listOptionValue>
-               <listOptionValue
-                     value="/usr/gnu/include"
-                     builtIn="true">
-               </listOptionValue>
-            </option>
-            <option
-                  name="Defined Symbols"
-                  command="-D"
-                  valueType="definedSymbols"
-                  id="sub.tool.opt.def.symbols">
-               <listOptionValue
-                     value="BUILTIN"
-                     builtIn="true">
-               </listOptionValue>
-            </option>
-            <option
-                  name="More Includes"
-                  command="-I"
-                  browseType="directory"
-                  valueType="includePath"
-                  id="sub.tool.opts.inc.paths.more">
-               <listOptionValue
-                     value="C:\home\tester/include"
-                     builtIn="false">
-               </listOptionValue>
-               <listOptionValue
-                     value="&quot;../includes&quot;"
-                     builtIn="false">
-               </listOptionValue>
-            </option>
-            <option
-                  name="User Objects"
-                  browseType="file"
-                  valueType="userObjs"
-                  id="sub.tool.opt.objs">
-               <listOptionValue
-                     value="obj1.o"
-                     builtIn="false">
-               </listOptionValue>
-               <listOptionValue
-                     value="obj2.o"
-                     builtIn="false">
-               </listOptionValue>
-            </option>
-         </tool>
-      </target>
-      <target
-            isTest="true"
-            name="Test Sub Sub"
-            parent="test.sub"
-            binaryParser="org.eclipse.cdt.core.ELF"
-            defaultExtension="tss"
-            makeCommand="nmake"
-            id="test.sub.sub">
-         <toolReference
-               id="target.independent.tool">
-         </toolReference>
-      </target>
-      <dynamicElementProvider
-            class="org.eclipse.cdt.core.build.managed.tests.TestManagedConfigProvider">
-      </dynamicElementProvider>
-      <target
-            isTest="true"
-            name="Forward Grandchild"
-            parent="test.forward.child.target"
-            binaryParser="org.eclipse.cdt.core.tests.target1"
-            id="test.forward.grandchild.target">
-         <toolReference
-               command="newcommand"
-               id="test.forward.tool">
-         </toolReference>
-      </target>
-      <target
-            isTest="true"
-            osList="win32,solaris,linux"
-            name="Forward Child"
-            binaryParser="org.eclipse.cdt.core.tests.target2"
-            parent="test.forward.parent.target"
-            id="test.forward.child.target">
-         <toolReference
-               id="test.forward.tool">
-            <optionReference
-                  id="test.forward.option">
-            </optionReference>
-         </toolReference>
-      </target>
-      <target
-            isTest="true"
-            name="Forward Parent"
-            binaryParser="org.eclipse.cdt.core.tests.target3"
-            id="test.forward.parent.target">
-         <tool
-               natureFilter="both"
-               name="Forward Parent Tool"
-               id="test.forward.tool">
-            <option
-                  name="Test Forward Option"
-                  category="test.forward.child.category"
-                  id="test.forward.option">
-            </option>
-            <optionCategory
-                  owner="test.forward.parent.category"
-                  name="Forward Child Category"
-                  id="test.forward.child.category">
-            </optionCategory>
-            <optionCategory
-                  owner="test.forward.tool"
-                  name="Forward Parent Category"
-                  id="test.forward.parent.category">
-            </optionCategory>
-         </tool>
-      </target>
-   </extension>
    <extension
          id="runTests"
          point="org.eclipse.core.runtime.applications">
Index: build/org/eclipse/cdt/core/build/managed/tests/ManagedBuildTests.java
===================================================================
RCS file: build/org/eclipse/cdt/core/build/managed/tests/ManagedBuildTests.java
diff -N build/org/eclipse/cdt/core/build/managed/tests/ManagedBuildTests.java
--- build/org/eclipse/cdt/core/build/managed/tests/ManagedBuildTests.java	11 Apr 2004 22:51:11 -0000	1.27
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,1355 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * IBM - Initial API and implementation
- **********************************************************************/
-package org.eclipse.cdt.core.build.managed.tests;
-
-import java.io.ByteArrayInputStream;
-import java.io.StringReader;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-import org.eclipse.cdt.core.CCorePlugin;
-import org.eclipse.cdt.core.ICDescriptor;
-import org.eclipse.cdt.core.parser.IParser;
-import org.eclipse.cdt.core.parser.IScanner;
-import org.eclipse.cdt.core.parser.IScannerInfo;
-import org.eclipse.cdt.core.parser.IScannerInfoChangeListener;
-import org.eclipse.cdt.core.parser.IScannerInfoProvider;
-import org.eclipse.cdt.core.parser.ISourceElementRequestor;
-import org.eclipse.cdt.core.parser.NullLogService;
-import org.eclipse.cdt.core.parser.NullSourceElementRequestor;
-import org.eclipse.cdt.core.parser.ParserFactory;
-import org.eclipse.cdt.core.parser.ParserLanguage;
-import org.eclipse.cdt.core.parser.ParserMode;
-import org.eclipse.cdt.make.core.MakeCorePlugin;
-import org.eclipse.cdt.managedbuilder.core.BuildException;
-import org.eclipse.cdt.managedbuilder.core.IConfiguration;
-import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
-import org.eclipse.cdt.managedbuilder.core.IOption;
-import org.eclipse.cdt.managedbuilder.core.IOptionCategory;
-import org.eclipse.cdt.managedbuilder.core.ITarget;
-import org.eclipse.cdt.managedbuilder.core.ITool;
-import org.eclipse.cdt.managedbuilder.core.IToolReference;
-import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
-import org.eclipse.cdt.managedbuilder.core.ManagedCProjectNature;
-import org.eclipse.cdt.managedbuilder.internal.core.OptionReference;
-import org.eclipse.cdt.testplugin.FileManager;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IProjectDescription;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceDescription;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.Path;
-
-public class ManagedBuildTests extends TestCase {
-	private static final boolean boolVal = true;
-	private static final String testConfigId = "test.config.override";
-	private static final String testConfigName = "Tester";
-	private static final String enumVal = "Another Enum";
-	private static final String[] listVal = {"_DEBUG", "/usr/include", "libglade.a"};
-	private static final String newExt = "wen";
-	private static final String projectName = "ManagedBuildTest";
-	private static final String projectRename = "ManagedBuildRedux";
-	private static final String rootExt = "toor";
-	private static final String stringVal = "-c -Wall";
-	private static final String anotherStringVal = "thevalue";
-	private static final String subExt = "bus";
-		
-	public ManagedBuildTests(String name) {
-		super(name);
-	}
-	
-	public static Test suite() {
-		TestSuite suite = new TestSuite(ManagedBuildTests.class.getName());
-		
-		suite.addTest(new ManagedBuildTests("testExtensions"));
-		suite.addTest(new ManagedBuildTests("testProjectCreation"));
-		suite.addTest(new ManagedBuildTests("testConfigurations"));
-		suite.addTest(new ManagedBuildTests("testConfigurationReset"));
-		suite.addTest(new ManagedBuildTests("testTargetBuildArtifact"));
-		suite.addTest(new ManagedBuildTests("testMakeCommandManipulation"));
-		suite.addTest(new ManagedBuildTests("testScannerInfoInterface"));
-		suite.addTest(new ManagedBuildTests("testBug43450"));
-		suite.addTest(new ManagedBuildTests("testProjectRename"));
-		suite.addTest(new ManagedBuildTests("cleanup"));
-		
-		return suite;
-	}
-
-	/**
-	 * Navigates through the build info as defined in the extensions
-	 * defined in this plugin
-	 */
-	public void testExtensions() throws Exception {
-		ITarget testRoot = null;
-		ITarget testSub = null;
-		ITarget testSubSub = null;
-		ITarget testForwardChild = null;
-		ITarget testForwardParent = null;
-		ITarget testForwardGrandchild = null;
-		int numProviderTargets = 0;
-		
-		// Note secret null parameter which means just extensions
-		ITarget[] targets = ManagedBuildManager.getDefinedTargets(null);
-
-		for (int i = 0; i < targets.length; ++i) {
-			ITarget target = targets[i];
-			
-			if (target.getName().equals("Test Root")) {
-				testRoot = target;
-				checkRootTarget(testRoot);
-			} else if (target.getName().equals("Test Sub")) {
-				testSub = target;
-				checkSubTarget(testSub);
-			} else if (target.getName().equals("Test Sub Sub")) {
-				testSubSub = target;
-				checkSubSubTarget(testSubSub);
-			} else if (target.getName().equals("Forward Child")) {
-				testForwardChild = target;
-			} else if (target.getName().equals("Forward Parent")) {
-				testForwardParent = target;
-			} else if (target.getName().equals("Forward Grandchild")) {
-				testForwardGrandchild = target;
-			} else if (target.getId().startsWith("test.provider.Test_")) {
-				numProviderTargets++;
-				checkProviderTarget(target);
-			}
-		}
-		// check that the forward references are properly resolved.
-		assertNotNull(testForwardChild);
-		assertNotNull(testForwardParent);
-		assertNotNull(testForwardGrandchild);
-		checkForwardTargets(testForwardParent, testForwardChild, testForwardGrandchild);
-		
-		// check that the proper number of target were dynamically provided
-		assertEquals(3, numProviderTargets);
-		
-		// All these targets are defines in the plugin files, so none
-		// of them should be null at this point
-		assertNotNull(testRoot);
-		assertNotNull(testSub);
-		assertNotNull(testSubSub);
-	}
-
-	/**
-	 * This test exercises the interface the <code>ITarget</code> exposes to manipulate 
-	 * its make command.
-	 */
-	public void testMakeCommandManipulation () {
-		String oldMakeCmd = "make";
-		String newMakeCmd = "Ant";
-		
-		// Open the test project
-		IProject project = null;
-		try {
-			project = createProject(projectName);
-		} catch (CoreException e) {
-			fail("Failed to open project in 'testMakeCommandManipulation': " + e.getLocalizedMessage());
-		}
-		assertNotNull(project);
-		
-		// Now open the root target
-		ITarget[] targets = ManagedBuildManager.getTargets(project);
-		assertEquals(1, targets.length);
-		
-		// Does it have a default make command
-		assertFalse(targets[0].hasOverridenMakeCommand());
-		assertEquals(oldMakeCmd, targets[0].getMakeCommand());
-		
-		// Change it
-		targets[0].setMakeCommand(newMakeCmd);
-		assertEquals(newMakeCmd, targets[0].getMakeCommand());
-		assertTrue(targets[0].hasOverridenMakeCommand());
-		
-		// Reset it
-		targets[0].resetMakeCommand();
-		assertFalse(targets[0].hasOverridenMakeCommand());
-		assertEquals(oldMakeCmd, targets[0].getMakeCommand());
-		
-		ManagedBuildManager.saveBuildInfo(project, false);
-	}
-	
-	
-	/**
-	 * The purpose of this test is to exercise the build path info interface.
-	 * To get to that point, a new target/config has to be created in the test
-	 * project and the default configuration changed.
-	 *  
-	 * @throws CoreException
-	 */
-	public void testScannerInfoInterface(){
-		// Open the test project
-		IProject project = null;
-		try {
-			project = createProject(projectName);
-		} catch (CoreException e) {
-			fail("Failed to open project in 'testScannerInfoInterface': " + e.getLocalizedMessage());
-		}
-		
-		//These are the expected path settings
-		 final String[] expectedPaths = new String[5];
-		 // This first path is a built-in, so it will not be manipulated by build manager
-		 expectedPaths[0] = "/usr/gnu/include";
-		 expectedPaths[1] = (new Path("/usr/include")).toOSString();
-		 expectedPaths[2] = (new Path("/opt/gnome/include")).toOSString();
-		 expectedPaths[3] = (new Path("C:\\home\\tester/include")).toOSString();
-		 expectedPaths[4] = project.getLocation().append( "Sub Config\\\"..\\includes\"" ).toOSString();
-		 
-		// Create a new target in the project based on the sub target
-		ITarget baseTarget = ManagedBuildManager.getTarget(project, "test.sub");
-		assertNotNull(baseTarget);
-		ITarget newTarget = null;
-		try {
-			newTarget = ManagedBuildManager.createTarget(project, baseTarget);
-		} catch (BuildException e) {
-			fail("Failed adding new target to project: " + e.getLocalizedMessage());
-		}
-		assertNotNull(newTarget);
-		// Copy over the configs
-		IConfiguration[] baseConfigs = baseTarget.getConfigurations();
-		for (int i = 0; i < baseConfigs.length; ++i) {
-			newTarget.createConfiguration(baseConfigs[i], baseConfigs[i].getId() + "." + i);
-		}
-		// Change the default configuration to the sub config
-		IConfiguration[] configs = newTarget.getConfigurations();
-		assertEquals(4, configs.length);
-		IManagedBuildInfo buildInfo = ManagedBuildManager.getBuildInfo(project);
-		buildInfo.setDefaultConfiguration(newTarget.getConfiguration(configs[0].getId()));
-
-		// Save the build info
-		ManagedBuildManager.saveBuildInfo(project, false);		
-
-		// Use the plugin mechanism to discover the supplier of the path information
-		IExtensionPoint extensionPoint = CCorePlugin.getDefault().getDescriptor().getExtensionPoint("ScannerInfoProvider");
-		if (extensionPoint == null) {
-			fail("Failed to retrieve the extension point ScannerInfoProvider.");
-		}
-
-		// Find the first IScannerInfoProvider that supplies build info for the project
-		IScannerInfoProvider provider = CCorePlugin.getDefault().getScannerInfoProvider(project);
-		assertNotNull(provider);
-		
-		// Check the build information right away
-		IScannerInfo currentSettings = provider.getScannerInformation(project);
-		Map currentSymbols = currentSettings.getDefinedSymbols();
-		// It should simply contain the built-in
-		assertTrue(currentSymbols.containsKey("BUILTIN"));
-		assertEquals((String)currentSymbols.get("BUILTIN"), "");
-		String[] currentPaths = currentSettings.getIncludePaths();
-		assertTrue(Arrays.equals(expectedPaths, currentPaths));
-		
-		// Now subscribe (note that the method will be called after a change
-		provider.subscribe(project, new IScannerInfoChangeListener () {
-			public void changeNotification(IResource project, IScannerInfo info) {
-				// Test the symbols: expect "BUILTIN" from the manifest, and "DEBUG" and "GNOME=ME"
-				// from the overidden settings 
-				Map definedSymbols = info.getDefinedSymbols();
-				assertTrue(definedSymbols.containsKey("BUILTIN"));
-				assertTrue(definedSymbols.containsKey("DEBUG"));
-				assertTrue(definedSymbols.containsKey("GNOME"));
-				assertTrue(definedSymbols.containsValue("ME"));
-				assertEquals((String)definedSymbols.get("BUILTIN"), "");
-				assertEquals((String)definedSymbols.get("DEBUG"), "");
-				assertEquals((String)definedSymbols.get("GNOME"), "ME");
-				// Test the includes path
-				String[] actualPaths = info.getIncludePaths();
-				assertTrue(Arrays.equals(expectedPaths, actualPaths));
-			}
-		});
-		
-		// Add some defined symbols programmatically
-		String[] expectedSymbols = {"DEBUG", "GNOME = ME "};
-		IConfiguration defaultConfig = buildInfo.getDefaultConfiguration(newTarget);
-		ITool[] tools = defaultConfig.getTools();
-		ITool subTool = null;
-		for (int i = 0; i < tools.length; i++) {
-			ITool tool = tools[i];
-			if("tool.sub".equalsIgnoreCase(tool.getId())) {
-				subTool = tool;
-				break;
-			}
-		}
-		assertNotNull(subTool);
-		IOption symbolOpt = null;
-		IOption[] opts = subTool.getOptions();
-		for (int i = 0; i < opts.length; i++) {
-			IOption option = opts[i];
-			if (option.getValueType() == IOption.PREPROCESSOR_SYMBOLS) {
-				symbolOpt = option;
-				break;
-			}
-		}
-		assertNotNull(symbolOpt);
-		IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(project);
-		assertFalse(info.isDirty());
-		ManagedBuildManager.setOption(defaultConfig, symbolOpt, expectedSymbols);
-		assertTrue(info.isDirty());
-		info.setDirty(false);
-		assertFalse(info.isDirty());
-	}
-	
-	/**
-	 * Create a new configuration based on one defined in the plugin file.
-	 * Overrides all of the configuration settings. Saves, closes, and reopens 
-	 * the project. Then calls a method to check the overridden options.
-	 * 
-	 * Tests creating a new configuration.
-	 * Tests setting options.
-	 * Tests persisting overridden options between project sessions.
-	 * 
-	 */
-	public void testConfigurations() throws CoreException, BuildException {
-		final String rootName = "Root Config";
-		final String overrideName = "Root Override Config";
-		final String completeOverrideName = "Complete Override Config";
-		final String toolCmd = "doIt";
-		final String newCmd = "never";
-		
-		// Open the test project
-		IProject project = createProject(projectName);
-		
-		// Make sure there is one and only one target with 3 configs
-		ITarget[] definedTargets = ManagedBuildManager.getTargets(project);
-		assertEquals(1, definedTargets.length);
-		ITarget rootTarget = definedTargets[0];
-		IConfiguration[] definedConfigs = rootTarget.getConfigurations(); 		
-		assertEquals(3, definedConfigs.length);
-		IConfiguration baseConfig = definedConfigs[0];
-		assertEquals(definedConfigs[0].getName(), rootName);
-		assertEquals(definedConfigs[1].getName(), overrideName);
-		assertEquals(definedConfigs[2].getName(), completeOverrideName);
-		
-		// Create a new configuration and test the rename function
-		IConfiguration newConfig = rootTarget.createConfiguration(baseConfig, testConfigId);
-		assertEquals(4, rootTarget.getConfigurations().length);
-		newConfig.setName(testConfigName);
-		assertEquals(newConfig.getId(), testConfigId);
-		assertEquals(newConfig.getName(), testConfigName);
-
-		// There is only one tool
-		ITool[] definedTools = newConfig.getTools();
-		assertEquals(1, definedTools.length);
-		ITool rootTool = definedTools[0];
-		
-		// Test changing its command
-		assertEquals(rootTool.getToolCommand(), toolCmd);
-		newConfig.setToolCommand(rootTool, newCmd);
-		assertEquals(rootTool.getToolCommand(), newCmd);
-		
-		// Override options in the new configuration
-		IOptionCategory topCategory = rootTool.getTopOptionCategory();
-		assertEquals("Root Tool", topCategory.getName());
-		IOption[] options = topCategory.getOptions(null);
-		assertEquals(2, options.length);
-		ManagedBuildManager.setOption(newConfig, options[0], listVal);
-		ManagedBuildManager.setOption(newConfig, options[1], boolVal);
-
-		IOptionCategory[] categories = topCategory.getChildCategories();
-		assertEquals(1, categories.length);
-		options = categories[0].getOptions(null);
-		assertEquals(4, options.length);
-		ManagedBuildManager.setOption(newConfig, options[0], stringVal);
-		ManagedBuildManager.setOption(newConfig, options[1], anotherStringVal);
-		ManagedBuildManager.setOption(newConfig, options[2], enumVal);
-		ManagedBuildManager.setOption(newConfig, options[3], "False");
-
-		// Save, close, reopen and test again
-		ManagedBuildManager.saveBuildInfo(project, false);
-		project.close(null);
-		ManagedBuildManager.removeBuildInfo(project);
-		project.open(null);
-
-		// Test the values in the new configuration
-		checkOptionReferences(project);
-		
-		// Now delete the new configuration and test the target
-		definedTargets = ManagedBuildManager.getTargets(project);
-		assertEquals(1, definedTargets.length);
-		rootTarget = definedTargets[0];
-		definedConfigs = rootTarget.getConfigurations(); 		
-		assertEquals(4, definedConfigs.length);
-		rootTarget.removeConfiguration(testConfigId);
-		definedConfigs = rootTarget.getConfigurations(); 		
-		assertEquals(3, definedConfigs.length);
-		assertEquals(definedConfigs[0].getName(), rootName);
-		assertEquals(definedConfigs[1].getName(), overrideName);
-		ManagedBuildManager.saveBuildInfo(project, false);
-	}
-	
-	public void testConfigurationReset() {
-		// Open the test project
-		IProject project = null;
-		try {
-			project = createProject(projectName);
-		} catch (CoreException e) {
-			fail("Failed to open project: " + e.getLocalizedMessage());
-		}
-
-		// Get the default configuration
-		IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(project);
-		assertNotNull(info);
-		ITarget defaultTarget = info.getDefaultTarget();
-		assertNotNull(defaultTarget);
-		IConfiguration defaultConfig = info.getDefaultConfiguration(defaultTarget);
-		assertNotNull(defaultConfig);
-		
-		// See if it still contains the overridden values (see testProjectCreation())
-		try {
-			checkRootTarget(defaultTarget);
-		} catch (BuildException e1) {
-			fail("Overridden root target check failed: " + e1.getLocalizedMessage());
-		}
-		
-		// Reset the config and retest
-		ManagedBuildManager.resetConfiguration(project, defaultConfig);
-		ManagedBuildManager.saveBuildInfo(project, false);
-		try {
-			checkRootTarget(defaultTarget);
-		} catch (BuildException e2) {
-			fail("Reset root target check failed: " + e2.getLocalizedMessage());
-		}
-	}
-	
-	/**
-	 * @throws CoreException
-	 * @throws BuildException
-	 */
-	public void testProjectCreation() throws BuildException {
-		// Create new project
-		IProject project = null;
-		try {
-			project = createProject(projectName);
-			// Now associate the builder with the project
-			addManagedBuildNature(project);
-			IProjectDescription description = project.getDescription();
-			// Make sure it has a managed nature
-			if (description != null) {
-				assertTrue(description.hasNature(ManagedCProjectNature.MNG_NATURE_ID));
-			}
-
-		} catch (CoreException e) {
-			fail("Test failed on project creation: " + e.getLocalizedMessage());
-		}
-		// There should not be any targets defined for this project yet
-		assertEquals(0, ManagedBuildManager.getTargets(project).length);
-		
-		// Find the base target definition
-		ITarget targetDef = ManagedBuildManager.getTarget(project, "test.root");
-		assertNotNull(targetDef);
-		
-		// Create the target for our project that builds a dummy executable
-		ITarget newTarget = ManagedBuildManager.createTarget(project, targetDef);
-		assertEquals(newTarget.getName(), targetDef.getName());
-		assertFalse(newTarget.equals(targetDef));
-		String buildArtifactName = projectName;
-		newTarget.setArtifactName(buildArtifactName);
-		newTarget.setArtifactExtension(newExt);
-		ITarget[] targets = ManagedBuildManager.getTargets(project);
-		assertEquals(1, targets.length);
-		ITarget target = targets[0];
-		assertEquals(target, newTarget);
-		assertFalse(target.equals(targetDef));
-
-		// Copy over the configs
-		IConfiguration defaultConfig = null;
-		IConfiguration[] configs = targetDef.getConfigurations();
-		for (int i = 0; i < configs.length; ++i) {
-			// Make the first configuration the default 
-			if (i == 0) {
-				defaultConfig = target.createConfiguration(configs[i], target.getId() + "." + i);
-			} else {
-				target.createConfiguration(configs[i], target.getId() + "." + i);
-			}
-		}
-		ManagedBuildManager.setDefaultConfiguration(project, defaultConfig);		
-		checkRootTarget(target);
-		
-		// Override the "String Option in Category" option value
-		configs = target.getConfigurations();
-		ITool[] tools = configs[0].getTools();
-		IOptionCategory topCategory = tools[0].getTopOptionCategory();
-		IOptionCategory[] categories = topCategory.getChildCategories();
-		IOption[] options = categories[0].getOptions(configs[0]);
-		configs[0].setOption(options[0], "z");
-		options = categories[0].getOptions(null);
-		assertEquals("x", options[0].getStringValue());
-		options = categories[0].getOptions(configs[0]);
-		assertEquals("z", options[0].getStringValue());
-		
-		// Save, close, reopen and test again
-		ManagedBuildManager.saveBuildInfo(project, true);
-		try {
-			project.close(null);
-		} catch (CoreException e) {
-			fail("Failed on project close: " + e.getLocalizedMessage());
-		}
-		ManagedBuildManager.removeBuildInfo(project);
-		try {
-			project.open(null);
-		} catch (CoreException e) {
-			fail("Failed on project open: " + e.getLocalizedMessage());
-		}
-		
-		// Test that the default config was remembered
-		IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(project);
-		assertEquals(defaultConfig.getId(), info.getDefaultConfiguration(target).getId());
-
-		// Get the targets
-		targets = ManagedBuildManager.getTargets(project);
-		assertEquals(1, targets.length);
-		// See if the artifact name is remembered
-		assertEquals(targets[0].getArtifactName(), buildArtifactName);
-		// Check the rest of the default information
-		checkRootTarget(targets[0]);
-		
-		// Now test the information the makefile builder needs
-		checkBuildTestSettings(info);
-		ManagedBuildManager.removeBuildInfo(project);
-	}
-
-	/**
-	 * Tests that bugzilla 44159 has been addressed. After a project was renamed, the 
-	 * build information mistakenly referred to the old project as its owner. This
-	 * caused a number of searches on the information to fail. In this bug, it was the 
-	 * list of tools that could not be determined. In other cases, the information 
-	 * retrieval caused NPEs because the old owner no longer existed.
-	 */
-	public void testProjectRename() {
-		// Open the test project
-		IProject project = null;
-		try {
-			project = createProject(projectName);
-		} catch (CoreException e) {
-			fail("Failed to open project: " + e.getLocalizedMessage());
-		}
-		
-		// Rename the project
-		IWorkspaceRoot workspaceRoot = ResourcesPlugin.getWorkspace().getRoot();	
-		IResource newResource = workspaceRoot.findMember(projectRename);
-		if (newResource != null) {
-			try {
-				newResource.delete(IResource.KEEP_HISTORY, new NullProgressMonitor());
-			} catch (CoreException e) {
-				fail("Failed to delete old project " + projectRename + ": " + e.getLocalizedMessage());
-			}		
-		}
-		IProjectDescription description = null;
-		try {
-			description = project.getDescription();
-		} catch (CoreException e) {
-			fail("Failed to find project descriptor for " + projectName + ": " + e.getLocalizedMessage());
-		}
-		description.setName(projectRename);
-		try {
-			project.move(description, IResource.FORCE | IResource.SHALLOW, new NullProgressMonitor());
-		} catch (CoreException e) {
-			fail("Failed to rename project: " + e.getLocalizedMessage());
-		}
-		try {
-			project = createProject(projectRename);
-		} catch (CoreException e) {
-			fail("Failed to open renamed project: " + e.getLocalizedMessage());
-		}
-
-		// By now there should be 2 targets with 3 configs
-		ITarget[] definedTargets = ManagedBuildManager.getTargets(project);
-		assertEquals(2, definedTargets.length);
-		ITarget rootTarget = definedTargets[0];
-		IConfiguration[] definedConfigs = rootTarget.getConfigurations(); 		
-		assertEquals(3, definedConfigs.length);
-		IConfiguration baseConfig = definedConfigs[0];
-		
-		// There is only one tool
-		ITool[] definedTools = baseConfig.getTools();
-		assertEquals(1, definedTools.length);
-		ITool rootTool = definedTools[0];
-		
-		// Get the options (2) in top category and (4) in its child
-		IOptionCategory topCategory = rootTool.getTopOptionCategory();
-		assertEquals("Root Tool", topCategory.getName());
-		IOption[] options = topCategory.getOptions(null);
-		assertEquals(2, options.length);
-		IOptionCategory[] categories = topCategory.getChildCategories();
-		assertEquals(1, categories.length);
-		options = categories[0].getOptions(null);
-		assertEquals(4, options.length);
-		
-		// Set the name back
-		newResource = workspaceRoot.findMember(projectName);
-		if (newResource != null) {
-			try {
-				newResource.delete(IResource.KEEP_HISTORY, new NullProgressMonitor());
-			} catch (CoreException e) {
-				fail("Failed to delete old project " + projectName + ": " + e.getLocalizedMessage());
-			}		
-		}
-		try {
-			description = project.getDescription();
-		} catch (CoreException e) {
-			fail("Failed to find project descriptor for " + projectRename + ": " + e.getLocalizedMessage());
-		}
-		description.setName(projectName);
-		try {
-			project.move(description, IResource.FORCE | IResource.SHALLOW, new NullProgressMonitor());
-		} catch (CoreException e) {
-			fail("Failed to re-rename project: " + e.getLocalizedMessage());
-		}
-		try {
-			project = createProject(projectName);
-		} catch (CoreException e) {
-			fail("Failed to open re-renamed project: " + e.getLocalizedMessage());
-		}
-
-		// Do it all again
-		definedTargets = ManagedBuildManager.getTargets(project);
-		assertEquals(2, definedTargets.length);
-		rootTarget = definedTargets[0];
-		definedConfigs = rootTarget.getConfigurations(); 		
-		assertEquals(3, definedConfigs.length);
-		baseConfig = definedConfigs[0];
-		definedTools = baseConfig.getTools();
-		assertEquals(1, definedTools.length);
-		rootTool = definedTools[0];
-		topCategory = rootTool.getTopOptionCategory();
-		assertEquals("Root Tool", topCategory.getName());
-		options = topCategory.getOptions(null);
-		assertEquals(2, options.length);
-		categories = topCategory.getChildCategories();
-		assertEquals(1, categories.length);
-		options = categories[0].getOptions(null);
-		assertEquals(4, options.length);
-	}
-	
-	private void addManagedBuildNature (IProject project) {
-		// Add the managed build nature
-		try {
-			ManagedCProjectNature.addManagedNature(project, new NullProgressMonitor());
-			ManagedCProjectNature.addManagedBuilder(project, new NullProgressMonitor());
-		} catch (CoreException e) {
-			fail("Test failed on adding managed build nature or builder: " + e.getLocalizedMessage());
-		}
-
-		// Associate the project with the managed builder so the clients can get proper information
-		ICDescriptor desc = null;
-		try {
-			desc = CCorePlugin.getDefault().getCProjectDescription(project);
-			desc.remove(CCorePlugin.BUILD_SCANNER_INFO_UNIQ_ID);
-			desc.create(CCorePlugin.BUILD_SCANNER_INFO_UNIQ_ID, ManagedBuildManager.INTERFACE_IDENTITY);
-		} catch (CoreException e) {
-			fail("Test failed on adding managed builder as scanner info provider: " + e.getLocalizedMessage());
-		}
-		try {
-			desc.saveProjectData();
-		} catch (CoreException e) {
-			fail("Test failed on saving the ICDescriptor data: " + e.getLocalizedMessage());		}
-	}
-
-	/**
-	 * Tests the tool settings through the interface the makefile generator
-	 * uses.
-	 * 
-	 * @param project
-	 */
-	private void checkBuildTestSettings(IManagedBuildInfo info) {
-		String ext1 = "foo";
-		String ext2 = "bar";
-		String badExt = "cpp";
-		String expectedOutput = "toor";
-		String expectedCmd = "doIt";
-		
-		assertNotNull(info);
-		assertEquals(info.getBuildArtifactName(), projectName);
-		
-		// There should be a default configuration defined for the project
-		ITarget buildTarget = info.getDefaultTarget();
-		assertNotNull(buildTarget);
-		IConfiguration buildConfig = info.getDefaultConfiguration(buildTarget);
-		assertNotNull(buildConfig);
-				
-		// The default target should be the same as the one-and-only target in the project
-		List targets = info.getTargets();
-		assertEquals(targets.size(), 1);
-		ITarget target = (ITarget) targets.get(0);
-		assertEquals(target, buildTarget);
-		
-		// Check that tool handles resources with extensions foo and bar by building a baz
-		assertEquals(info.getOutputExtension(ext1), expectedOutput);
-		assertEquals(info.getOutputExtension(ext2), expectedOutput);
-		
-		// Check that it ignores others based on filename extensions
-		assertNull(info.getOutputExtension(badExt));
-		
-		// Now see what the tool command line invocation is for foo and bar
-		assertEquals(info.getToolForSource(ext1), expectedCmd);
-		assertEquals(info.getToolForSource(ext2), expectedCmd);
-		// Make sure that there is no tool to build files of type foo and bar
-		assertNull(info.getToolForTarget(ext1));
-		assertNull(info.getToolForTarget(ext2));
-		
-		// There is no target that builds toor
-		assertNull(info.getToolForSource(expectedOutput));
-		// but there is one that produces it
-		assertEquals(info.getToolForTarget(expectedOutput), expectedCmd);
-		
-		// Now check the build flags
-		assertEquals(info.getFlagsForSource(ext1), "-La -Lb z -e1 -nob");
-		assertEquals(info.getFlagsForSource(ext1), info.getFlagsForSource(ext2));
-		
-	}
-	
-	/**
-	 * Tests that overridden options are properly read into build model.
-	 * Test that option values that are not overridden remain the same.
-	 * 
-	 * @param project The project to get build model information for.
-	 * @throws BuildException
-	 */
-	private void checkOptionReferences(IProject project) throws BuildException {
-		// Get the targets out of the project
-		ITarget[] definedTargets = ManagedBuildManager.getTargets(project);
-		assertEquals(1, definedTargets.length);
-		ITarget rootTarget = definedTargets[0];
-
-		// Now get the configs
-		IConfiguration[] definedConfigs = rootTarget.getConfigurations(); 		
-		assertEquals(4, definedConfigs.length);
-		IConfiguration newConfig = rootTarget.getConfiguration(testConfigId);
-		assertNotNull(newConfig);
-
-		// Now get the tool options and make sure the values are correct		
-		ITool[] definedTools = newConfig.getTools();
-		assertEquals(1, definedTools.length);
-		ITool rootTool = definedTools[0];
-
-		// Check that the options in the new config contain overridden values
-		IOption[] rootOptions = rootTool.getOptions();
-		assertEquals(6, rootOptions.length);
-		// First is the new list
-		assertEquals("List Option in Top", rootOptions[0].getName());
-		assertEquals(IOption.STRING_LIST, rootOptions[0].getValueType());
-		String[] list = rootOptions[0].getStringListValue();
-		assertEquals(3, list.length);
-		assertTrue(Arrays.equals(listVal, list));
-		assertEquals(rootOptions[0].getCommand(), "-L");
-		// Next option is a boolean in top
-		assertEquals("Boolean Option in Top", rootOptions[1].getName());
-		assertEquals(IOption.BOOLEAN, rootOptions[1].getValueType());
-		assertEquals(boolVal, rootOptions[1].getBooleanValue());
-		assertEquals("-b", rootOptions[1].getCommand());
-		// Next option is a string in category
-		assertEquals("String Option in Category", rootOptions[2].getName());
-		assertEquals(IOption.STRING, rootOptions[2].getValueType());
-		assertEquals(stringVal, rootOptions[2].getStringValue());
-		// Next option is a another string in category
-		assertEquals("Another String Option in Category", rootOptions[3].getName());
-		assertEquals(IOption.STRING, rootOptions[3].getValueType());
-		assertEquals(anotherStringVal, rootOptions[3].getStringValue());
-		assertEquals("-str", rootOptions[3].getCommand());
-		// Next option is an enumerated in category
-		assertEquals("Enumerated Option in Category", rootOptions[4].getName());
-		assertEquals(IOption.ENUMERATED, rootOptions[4].getValueType());
-		String selEnum = rootOptions[4].getSelectedEnum();
-		assertEquals(enumVal, selEnum);
-		String[] enums = rootOptions[4].getApplicableValues();
-		assertEquals(2, enums.length);
-		assertEquals("Default Enum", enums[0]);
-		assertEquals("Another Enum", enums[1]);
-		assertEquals("-e1", rootOptions[4].getEnumCommand(enums[0]));
-		assertEquals("-e2", rootOptions[4].getEnumCommand(enums[1]));
-		assertEquals("-e2", rootOptions[4].getEnumCommand(selEnum));
-		// Final option is a boolean in Category
-		assertEquals("Boolean Option in Category", rootOptions[5].getName());
-		assertEquals(IOption.BOOLEAN, rootOptions[5].getValueType());
-		assertEquals(false, rootOptions[5].getBooleanValue());
-		assertEquals("-nob", rootOptions[5].getCommandFalse());
-	}
-	
-	/*
-	 * Do a full sanity check on the root target.
-	 */
-	private void checkRootTarget(ITarget target) throws BuildException {
-		// Target stuff
-		String expectedCleanCmd = "del /myworld";
-		String expectedParserId = "org.eclipse.cdt.core.PE";
-		String[] expectedOSList = {"win32"};
-		assertTrue(target.isTestTarget());
-		if (target.getArtifactName().equals("ManagedBuildTest")) {
-			assertEquals(target.getArtifactExtension(), newExt);
-		} else {
-			assertEquals(target.getArtifactExtension(), rootExt);
-		}
-		assertEquals(expectedCleanCmd, target.getCleanCommand());
-		assertEquals("make", target.getMakeCommand());
-		assertEquals(expectedParserId, target.getBinaryParserId());
-		assertTrue(Arrays.equals(expectedOSList, target.getTargetOSList()));
-		
-		// Tools
-		ITool[] tools = target.getTools();
-		// Root Tool
-		ITool rootTool = tools[0];
-		assertEquals("Root Tool", rootTool.getName());
-		// 6 Options are defined in the root tool
-		IOption[] options = rootTool.getOptions();
-		assertEquals(6, options.length);
-		// First option is a 3-element list with 1 built-in
-		assertEquals("List Option in Top", options[0].getName());
-		assertEquals(IOption.STRING_LIST, options[0].getValueType());
-		String[] valueList = options[0].getStringListValue();
-		assertEquals(2, valueList.length);
-		assertEquals("a", valueList[0]);
-		assertEquals("b", valueList[1]);
-		String[] builtInList = options[0].getBuiltIns();
-		assertEquals(1, builtInList.length);
-		assertEquals("c", builtInList[0]);
-		assertEquals(options[0].getCommand(), "-L");
-		// Next option is a boolean in top
-		assertEquals("Boolean Option in Top", options[1].getName());
-		assertEquals(IOption.BOOLEAN, options[1].getValueType());
-		assertEquals(false, options[1].getBooleanValue());
-		assertEquals("-b", options[1].getCommand());
-		// Next option is a string category
-		assertEquals("String Option in Category", options[2].getName());
-		assertEquals(IOption.STRING, options[2].getValueType());
-		assertEquals("x", options[2].getStringValue());
-		// Next option is another string category
-		assertEquals("Another String Option in Category", options[3].getName());
-		assertEquals(IOption.STRING, options[3].getValueType());
-		assertEquals("", options[3].getStringValue());
-		assertEquals("-str", options[3].getCommand());
-		// Next option is an enumerated
-		assertEquals("Enumerated Option in Category", options[4].getName());
-		assertEquals(IOption.ENUMERATED, options[4].getValueType());
-		assertEquals("Default Enum", options[4].getSelectedEnum());
-		valueList = options[4].getApplicableValues();
-		assertEquals(2, valueList.length);
-		assertEquals("Default Enum", valueList[0]);
-		assertEquals("Another Enum", valueList[1]);
-		assertEquals("-e1", options[4].getEnumCommand(valueList[0]));
-		assertEquals("-e2", options[4].getEnumCommand(valueList[1]));
-		// Final option is another boolean
-		assertEquals("Boolean Option in Category", options[5].getName());
-		assertEquals(IOption.BOOLEAN, options[5].getValueType());
-		assertEquals(false, options[5].getBooleanValue());
-		assertNull(options[5].getCommand());
-		assertEquals("-nob", options[5].getCommandFalse());
-		
-		// Option Categories
-		IOptionCategory topCategory = rootTool.getTopOptionCategory();
-		assertEquals("Root Tool", topCategory.getName());
-		options = topCategory.getOptions(null);
-		assertEquals(2, options.length);
-		assertEquals("List Option in Top", options[0].getName());
-		assertEquals("Boolean Option in Top", options[1].getName());
-		IOptionCategory[] categories = topCategory.getChildCategories();
-		assertEquals(1, categories.length);
-		assertEquals("Category", categories[0].getName());
-		options = categories[0].getOptions(null);
-		assertEquals(4, options.length);
-		assertEquals("String Option in Category", options[0].getName());
-		assertEquals("Another String Option in Category", options[1].getName());
-		assertEquals("Enumerated Option in Category", options[2].getName());
-		assertEquals("Boolean Option in Category", options[3].getName());
-
-		// There should be 3 defined configs
-		IConfiguration[] configs = target.getConfigurations();
-		assertEquals(3, configs.length);
-		
-		// Root Config
-		IConfiguration rootConfig = configs[0];
-		assertEquals("Root Config", rootConfig.getName());
-
-		// Tool elements
-		tools = rootConfig.getTools();
-		assertEquals(1, tools.length);
-		assertEquals("Root Tool", tools[0].getName());
-		assertEquals("-r", tools[0].getOutputFlag());
-		assertTrue(tools[0].buildsFileType("foo"));
-		assertTrue(tools[0].buildsFileType("bar"));
-		assertTrue(tools[0].producesFileType("toor"));
-		assertEquals("doIt", tools[0].getToolCommand());
-		assertEquals("", tools[0].getOutputPrefix());
-		// The root tool defines one valid header file extension
-		assertTrue(rootTool.isHeaderFile("baz"));
-		assertTrue(tools[0].isHeaderFile("baz"));
-		assertEquals(ITool.FILTER_C, rootTool.getNatureFilter());
-		
-		// Partially Overriden Configuration
-		assertEquals("Root Override Config", configs[1].getName());
-		tools = configs[1].getTools();
-		assertEquals(1, tools.length);
-		assertTrue(tools[0] instanceof IToolReference);
-		assertEquals("Root Tool", tools[0].getName());
-		topCategory = tools[0].getTopOptionCategory();
-		options = topCategory.getOptions(configs[1]);
-		assertEquals(2, options.length);
-		assertEquals("List Option in Top", options[0].getName());
-		valueList = options[0].getStringListValue();
-		assertEquals("a", valueList[0]);
-		assertEquals("b", valueList[1]);
-		assertEquals("Boolean Option in Top", options[1].getName());
-		assertEquals(true, options[1].getBooleanValue());
-		assertEquals("-b", options[1].getCommand());
-		categories = topCategory.getChildCategories();
-		options = categories[0].getOptions(configs[1]);
-		assertEquals(4, options.length);
-		assertEquals("String Option in Category", options[0].getName());
-		assertEquals("y", options[0].getStringValue());
-		assertEquals("Another String Option in Category", options[1].getName());
-		assertEquals("", options[1].getStringValue());
-		assertEquals("Enumerated Option in Category", options[2].getName());
-		valueList = options[2].getApplicableValues();
-		assertEquals(2, valueList.length);
-		assertEquals("Default Enum", valueList[0]);
-		assertEquals("Another Enum", valueList[1]);
-		assertEquals("-e1", options[2].getEnumCommand(valueList[0]));
-		assertEquals("-e2", options[2].getEnumCommand(valueList[1]));
-		assertEquals(1, tools.length);
-		assertEquals("Boolean Option in Category", options[3].getName());
-		assertEquals(false, options[3].getBooleanValue());
-		assertNull(options[3].getCommand());
-		assertEquals("-nob", options[3].getCommandFalse());
-		assertEquals(1, tools.length);
-		ITool tool = tools[0];
-		assertNotNull(tool);
-		assertEquals("Root Tool", tool.getName());
-		assertEquals("-r", tool.getOutputFlag());
-		assertTrue(tool.buildsFileType("foo"));
-		assertTrue(tool.buildsFileType("bar"));
-		assertTrue(tool.producesFileType("toor"));
-		assertTrue(tool.isHeaderFile("baz"));
-		assertEquals("doIt", tool.getToolCommand());
-		assertEquals("-La -Lb -b y -e1 -nob", tool.getToolFlags());
-		
-		// Completely Overridden configuration
-		assertEquals("Complete Override Config", configs[2].getName());
-		tools = configs[2].getTools();
-		assertEquals(1, tools.length);
-		assertTrue(tools[0] instanceof IToolReference);
-		assertEquals("Root Tool", tools[0].getName());
-		topCategory = tools[0].getTopOptionCategory();
-		options = topCategory.getOptions(configs[2]);
-		assertEquals(2, options.length);
-		// Check that there's an string list with totally new values 
-		assertTrue(options[0] instanceof OptionReference);
-		assertEquals("List Option in Top", options[0].getName());
-		assertEquals(IOption.STRING_LIST, options[0].getValueType());
-		valueList = options[0].getStringListValue();
-		assertTrue(valueList.length == 3);
-		assertEquals("d", valueList[0]);
-		assertEquals("e", valueList[1]);
-		assertEquals("f", valueList[2]);		
-		assertEquals("-L", options[0].getCommand());
-		// and a true boolean (commands should not have changed)
-		assertEquals("Boolean Option in Top", options[1].getName());
-		assertTrue(options[1] instanceof OptionReference);
-		assertEquals("Boolean Option in Top", options[1].getName());
-		assertEquals(IOption.BOOLEAN, options[1].getValueType());
-		assertEquals(true, options[1].getBooleanValue());
-		assertEquals("-b", options[1].getCommand());
-		// Check that there's an overridden enumeration and string
-		categories = topCategory.getChildCategories();
-		options = categories[0].getOptions(configs[2]);
-		assertEquals(4, options.length);
-		assertTrue(options[0] instanceof OptionReference);
-		assertEquals("String Option in Category", options[0].getName());
-		assertEquals(IOption.STRING, options[0].getValueType());
-		assertEquals("overridden", options[0].getStringValue());
-		assertTrue(options[1] instanceof OptionReference);
-		assertEquals("Another String Option in Category", options[1].getName());
-		assertEquals(IOption.STRING, options[1].getValueType());
-		assertEquals("alsooverridden", options[1].getStringValue());
-		assertTrue(options[2] instanceof OptionReference);
-		assertEquals("Enumerated Option in Category", options[2].getName());
-		assertEquals(IOption.ENUMERATED, options[2].getValueType());
-		assertEquals("-e2", options[2].getSelectedEnum());
-		assertTrue(options[3] instanceof OptionReference);
-		assertEquals("Boolean Option in Category", options[3].getName());
-		assertEquals(IOption.BOOLEAN, options[3].getValueType());
-		assertEquals(true, options[3].getBooleanValue());
-		tool = tools[0];
-		assertEquals("-Ld -Le -Lf -b overridden -stralsooverridden", tool.getToolFlags());
-	}
-
-	/*
-	 * @param testSubSub
-	 */
-	private void checkSubSubTarget(ITarget target) {
-		final String indyToolName = "Target Independent Tool";
-		final String indyToolCommand = "RC.EXE";
-		final String indyToolInputExt = "rc";
-		final String indyToolOutputExt = "free";
-		final String indyToolOutFlag = "/fo";
-		final String indyToolHeader = "h";
-		final String indyToolHeaderNot = "j";
-		final String indyCatOne = "Free";
-		final String indyCatTwo = "Chained";
-		final String freeOptName = "String in Free";
-		final String chainedOptName = "Boolean in Chained";
-		final String freeOptValue = "Live free or die";
-		final String newCmd = "Let the Wookie win";
-		
-		// Check the inherited clean command
-		assertEquals("rm -yourworld", target.getCleanCommand());
-		// Check that the make command is overridden from parent
-		assertEquals("nmake", target.getMakeCommand());
-		// Make sure we get the proper binary parser
-		assertEquals("org.eclipse.cdt.core.ELF", target.getBinaryParserId());
-		// Make sure the list is inherited
-		String[] expectedOSList = {"win32","linux","solaris"};
-		assertTrue(Arrays.equals(expectedOSList, target.getTargetOSList()));
-
-		// Get the 4 configurations
-		IConfiguration[] configs = target.getConfigurations();
-		assertEquals(4, configs.length);
-		
-		// Check the tools. We should have 3 (1 from each parent and the one referenced).
-		ITool[] tools = target.getTools();
-		assertEquals(3, tools.length);
-		ITool toolRef = tools[2];
-		
-		// Make sure the 3rd tool is a tool reference
-		assertTrue(toolRef instanceof IToolReference);
-		
-		// Make sure we get all the tool settings
-		assertEquals(toolRef.getName(), indyToolName);
-		assertEquals(toolRef.getToolCommand(), indyToolCommand);
-		assertTrue(toolRef.buildsFileType(indyToolInputExt));
-		assertEquals(toolRef.getOutputExtension(indyToolInputExt), indyToolOutputExt);
-		assertEquals(toolRef.getOutputFlag(), indyToolOutFlag);
-		assertTrue(toolRef.isHeaderFile(indyToolHeader));
-		assertFalse(toolRef.isHeaderFile(indyToolHeaderNot));
-		assertEquals(toolRef.getNatureFilter(), ITool.FILTER_BOTH);
-		// Check out the referenced tool and make sure we get all option categories
-		IOptionCategory topCategory = toolRef.getTopOptionCategory();
-		IOptionCategory[] categories = topCategory.getChildCategories();
-		assertEquals(1, categories.length);
-		assertEquals(categories[0].getName(), indyCatOne);
-		IOptionCategory[] subCategories = categories[0].getChildCategories();
-		// Is the chained category a subcategory
-		assertEquals(1, subCategories.length);
-		assertEquals(subCategories[0].getName(), indyCatTwo);
-		// Make sure the option in the top category is correct
-		IOption[] optsInCat = categories[0].getOptions(null);
-		assertEquals(1, optsInCat.length);
-		assertEquals(freeOptName, optsInCat[0].getName());
-		assertEquals(IOption.STRING, optsInCat[0].getValueType());
-		try {
-			assertEquals(freeOptValue, optsInCat[0].getStringValue());
-		} catch (BuildException e1) {
-			fail("Failed getting string value in subsubtarget :" + e1.getLocalizedMessage());
-		}
-
-		// Do the same for the options in the child cat
-		IOption[] optsInSubCat = subCategories[0].getOptions(null);
-		assertEquals(1, optsInSubCat.length);
-		assertEquals(chainedOptName, optsInSubCat[0].getName());
-		assertEquals(IOption.BOOLEAN, optsInSubCat[0].getValueType());
-		try {
-			assertFalse(optsInSubCat[0].getBooleanValue());
-		} catch (BuildException e) {
-			fail("Failure getting boolean value in subsubtarget: " + e.getLocalizedMessage());
-		}
-		
-		// Test that the tool command can be changed through the reference
-		((IToolReference)toolRef).setToolCommand(newCmd);
-		assertEquals(toolRef.getToolCommand(), newCmd);
-	}
-
-	/*
-	 * Do a sanity check on the values in the sub-target. Most of the
-	 * sanity on the how build model entries are read is performed in 
-	 * the root target check, so these tests just verify that the the sub 
-	 * target properly inherits from its parent. For the new options
-	 * in the sub target, the test does a sanity check just to be complete.
-	 */
-	private void checkSubTarget(ITarget target) throws BuildException {
-		// Check the overridden clean command
-		assertEquals("rm -yourworld", target.getCleanCommand());
-		// Make sure the target inherits the make command
-		assertEquals("make", target.getMakeCommand());
-		// Make sure the binary parser is hard-coded and available
-		assertEquals("org.eclipse.cdt.core.PE", target.getBinaryParserId());
-		String[] expectedOSList = {"win32","linux","solaris"};
-		assertTrue(Arrays.equals(expectedOSList, target.getTargetOSList()));
-
-		// Make sure this is a test target
-		assertTrue(target.isTestTarget());
-		// Make sure the build artifact extension is there
-		assertEquals(target.getArtifactExtension(), subExt);
-				
-		// Get the tools for this target
-		ITool[] tools = target.getTools();
-		// Do we inherit properly from parent
-		ITool rootTool = tools[0];
-		assertEquals("Root Tool", rootTool.getName());
-		// Now get the tool defined for this target
-		ITool subTool = tools[1];
-		assertEquals("Sub Tool", subTool.getName());
-		// Confirm that it has four options
-		IOption[] subOpts = subTool.getOptions();
-		assertEquals(4, subOpts.length);
-		assertEquals("", subTool.getOutputFlag());
-		assertTrue(subTool.buildsFileType("yarf"));
-		assertTrue(subTool.producesFileType("bus"));
-		assertEquals("", subTool.getToolCommand());
-		assertEquals("lib", subTool.getOutputPrefix());
-		assertTrue(subTool.isHeaderFile("arf"));
-		assertTrue(subTool.isHeaderFile("barf"));
-		assertEquals(ITool.FILTER_BOTH, subTool.getNatureFilter());
-		
-		// Do a sanity check on the options 
-		assertEquals("Include Paths", subOpts[0].getName());
-		assertEquals(IOption.INCLUDE_PATH, subOpts[0].getValueType());
-		String[] incPath = subOpts[0].getIncludePaths();
-		assertEquals(2, incPath.length);
-		assertEquals("/usr/include", incPath[0]);
-		assertEquals("/opt/gnome/include", incPath[1]);
-		String[] builtInPaths = subOpts[0].getBuiltIns();
-		assertEquals(1, builtInPaths.length);
-		assertEquals("/usr/gnu/include", builtInPaths[0]);
-		assertEquals("-I", subOpts[0].getCommand());
-		assertEquals(IOption.BROWSE_DIR, subOpts[0].getBrowseType());
-				
-		// There are no user-defined preprocessor symbols
-		assertEquals("Defined Symbols", subOpts[1].getName());
-		assertEquals(IOption.PREPROCESSOR_SYMBOLS, subOpts[1].getValueType());
-		String[] defdSymbols = subOpts[1].getDefinedSymbols();
-		assertEquals(0, defdSymbols.length);
-		assertEquals("-D", subOpts[1].getCommand());
-		// But there is a builtin
-		String[] builtInSymbols = subOpts[1].getBuiltIns();
-		assertEquals(1, builtInSymbols.length);
-		assertEquals("BUILTIN", builtInSymbols[0]);
-		// Broswe type should be none
-		assertEquals(IOption.BROWSE_NONE, subOpts[1].getBrowseType());
-
-		assertEquals("More Includes", subOpts[2].getName());
-		assertEquals(IOption.INCLUDE_PATH, subOpts[2].getValueType());
-		String[] moreIncPath = subOpts[2].getIncludePaths();
-		assertEquals(2, moreIncPath.length);
-		assertEquals("C:\\home\\tester/include", moreIncPath[0]);
-		assertEquals("-I", subOpts[2].getCommand());
-		assertEquals(IOption.BROWSE_DIR, subOpts[2].getBrowseType());
-		
-		// Check the user object option
-		assertEquals("User Objects", subOpts[3].getName());
-		assertEquals(IOption.OBJECTS, subOpts[3].getValueType());
-		String[] objs = subOpts[3].getUserObjects();
-		assertEquals(2, objs.length);
-		assertEquals("obj1.o", objs[0]);
-		assertEquals("obj2.o", objs[1]);
-		assertEquals(IOption.BROWSE_FILE, subOpts[3].getBrowseType());
-		
-		// Get the configs for this target; it should inherit all the configs defined for the parent
-		IConfiguration[] configs = target.getConfigurations();
-		assertEquals(4, configs.length);
-		assertEquals("Sub Config", configs[0].getName());
-		assertEquals("Root Config", configs[1].getName());
-		assertEquals("Root Override Config", configs[2].getName());
-		assertEquals("Complete Override Config", configs[3].getName());
-	}
-
-	private void checkForwardTargets(ITarget parent, ITarget child, ITarget grandchild) {
-		// check that the target parent reference has been resolved.
-		assertEquals(parent, child.getParent());
-		assertEquals(child, grandchild.getParent());
-		
-		// get the parent tool
-		ITool[] parentTools = parent.getTools();
-		assertEquals(1, parentTools.length);
-		ITool parentTool = parentTools[0];
-		assertNotNull(parentTool);
-
-		// check option categories
-		IOption option = parentTool.getOption("test.forward.option");
-		assertNotNull(option);
-		IOptionCategory[] firstLevel = parentTool.getTopOptionCategory()
-			.getChildCategories();
-		assertEquals(1, firstLevel.length);
-		IOptionCategory[] secondLevel = firstLevel[0].getChildCategories();
-		assertEquals(1, secondLevel.length);
-		assertEquals(0, secondLevel[0].getChildCategories().length);
-		IOption[] optList = secondLevel[0].getOptions(null);
-		assertEquals(1, optList.length);
-		assertEquals(option, optList[0]);
-		
-		// get the tool reference from the child
-		ITool[] childTools = child.getTools();
-		assertEquals(2, childTools.length);
-		IToolReference childToolRef = (IToolReference)childTools[1];
-		assertEquals(parentTool, childToolRef.getTool());
-		
-		// get and check the option reference
-		OptionReference optRef = (OptionReference)
-			childToolRef.getOption("test.forward.option");
-		assertEquals(option, optRef.getOption());
-		
-		// get the tool reference from the grandchild
-		ITool[] grandTools = grandchild.getTools();
-		assertEquals(3, grandTools.length);
-		IToolReference grandToolRef = (IToolReference)grandTools[2];
-		assertEquals(parentTool, grandToolRef.getTool());
-		
-	}
-	
-	public void checkProviderTarget(ITarget target) throws Exception {
-		Properties props = new Properties();
-		props.load(getClass().getResourceAsStream("test_commands"));
-
-		// check that this target is in the file
-		String command = props.getProperty(target.getId());
-		assertNotNull(command);
-		
-		ITarget parent = target.getParent();
-		assertNotNull(parent);
-		assertEquals("test.forward.parent.target", parent.getId());
-		
-		ITool[] tools = target.getTools();
-		assertEquals(2, tools.length);
-		ITool toolRef = tools[1];
-		assertTrue(toolRef instanceof IToolReference);
-		assertEquals(toolRef.getId(), "test.forward.tool");
-		assertEquals(command, toolRef.getToolCommand());
-	}
-	
-	/**
-	 * Remove all the project information associated with the project used during test.
-	 */
-	public void cleanup() {
-		removeProject(projectName);
-	}
-	
-	/* (non-Javadoc)
-	 * Create a new project named <code>name</code> or return the project in 
-	 * the workspace of the same name if it exists.
-	 * 
-	 * @param name The name of the project to create or retrieve.
-	 * @return 
-	 * @throws CoreException
-	 */
-	private IProject createProject(String name) throws CoreException {
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		IProject newProjectHandle = root.getProject(name);
-		IProject project = null;
-		
-		if (!newProjectHandle.exists()) {
-			IWorkspace workspace = ResourcesPlugin.getWorkspace();
-			IWorkspaceDescription workspaceDesc = workspace.getDescription();
-			workspaceDesc.setAutoBuilding(false);
-			workspace.setDescription(workspaceDesc);
-			IProjectDescription description = workspace.newProjectDescription(newProjectHandle.getName());
-			//description.setLocation(root.getLocation());
-			project = CCorePlugin.getDefault().createCProject(description, newProjectHandle, new NullProgressMonitor(), MakeCorePlugin.MAKE_PROJECT_ID);
-		} else {
-			newProjectHandle.refreshLocal(IResource.DEPTH_INFINITE, null);
-			project = newProjectHandle;
-		}
-        
-		// Open the project if we have to
-		if (!project.isOpen()) {
-			project.open(new NullProgressMonitor());
-		}
-				
-		return project;	
-	}
-	
-	/**
-	 * Remove the <code>IProject</code> with the name specified in the argument from the 
-	 * receiver's workspace.
-	 *  
-	 * @param name
-	 */
-	private void removeProject(String name) {
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		IProject project = root.getProject(name);
-		if (project.exists()) {
-			try {
-				project.delete(true, true, null);
-			} catch (CoreException e) {
-				assertTrue(false);
-			}
-		}
-	}
-	
-	/**
-	 * Test that the build artifact of a <code>ITarget</code> can be modified
-	 * programmatically.
-	 */
-	public void testTargetBuildArtifact () throws CoreException {
-		// Open the test project
-		IProject project = createProject(projectName);
-		
-		// Make sure there is one and only one target
-		ITarget[] definedTargets = ManagedBuildManager.getTargets(project);
-		assertEquals(1, definedTargets.length);
-		ITarget rootTarget = definedTargets[0];
-		
-		// Set the build artifact of the target
-		String ext = rootTarget.getArtifactExtension();
-		String name = project.getName() + "." + ext;
-		rootTarget.setArtifactName(name);
-		
-		// Save, close, reopen and test again
-		ManagedBuildManager.saveBuildInfo(project, false);
-		project.close(null);
-		ManagedBuildManager.removeBuildInfo(project);
-		project.open(null);
-
-		// Make sure there is one and only one target
-		definedTargets = ManagedBuildManager.getTargets(project);
-		assertEquals(1, definedTargets.length);
-		rootTarget = definedTargets[0];
-		assertEquals(name, rootTarget.getArtifactName());
-	}
-
-	public void testThatAlwaysFails() {
-		assertTrue(false);
-	}
-	
-	public void testBug43450 () throws Exception{
-		IProject project = createProject( projectName );
-		
-		FileManager fileManager = new FileManager();
-
-		IFolder folder = project.getProject().getFolder( "includes" );
-		if( !folder.exists() ){
-			folder.create( false, true, null );
-		}
-		
-		IFile file = project.getProject().getFile( "includes/header.h" );
-		if( !file.exists()   ){
-			file.create( new ByteArrayInputStream( "class A { public : static int i; };".getBytes() ), false, null );
-		}
-		
-		IScannerInfoProvider provider = CCorePlugin.getDefault().getScannerInfoProvider(project);
-		IScannerInfo info = provider.getScannerInformation( project );
-		ISourceElementRequestor callback = new NullSourceElementRequestor();
-		
-		IScanner scanner = ParserFactory.createScanner( new StringReader( "#include <header.h>\n int A::i = 1;" ), 
-														"TEST", info, ParserMode.COMPLETE_PARSE, ParserLanguage.CPP, callback, new NullLogService(), null);
-		
-		IParser parser = ParserFactory.createParser( scanner, callback, ParserMode.COMPLETE_PARSE, ParserLanguage.CPP, null );
-		assertTrue( parser.parse() );
-	}
-	
-}
Index: build/org/eclipse/cdt/core/build/managed/tests/TestConfigElement.java
===================================================================
RCS file: build/org/eclipse/cdt/core/build/managed/tests/TestConfigElement.java
diff -N build/org/eclipse/cdt/core/build/managed/tests/TestConfigElement.java
--- build/org/eclipse/cdt/core/build/managed/tests/TestConfigElement.java	18 Mar 2004 23:34:10 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,69 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2004 TimeSys Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * TimeSys Corporation - Initial API and implementation
- **********************************************************************/
-package org.eclipse.cdt.core.build.managed.tests;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
-
-import org.eclipse.cdt.managedbuilder.core.IManagedConfigElement;
-
-public class TestConfigElement implements IManagedConfigElement {
-	
-	private String name;
-	private Map attributeMap;
-	private IManagedConfigElement[] children;
-	
-	public TestConfigElement(String name, String[][] attributes, 
-			IManagedConfigElement[] children) {
-		this.name = name;
-		this.children = children;
-		this.attributeMap = new TreeMap();
-		for (int i = 0; i < attributes.length; i++) {
-			attributeMap.put(attributes[i][0], attributes[i][1]);
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.managedbuilder.core.IManagedConfigElement#getName()
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.managedbuilder.core.IManagedConfigElement#getAttribute(java.lang.String)
-	 */
-	public String getAttribute(String name) {
-		return (String)attributeMap.get(name);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.managedbuilder.core.IManagedConfigElement#getChildren()
-	 */
-	public IManagedConfigElement[] getChildren() {
-		return children;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.managedbuilder.core.IManagedConfigElement#getChildren(java.lang.String)
-	 */
-	public IManagedConfigElement[] getChildren(String elementName) {
-		List ret = new ArrayList(children.length);
-		for (int i = 0; i < children.length; i++) {
-			if (children[i].getName().equals(elementName)) {
-				ret.add(children[i]);
-			}
-		}
-		return (IManagedConfigElement[])ret.toArray(new IManagedConfigElement[ret.size()]);
-	}
-}
Index: build/org/eclipse/cdt/core/build/managed/tests/TestManagedConfigProvider.java
===================================================================
RCS file: build/org/eclipse/cdt/core/build/managed/tests/TestManagedConfigProvider.java
diff -N build/org/eclipse/cdt/core/build/managed/tests/TestManagedConfigProvider.java
--- build/org/eclipse/cdt/core/build/managed/tests/TestManagedConfigProvider.java	18 Mar 2004 23:34:10 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,67 +0,0 @@
-/**********************************************************************
- * Copyright (c) 2004 TimeSys Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- * 
- * Contributors: 
- * TimeSys Corporation - Initial API and implementation
- **********************************************************************/
-package org.eclipse.cdt.core.build.managed.tests;
-
-import java.util.Iterator;
-import java.util.Properties;
-
-import org.eclipse.cdt.managedbuilder.core.IConfiguration;
-import org.eclipse.cdt.managedbuilder.core.IManagedConfigElement;
-import org.eclipse.cdt.managedbuilder.core.IManagedConfigElementProvider;
-import org.eclipse.cdt.managedbuilder.core.ITarget;
-import org.eclipse.cdt.managedbuilder.core.ITool;
-
-public class TestManagedConfigProvider implements IManagedConfigElementProvider {
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.cdt.managedbuilder.core.IManagedConfigProvider#getConfigElements()
-	 */
-	public IManagedConfigElement[] getConfigElements() {
-		try {
-			Properties props = new Properties();
-			props.load(getClass().getResourceAsStream("test_commands"));
-			IManagedConfigElement[] ret = new IManagedConfigElement[props.size()];
-			Iterator it = props.keySet().iterator();
-			int i = 0;
-			while (it.hasNext()) {
-				String targetId = (String)it.next();
-				String command = props.getProperty(targetId);
-				ret[i++] = createTarget(targetId, command);
-			}
-			return ret;
-		} catch (Exception ex) {
-			ex.printStackTrace();
-		}
-		return new IManagedConfigElement[0];
-	}
-
-	private IManagedConfigElement createTarget(String targetId, String command) {
-		IManagedConfigElement toolRef = new TestConfigElement(
-			IConfiguration.TOOLREF_ELEMENT_NAME, 
-			new String[][] {
-					{ITool.ID, "test.forward.tool"},
-					{ITool.COMMAND, command}},
-			new IManagedConfigElement[0]);
-				
-		IManagedConfigElement target = new TestConfigElement(
-			ITarget.TARGET_ELEMENT_NAME,
-			new String[][] {
-					{ITarget.ID, targetId},
-					{ITarget.NAME, targetId.substring(targetId.lastIndexOf('.')+1).
-						replace('_', ' ')},
-					{ITarget.PARENT, "test.forward.parent.target"},
-					{ITarget.IS_TEST, "true"},
-					{ITarget.OS_LIST, "win32,linux,solaris"}},
-			new IManagedConfigElement[] {toolRef});
-		
-		return target;
-	}
-}
Index: build/org/eclipse/cdt/core/build/managed/tests/test_commands
===================================================================
RCS file: build/org/eclipse/cdt/core/build/managed/tests/test_commands
diff -N build/org/eclipse/cdt/core/build/managed/tests/test_commands
--- build/org/eclipse/cdt/core/build/managed/tests/test_commands	18 Mar 2004 23:34:10 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,3 +0,0 @@
-test.provider.Test_One=cmd1
-test.provider.Test_Two=cmd2
-test.provider.Test_Three=cmd
\ No newline at end of file
Index: suite/org/eclipse/cdt/core/suite/AutomatedIntegrationSuite.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core.tests/suite/org/eclipse/cdt/core/suite/AutomatedIntegrationSuite.java,v
retrieving revision 1.26
diff -u -r1.26 AutomatedIntegrationSuite.java
--- suite/org/eclipse/cdt/core/suite/AutomatedIntegrationSuite.java	17 Mar 2004 13:48:54 -0000	1.26
+++ suite/org/eclipse/cdt/core/suite/AutomatedIntegrationSuite.java	23 Apr 2004 14:27:47 -0000
@@ -9,7 +9,6 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import org.eclipse.cdt.core.build.managed.tests.ManagedBuildTests;
 import org.eclipse.cdt.core.build.managed.tests.StandardBuildTests;
 import org.eclipse.cdt.core.cdescriptor.tests.CDescriptorTests;
 import org.eclipse.cdt.core.indexer.tests.DependencyTests;
@@ -51,7 +50,6 @@
 		
 		// Add all success tests
 		suite.addTest(CDescriptorTests.suite());
-		suite.addTest(ManagedBuildTests.suite());
 		suite.addTest(StandardBuildTests.suite());
 		suite.addTest(ParserTestSuite.suite());
 		suite.addTest(AllCoreTests.suite());

Back to the top