diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/plugin.xml b/build/org.eclipse.cdt.managedbuilder.core.tests/plugin.xml
index 4b200cbdd1a..561f09a12cd 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/plugin.xml
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/plugin.xml
@@ -3830,5 +3830,130 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedProject30MakefileTests.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedProject30MakefileTests.java
index 82a4ea13ea4..c0b65d7972f 100644
--- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedProject30MakefileTests.java
+++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedProject30MakefileTests.java
@@ -18,6 +18,7 @@ package org.eclipse.cdt.managedbuilder.core.tests;
import java.io.File;
import java.io.FileFilter;
import java.util.ArrayList;
+import java.util.Iterator;
import junit.framework.Test;
import junit.framework.TestCase;
@@ -26,11 +27,15 @@ import junit.framework.TestSuite;
import org.eclipse.cdt.managedbuilder.core.IAdditionalInput;
import org.eclipse.cdt.managedbuilder.core.IInputType;
import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
+import org.eclipse.cdt.managedbuilder.core.IManagedProject;
import org.eclipse.cdt.managedbuilder.core.IOutputType;
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
import org.eclipse.cdt.managedbuilder.core.IResourceConfiguration;
import org.eclipse.cdt.managedbuilder.core.ITool;
+import org.eclipse.cdt.managedbuilder.core.IToolChain;
+import org.eclipse.cdt.managedbuilder.internal.core.Tool;
+import org.eclipse.cdt.managedbuilder.internal.core.ToolChain;
import org.eclipse.cdt.managedbuilder.projectconverter.UpdateManagedProjectManager;
import org.eclipse.cdt.managedbuilder.testplugin.CTestPlugin;
import org.eclipse.cdt.managedbuilder.testplugin.ManagedBuildTestHelper;
@@ -71,18 +76,19 @@ public class ManagedProject30MakefileTests extends TestCase {
suite.addTest(new ManagedProject30MakefileTests("testResourceCustomBuildStep"));
suite.addTest(new ManagedProject30MakefileTests("test30_1"));
suite.addTest(new ManagedProject30MakefileTests("test30_2"));
+ suite.addTest(new ManagedProject30MakefileTests("testTopTC"));
return suite;
}
private IProject[] createProject(String projName, IPath location, String projectTypeId, boolean containsZip){
- File testDir = CTestPlugin.getFileInPlugin(new Path("resources/test30Projects/" + projName));
- if(testDir == null) {
- fail("Test project directory " + testDir.getName() + " is missing.");
- return null;
- }
-
ArrayList projectList = null;
if (containsZip) {
+ File testDir = CTestPlugin.getFileInPlugin(new Path("resources/test30Projects/" + projName));
+ if(testDir == null) {
+ fail("Test project directory " + projName + " is missing.");
+ return null;
+ }
+
File projectZips[] = testDir.listFiles(new FileFilter(){
public boolean accept(File pathname){
if(pathname.isDirectory())
@@ -504,4 +510,36 @@ public class ManagedProject30MakefileTests extends TestCase {
IProject[] projects = createProjects("test30_2", null, null, true);
buildProjects(projects, makefiles);
}
+
+ /* (non-Javadoc)
+ * tests 3.0 top-level tool-chain definition
+ */
+ public void testTopTC(){
+ IProject[] projects = createProjects("TopTC", null, "TopTC.target.exe", false);
+ // There should be only one project.
+ assertNotNull(projects);
+ assertEquals(1, projects.length);
+ IProject project = projects[0];
+ // Verify a number of other attributes
+ IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(project);
+ assertNotNull(info);
+ IManagedProject managedProj = info.getManagedProject();
+ assertNotNull(managedProj);
+ IConfiguration[] configs = managedProj.getConfigurations();
+ assertNotNull(configs);
+ assertEquals(2, configs.length);
+ // Make sure that each configuration has a tool-chain with all 5 tools
+ for (int i=0; i