~ubuntu-branches/debian/sid/eclipse-cdt/sid

« back to all changes in this revision

Viewing changes to build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/build/core/scannerconfig/tests/CfgScannerConfigProfileManagerTests.java

  • Committer: Package Import Robot
  • Author(s): Jakub Adam
  • Date: 2011-10-06 21:15:04 UTC
  • mfrom: (1.1.4)
  • Revision ID: package-import@ubuntu.com-20111006211504-8dutmljjih0zikfv
Tags: 8.0.1-1
* New upstream release.
* Split the JNI packages into a separate architecture dependent
  package and made eclipse-cdt architecture independent.
* Install JNI libraries into multiarch aware location
* Bumped Standards-Version to 3.9.2.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*******************************************************************************
 
2
 *  Copyright (c) 2009 IBM Corporation and others.
 
3
 *  All rights reserved. This program and the accompanying materials
 
4
 *  are made available under the terms of the Eclipse Public License v1.0
 
5
 *  which accompanies this distribution, and is available at
 
6
 *  http://www.eclipse.org/legal/epl-v10.html
 
7
 * 
 
8
 *  Contributors:
 
9
 *      IBM Corporation - initial API and implementation
 
10
 *******************************************************************************/
 
11
package org.eclipse.cdt.build.core.scannerconfig.tests;
 
12
 
 
13
import java.util.Map;
 
14
 
 
15
import junit.framework.Test;
 
16
import junit.framework.TestSuite;
 
17
 
 
18
import org.eclipse.cdt.build.core.scannerconfig.CfgInfoContext;
 
19
import org.eclipse.cdt.build.core.scannerconfig.ICfgScannerConfigBuilderInfo2Set;
 
20
import org.eclipse.cdt.build.internal.core.scannerconfig2.CfgScannerConfigProfileManager;
 
21
import org.eclipse.cdt.core.model.CoreModel;
 
22
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
 
23
import org.eclipse.cdt.core.settings.model.ICProjectDescription;
 
24
import org.eclipse.cdt.core.testplugin.util.BaseTestCase;
 
25
import org.eclipse.cdt.make.core.scannerconfig.IScannerConfigBuilderInfo2;
 
26
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
 
27
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
 
28
import org.eclipse.cdt.managedbuilder.testplugin.ManagedBuildTestHelper;
 
29
import org.eclipse.core.resources.IProject;
 
30
import org.eclipse.core.runtime.Assert;
 
31
import org.eclipse.core.runtime.CoreException;
 
32
 
 
33
public class CfgScannerConfigProfileManagerTests extends BaseTestCase {
 
34
        IProject fProject;
 
35
 
 
36
        public static Test suite() {
 
37
                TestSuite suite = new TestSuite(CfgScannerConfigProfileManagerTests.class.getName());
 
38
                suite.addTestSuite(CfgScannerConfigProfileManagerTests.class);
 
39
                return suite;
 
40
        }
 
41
 
 
42
        @Override
 
43
        protected void setUp() throws Exception {
 
44
                fProject = ManagedBuildTestHelper.createProject("CfgScannerConfigProfileManagerProj",
 
45
                                                                                                                "cdt.managedbuild.target.gnu.exe");
 
46
                ManagedBuildTestHelper.addManagedBuildNature(fProject);
 
47
        }
 
48
 
 
49
        @Override
 
50
        protected void tearDown() throws Exception {
 
51
                ManagedBuildTestHelper.removeProject(fProject.getName());
 
52
        }
 
53
 
 
54
        /**
 
55
         * Basic testing of Config based ScannerConfigProfile management.
 
56
         * 
 
57
         * This test runs through some of the funcationality used by the DiscoveryTab
 
58
         * @throws CoreException
 
59
         */
 
60
        public void testBasicCfgScannerConfigProfileChanges() throws CoreException {
 
61
                ICProjectDescription prjDesc = CoreModel.getDefault().getProjectDescription(fProject);
 
62
                ICConfigurationDescription[] cfgDescs = prjDesc.getConfigurations();
 
63
                assertTrue(cfgDescs.length > 0);
 
64
 
 
65
                IConfiguration cfg0 = ManagedBuildManager.getConfigurationForDescription(cfgDescs[0]);
 
66
                ICfgScannerConfigBuilderInfo2Set scbis = CfgScannerConfigProfileManager.getCfgScannerConfigBuildInfo(cfg0);
 
67
 
 
68
                // Test changing ICfgScannerConfigBuilderInfo2Set settings
 
69
                boolean resCfgTypeDiscovery = scbis.isPerRcTypeDiscovery();
 
70
                scbis.setPerRcTypeDiscovery(!resCfgTypeDiscovery);
 
71
 
 
72
                // Test changing settings on one of the ScannerConfigBuilderInfos
 
73
                Map<CfgInfoContext, IScannerConfigBuilderInfo2> infoMap = scbis.getInfoMap();
 
74
                CfgInfoContext cic = infoMap.entrySet().iterator().next().getKey();
 
75
                IScannerConfigBuilderInfo2 scbi = infoMap.entrySet().iterator().next().getValue();
 
76
                // Get all the settings and invert them
 
77
                boolean autoDiscovery = scbi.isAutoDiscoveryEnabled();
 
78
                scbi.setAutoDiscoveryEnabled(!autoDiscovery);
 
79
                boolean problemReport = scbi.isProblemReportingEnabled();
 
80
                scbi.setProblemReportingEnabled(!problemReport);
 
81
                boolean buildOutputParser = scbi.isBuildOutputParserEnabled();
 
82
                scbi.setBuildOutputParserEnabled(!buildOutputParser);
 
83
                boolean buildOutputFileAction = scbi.isBuildOutputFileActionEnabled();
 
84
                scbi.setBuildOutputFileActionEnabled(!buildOutputFileAction);
 
85
                String buildOutputFilePath = scbi.getBuildOutputFilePath();
 
86
                scbi.setBuildOutputFilePath("dummyFile");
 
87
                // Persist the changes
 
88
                scbis.applyInfo(cic, scbi);
 
89
 
 
90
                // Save the project description
 
91
                CoreModel.getDefault().setProjectDescription(fProject, prjDesc);
 
92
                fProject.close(null);
 
93
                fProject.open(null);
 
94
 
 
95
                // Check that the changes have persisted
 
96
                prjDesc = CoreModel.getDefault().getProjectDescription(fProject);
 
97
                cfg0 = ManagedBuildManager.getConfigurationForDescription(prjDesc.getConfigurations()[0]);
 
98
                scbis = CfgScannerConfigProfileManager.getCfgScannerConfigBuildInfo(cfg0);
 
99
                assertTrue(scbis.isPerRcTypeDiscovery() != resCfgTypeDiscovery);
 
100
                scbi = scbis.getInfo(cic);
 
101
                // Check that the changes have persisted
 
102
                Assert.isTrue(autoDiscovery != scbi.isAutoDiscoveryEnabled());
 
103
                Assert.isTrue(problemReport != scbi.isProblemReportingEnabled());
 
104
                Assert.isTrue(buildOutputParser != scbi.isBuildOutputParserEnabled());
 
105
                Assert.isTrue(buildOutputFileAction != scbi.isBuildOutputFileActionEnabled());
 
106
                Assert.isTrue("dummyFile".equals(scbi.getBuildOutputFilePath()));
 
107
 
 
108
                // Test restore defaults
 
109
                scbis.applyInfo(cic, null);
 
110
                // Save the project description
 
111
                CoreModel.getDefault().setProjectDescription(fProject, prjDesc);
 
112
                fProject.close(null);
 
113
                fProject.open(null);
 
114
                
 
115
                // Check settings are back to original
 
116
                prjDesc = CoreModel.getDefault().getProjectDescription(fProject);
 
117
                cfg0 = ManagedBuildManager.getConfigurationForDescription(prjDesc.getConfigurations()[0]);
 
118
                scbis = CfgScannerConfigProfileManager.getCfgScannerConfigBuildInfo(cfg0);
 
119
                scbi = scbis.getInfo(cic);
 
120
                Assert.isTrue(autoDiscovery == scbi.isAutoDiscoveryEnabled());
 
121
                Assert.isTrue(problemReport == scbi.isProblemReportingEnabled());
 
122
                Assert.isTrue(buildOutputParser == scbi.isBuildOutputParserEnabled());
 
123
                Assert.isTrue(buildOutputFileAction == scbi.isBuildOutputFileActionEnabled());
 
124
                Assert.isTrue(buildOutputFilePath.equals(buildOutputFilePath));
 
125
        }
 
126
 
 
127
}