diff options
Diffstat (limited to 'core/org.eclipse.cdt.core.tests/build/org/eclipse/cdt/core/build/managed/tests/StandardBuildTests.java')
-rw-r--r-- | core/org.eclipse.cdt.core.tests/build/org/eclipse/cdt/core/build/managed/tests/StandardBuildTests.java | 385 |
1 files changed, 0 insertions, 385 deletions
diff --git a/core/org.eclipse.cdt.core.tests/build/org/eclipse/cdt/core/build/managed/tests/StandardBuildTests.java b/core/org.eclipse.cdt.core.tests/build/org/eclipse/cdt/core/build/managed/tests/StandardBuildTests.java deleted file mode 100644 index 533bf295b9e..00000000000 --- a/core/org.eclipse.cdt.core.tests/build/org/eclipse/cdt/core/build/managed/tests/StandardBuildTests.java +++ /dev/null @@ -1,385 +0,0 @@ -package org.eclipse.cdt.core.build.managed.tests; -/********************************************************************** - * Copyright (c) 2002,2004 Rational Software Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Common Public License v0.5 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/cpl-v05.html - * - * Contributors: - * IBM Rational Software - Initial API and implementation -***********************************************************************/ - -import java.util.Arrays; -import java.util.Map; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -import org.eclipse.cdt.core.CCProjectNature; -import org.eclipse.cdt.core.CCorePlugin; -import org.eclipse.cdt.core.CProjectNature; -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.make.core.IMakeBuilderInfo; -import org.eclipse.cdt.make.core.MakeBuilder; -import org.eclipse.cdt.make.core.MakeCorePlugin; -import org.eclipse.cdt.make.core.MakeProjectNature; -import org.eclipse.cdt.make.core.MakeScannerInfo; -import org.eclipse.cdt.make.core.MakeScannerProvider; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.resources.IWorkspaceRoot; -import org.eclipse.core.resources.IWorkspaceRunnable; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IProgressMonitor; -import org.eclipse.core.runtime.NullProgressMonitor; -import org.eclipse.core.runtime.Path; - -public class StandardBuildTests extends TestCase { - private static final String DEFAULT_BUILD_COMMAND = "make"; - private static final String EMPTY_STRING = ""; - private static final boolean OFF = false; - private static final boolean ON = true; - private static final String OVR_BUILD_ARGS = "-f"; - private static final String OVR_BUILD_COMMAND = "/home/tester/bin/nmake"; - private static final String OVR_BUILD_LOCATION = "src"; - private static final String[] OVR_INC_PATHS = {new Path("/test").toOSString(), new Path("C:\\windows").toOSString(), new Path("//dev/home/include").toOSString()}; - private static final String[] OVR_PREPROC_SYMS = {"_RELEASE", "NO ", " YES=1"}; - private static final String PROJECT_NAME = "StandardBuildTest"; - - private class ScannerListener implements IScannerInfoChangeListener { - private final String[] expectedPaths = {new Path("/usr/include").toOSString(), new Path("/home/tester/include").toOSString(), new Path("/opt/gnome/include").toOSString()}; - private final String[] expectedSymbols = {"_DEBUG", "TRUE=1", "FALSE ", ""}; - private boolean bNotified = false; - - public void changeNotification(IResource project, IScannerInfo info) { - // Are there any symbols - Map definedSymbols = info.getDefinedSymbols(); - if (!definedSymbols.isEmpty()) { - assertTrue(definedSymbols.containsKey(expectedSymbols[0])); - assertEquals(EMPTY_STRING, (String)definedSymbols.get(expectedSymbols[0])); - assertTrue(definedSymbols.containsKey("TRUE")); - assertEquals("1", (String)definedSymbols.get("TRUE")); - assertFalse(definedSymbols.containsKey(expectedSymbols[2])); - assertTrue(definedSymbols.containsKey(expectedSymbols[2].trim())); - assertEquals(EMPTY_STRING, (String)definedSymbols.get(expectedSymbols[2].trim())); - // We should have discarded the empty string - assertFalse(definedSymbols.containsKey("")); - } - - // What paths have been set - String[] paths = info.getIncludePaths(); - if (paths.length > 0) { - assertTrue(Arrays.equals(expectedPaths, paths)); - } - bNotified = true; - } - /** - * @return - */ - public String[] getExpectedPaths() { - return expectedPaths; - } - - public boolean triggedNotification() { - return bNotified; - } - /** - * @return - */ - public String[] getExpectedSymbols() { - return expectedSymbols; - } - - } - /** - * @param name - */ - public StandardBuildTests(String name) { - super(name); - } - - public static Test suite() { - TestSuite suite = new TestSuite(StandardBuildTests.class.getName()); - - // Add the relevant tests to the suite - suite.addTest(new StandardBuildTests("testProjectCreation")); - suite.addTest(new StandardBuildTests("testProjectSettings")); - suite.addTest(new StandardBuildTests("testProjectConversion")); - suite.addTest(new StandardBuildTests("testScannerListenerInterface")); - suite.addTest(new StandardBuildTests("testProjectCleanup")); - - return suite; - } - - private void checkDefaultProjectSettings(IProject project) throws Exception { - assertNotNull(project); - - // There should not be any include path or defined symbols for the project - MakeScannerInfo scannerInfo = MakeScannerProvider.getDefault().getMakeScannerInfo(project, true); - assertNotNull(scannerInfo); - String[] includePaths = scannerInfo.getIncludePaths(); - assertNotNull(includePaths); - assertEquals(0, includePaths.length); - String[] definedSymbols = scannerInfo.getPreprocessorSymbols(); - assertNotNull(definedSymbols); - assertEquals(0, definedSymbols.length); - - IMakeBuilderInfo builderInfo = MakeCorePlugin.createBuildInfo(project, MakeBuilder.BUILDER_ID); - // Check the rest of the project information - assertEquals(ON, builderInfo.isDefaultBuildCmd()); - assertEquals(OFF,builderInfo.isStopOnError()); - assertEquals(new Path(DEFAULT_BUILD_COMMAND), builderInfo.getBuildCommand()); - assertEquals(EMPTY_STRING, builderInfo.getBuildArguments()); - assertEquals(false, builderInfo.isAutoBuildEnable()); - assertEquals("all", builderInfo.getAutoBuildTarget()); - assertEquals(true, builderInfo.isIncrementalBuildEnabled()); - assertEquals("all", builderInfo.getIncrementalBuildTarget()); - assertEquals(true, builderInfo.isFullBuildEnabled()); - assertEquals("clean all", builderInfo.getFullBuildTarget()); - } - - private void checkOverriddenProjectSettings(IProject project) throws Exception { - assertNotNull(project); - - IScannerInfo scannerInfo = CCorePlugin.getDefault().getScannerInfoProvider(project).getScannerInformation(project); - assertNotNull(scannerInfo); - String[] includePaths = scannerInfo.getIncludePaths(); - assertNotNull(includePaths); - assertEquals(3, includePaths.length); - assertTrue(Arrays.equals(includePaths, OVR_INC_PATHS)); - Map definedSymbols = scannerInfo.getDefinedSymbols(); - assertNotNull(definedSymbols); - assertEquals(3, definedSymbols.size()); - assertTrue(definedSymbols.containsKey("_RELEASE")); - assertEquals("", definedSymbols.get("_RELEASE")); - assertTrue(definedSymbols.containsKey("YES")); - assertEquals("1", definedSymbols.get("YES")); - assertTrue(definedSymbols.containsKey("NO")); - assertEquals("", definedSymbols.get("NO")); - - // Check the rest of the project information - IMakeBuilderInfo builderInfo = MakeCorePlugin.createBuildInfo(project, MakeBuilder.BUILDER_ID); - assertEquals(OFF, builderInfo.isDefaultBuildCmd()); - assertEquals(ON, builderInfo.isStopOnError()); - assertEquals(new Path(OVR_BUILD_COMMAND), builderInfo.getBuildCommand()); - assertEquals(OVR_BUILD_ARGS, builderInfo.getBuildArguments()); - assertEquals(new Path(OVR_BUILD_LOCATION), builderInfo.getBuildLocation()); - } - - /** - * 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(final String name) throws CoreException { - final Object[] result = new Object[1]; - ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() { - - public void run(IProgressMonitor monitor) throws CoreException { - IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); - IProject project = root.getProject(name); - if (!project.exists()) { - project.create(null); - } else { - project.refreshLocal(IResource.DEPTH_INFINITE, null); - } - - if (!project.isOpen()) { - project.open(null); - } - CCorePlugin.getDefault().convertProjectToC(project, new NullProgressMonitor(), MakeCorePlugin.MAKE_PROJECT_ID); - result[0] = project; - } - }, null); - return (IProject)result[0]; - } - - /** - * 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, false, null); - } catch (CoreException e) { - assertTrue(false); - } - } - } - - /** - * Remove all the project information associated with the project used during test. - */ - public void testProjectCleanup() { - removeProject(PROJECT_NAME); - } - - public void testProjectConversion() throws Exception { - // Open the project - IProject project = null; - try { - project = createProject(PROJECT_NAME); - } catch (CoreException e) { - fail("StandardBuildTest testProjectConversion failed opening project: " + e.getLocalizedMessage()); - } - assertNotNull(project); - - // Check the settings (they should be the override values) - checkOverriddenProjectSettings(project); - - // Now convert the project - try { - CCorePlugin.getDefault().convertProjectFromCtoCC(project, new NullProgressMonitor()); - } catch (CoreException e) { - fail("StandardBuildTest testProjectConversion failed to convert project: " + e.getLocalizedMessage()); - } - - // Close, and Reopen the project - try { - project.close(new NullProgressMonitor()); - } catch (CoreException e) { - fail("StandardBuildTest testProjectConversion failed to close project " + e.getLocalizedMessage()); - } - try { - project.open(new NullProgressMonitor()); - } catch (CoreException e) { - fail ("StandardBuildTest testProjectConversion failed to open project " + e.getLocalizedMessage()); - } - - // Make sure it has a CCNature - try { - project.hasNature(CCProjectNature.CC_NATURE_ID); - } catch (CoreException e) { - fail("StandardBuildTest testProjectConversion failed getting nature: " + e.getLocalizedMessage()); - } - - // Nothing should have changed in the settings - checkOverriddenProjectSettings(project); - } - - /** - * - */ - public void testProjectCreation() throws Exception { - // Create a new project - IProject project = null; - try { - project = createProject(PROJECT_NAME); - // Convert the new project to a standard make project - MakeProjectNature.addNature(project, null); - } catch (CoreException e) { - fail("StandardBuildTest testProjectCreation failed creating project: " + e.getLocalizedMessage()); - } - assertNotNull(project); - - // Make sure it has a CNature - try { - project.hasNature(CProjectNature.C_NATURE_ID); - } catch (CoreException e) { - fail("StandardBuildTest testProjectCreation failed getting nature: " + e.getLocalizedMessage()); - } - // Make sure it has a MakeNature - try { - project.hasNature(MakeProjectNature.NATURE_ID); - } catch (CoreException e) { - fail("StandardBuildTest testProjectCreation failed getting nature: " + e.getLocalizedMessage()); - } - // Check the default settings - checkDefaultProjectSettings(project); - } - - public void testProjectSettings() throws Exception { - // Get the project - IProject project = null; - try { - project = createProject(PROJECT_NAME); - } catch (CoreException e) { - fail("StandardBuildTest testProjectSettings failed opening project: " + e.getLocalizedMessage()); - } - assertNotNull(project); - - // Change the settings - MakeScannerInfo scannerInfo = MakeScannerProvider.getDefault().getMakeScannerInfo(project, false); - scannerInfo.setIncludePaths(OVR_INC_PATHS); - scannerInfo.setPreprocessorSymbols(OVR_PREPROC_SYMS); - scannerInfo.update(); - - // Use the build info for the rest of the settings - IMakeBuilderInfo builderInfo = MakeCorePlugin.createBuildInfo(project, MakeBuilder.BUILDER_ID); - builderInfo.setStopOnError(ON); - builderInfo.setUseDefaultBuildCmd(OFF); - builderInfo.setBuildCommand(new Path(OVR_BUILD_COMMAND)); - builderInfo.setBuildArguments(OVR_BUILD_ARGS); - builderInfo.setBuildLocation(new Path(OVR_BUILD_LOCATION)); - try { - project.close(new NullProgressMonitor()); - } catch (CoreException e) { - fail("StandardBuildTest testProjectSettings failed to close project " + e.getLocalizedMessage()); - } - try { - project.open(new NullProgressMonitor()); - } catch (CoreException e) { - fail ("StandardBuildTest testProjectSettings failed to open project " + e.getLocalizedMessage()); - } - - // Retest - checkOverriddenProjectSettings(project); - } - - public void testScannerListenerInterface() throws Exception { - // Get the project - IProject project = null; - try { - project = createProject(PROJECT_NAME); - } catch (CoreException e) { - fail("StandardBuildTest testScannerListernerInterface failed opening project: " + e.getLocalizedMessage()); - } - assertNotNull(project); - - // Find the scanner info provider for this project - IScannerInfoProvider provider = CCorePlugin.getDefault().getScannerInfoProvider(project); - assertNotNull(provider); - - // Check out the information we can get through the interface - IScannerInfo currentSettings = provider.getScannerInformation(project); - Map currentSymbols = currentSettings.getDefinedSymbols(); - assertTrue(currentSymbols.containsKey("_RELEASE")); - assertEquals("", currentSymbols.get("_RELEASE")); - assertTrue(currentSymbols.containsKey("YES")); - assertEquals("1", currentSymbols.get("YES")); - assertTrue(currentSymbols.containsKey("NO")); - assertEquals("", currentSymbols.get("NO")); - String[] currentPaths = currentSettings.getIncludePaths(); - assertTrue(Arrays.equals(OVR_INC_PATHS, currentPaths)); - - // Remove what's there - MakeScannerInfo info = MakeScannerProvider.getDefault().getMakeScannerInfo(project, false); - info.setIncludePaths(new String[0]); - info.setPreprocessorSymbols(new String[0]); - info.update(); - // Subscribe - ScannerListener listener = new ScannerListener(); - provider.subscribe(project, listener); - - // Change the settings - info.setIncludePaths(listener.getExpectedPaths()); - info.setPreprocessorSymbols(listener.getExpectedSymbols()); - info.update(); - assertEquals(true, listener.triggedNotification()); - // Unsubscribe - provider.unsubscribe(project, listener); - } -} |