diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/preAndPostBuildSteps/preAndPostBuildSteps.zip b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/preAndPostBuildSteps/preAndPostBuildSteps.zip new file mode 100644 index 00000000000..479cf12b9da Binary files /dev/null and b/build/org.eclipse.cdt.managedbuilder.core.tests/resources/test30Projects/preAndPostBuildSteps/preAndPostBuildSteps.zip differ 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 7eb279485f7..a0b0f3ba5e3 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 @@ -60,6 +60,7 @@ public class ManagedProject30MakefileTests extends TestCase { suite.addTest(new ManagedProject30MakefileTests("test30CopyandDeploy")); suite.addTest(new ManagedProject30MakefileTests("test30DeleteFile")); suite.addTest(new ManagedProject30MakefileTests("test30NoFilesToBuild")); + suite.addTest(new ManagedProject30MakefileTests("testPreAndPostProcessBuildSteps")); suite.addTest(new ManagedProject30MakefileTests("test30_1")); suite.addTest(new ManagedProject30MakefileTests("test30_2")); @@ -391,6 +392,30 @@ public class ManagedProject30MakefileTests extends TestCase { buildDegenerativeProjects(projects, makefiles); } + /* (non-Javadoc) + * tests 3.0 style tool integration: create pre-build and post-build steps and verify that + * the proper commands are generated in the makefile which is created by the managedbuild system + */ + public void testPreAndPostProcessBuildSteps(){ + IPath[] makefiles = { + Path.fromOSString("makefile"), + Path.fromOSString("objects.mk"), + Path.fromOSString("subdir.mk"), + Path.fromOSString("sources.mk")}; + + IProject[] projects = createProjects("preAndPostBuildSteps", null, null, true); + IProject project = projects[0]; + IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(project); + IConfiguration config = info.getDefaultConfiguration(); + IFile projfile = project.getFile("main.cxx"); + config.setPreannouncebuildStep("Pre-announce Build Step"); + config.setPrebuildStep("echo 'executing Pre-Build Step' "); + config.setPostannouncebuildStep("Post-announce Build Step"); + config.setPostbuildStep("echo 'executing Post-Build Step' "); + buildProjects(projects, makefiles); + } + + /* (non-Javadoc) * tests 3.0 style tool integration with pre and post process steps added to typical compile & link */