diff options
author | James Blackburn | 2009-11-16 22:27:04 +0000 |
---|---|---|
committer | James Blackburn | 2009-11-16 22:27:04 +0000 |
commit | 3308a839d6068a27f5d805a03092a6a2565dea81 (patch) | |
tree | e94a652c46ad12b587a83ed40f50df2c12b2bdc3 /core/org.eclipse.cdt.core.tests | |
parent | b60a11baac777078efa4b520f57df81410cab5c9 (diff) | |
download | org.eclipse.cdt-3308a839d6068a27f5d805a03092a6a2565dea81.tar.gz org.eclipse.cdt-3308a839d6068a27f5d805a03092a6a2565dea81.tar.xz org.eclipse.cdt-3308a839d6068a27f5d805a03092a6a2565dea81.zip |
Related to fix for Bug 265282 -- don't lose previous unchanged environment on save. Add test.
Diffstat (limited to 'core/org.eclipse.cdt.core.tests')
-rw-r--r-- | core/org.eclipse.cdt.core.tests/misc/org/eclipse/cdt/core/envvar/IEnvironmentVariableManagerTests.java | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/core/org.eclipse.cdt.core.tests/misc/org/eclipse/cdt/core/envvar/IEnvironmentVariableManagerTests.java b/core/org.eclipse.cdt.core.tests/misc/org/eclipse/cdt/core/envvar/IEnvironmentVariableManagerTests.java index 0b72ddbcfb0..52ae4ad7474 100644 --- a/core/org.eclipse.cdt.core.tests/misc/org/eclipse/cdt/core/envvar/IEnvironmentVariableManagerTests.java +++ b/core/org.eclipse.cdt.core.tests/misc/org/eclipse/cdt/core/envvar/IEnvironmentVariableManagerTests.java @@ -10,6 +10,8 @@ *******************************************************************************/ package org.eclipse.cdt.core.envvar; +import java.io.ByteArrayInputStream; + import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; @@ -91,6 +93,63 @@ public class IEnvironmentVariableManagerTests extends TestCase { } + public void testNoChangeToOneVariable() throws Exception { + final IProject project = ResourceHelper.createCDTProjectWithConfig("envProject"); + + // Add another, derived configuration + ICProjectDescription prjDesc = CoreModel.getDefault().getProjectDescription(project); + ICConfigurationDescription desc = prjDesc.getActiveConfiguration(); + final String id1 = desc.getId(); + + IEnvironmentVariableManager envManager = CCorePlugin.getDefault().getBuildEnvironmentManager(); + IContributedEnvironment contribEnv = envManager.getContributedEnvironment(); + + // Try setting an environment variable + final IEnvironmentVariable var = new EnvironmentVariable("FOO", "BAR"); + final IEnvironmentVariable var1 = new EnvironmentVariable("FOO1", "BAR1"); + final IEnvironmentVariable var2 = new EnvironmentVariable("FOO2", "BAR2"); + contribEnv.addVariable(var, prjDesc.getConfigurationById(id1)); + contribEnv.addVariable(var1, prjDesc.getConfigurationById(id1)); + contribEnv.addVariable(var2, prjDesc.getConfigurationById(id1)); + + // Check that the variable exists on config1 + IEnvironmentVariable readVar = envManager.getVariable(var.getName(), prjDesc.getConfigurationById(id1), true); + assertEquals(var, readVar); + readVar = envManager.getVariable(var1.getName(), prjDesc.getConfigurationById(id1), true); + assertEquals(var1, readVar); + readVar = envManager.getVariable(var2.getName(), prjDesc.getConfigurationById(id1), true); + assertEquals(var2, readVar); + + // Save the project description + CoreModel.getDefault().setProjectDescription(project, prjDesc); + + // Close and open the project + project.close(null); + project.open(null); + prjDesc = CoreModel.getDefault().getProjectDescription(project); + final IEnvironmentVariable var3 = new EnvironmentVariable("FOO", "BAZ"); + contribEnv.addVariable(var3, prjDesc.getConfigurationById(id1)); + readVar = envManager.getVariable(var3.getName(), prjDesc.getConfigurationById(id1), true); + assertEquals(var3, readVar); + readVar = envManager.getVariable(var1.getName(), prjDesc.getConfigurationById(id1), true); + assertEquals(var1, readVar); + // Save the project description + CoreModel.getDefault().setProjectDescription(project, prjDesc); + + // Close and open the project + project.close(null); + project.open(null); + prjDesc = CoreModel.getDefault().getProjectDescription(project); + + readVar = envManager.getVariable(var3.getName(), prjDesc.getConfigurationById(id1), true); + assertEquals(var3, readVar); + readVar = envManager.getVariable(var1.getName(), prjDesc.getConfigurationById(id1), true); + assertEquals(var1, readVar); + readVar = envManager.getVariable(var2.getName(), prjDesc.getConfigurationById(id1), true); + assertEquals(var2, readVar); + } + + /** * This bug checks for an environment load race during project open / import. * |