Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Blackburn2009-11-16 22:27:04 +0000
committerJames Blackburn2009-11-16 22:27:04 +0000
commit3308a839d6068a27f5d805a03092a6a2565dea81 (patch)
treee94a652c46ad12b587a83ed40f50df2c12b2bdc3 /core/org.eclipse.cdt.core.tests
parentb60a11baac777078efa4b520f57df81410cab5c9 (diff)
downloadorg.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.java59
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.
*

Back to the top