[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[cdt-patch] Updated JUnit tests for boolean and string option enhancements
|
Hi All,
This JUnit patch contains updated tests
for the two enhancements discussed on the dev group earlier this month,
namely
1. For
a String option, if the defaultValue attribute is present, and contains
a string of length > 0, then the command string (if any) is prepended
to the defaultValue string to form the command line string.
2. Add
a commandFalse attribute to the Option Schema to be used, if specified,
when the value of a Boolean option is False.
The tests have been run on Win32 and
Linux.
Sean Evoy
Rational Software - IBM Software Group
Ottawa, Ontario, Canada
Index: plugin.xml
===================================================================
retrieving revision 1.28
diff -u -r1.28 plugin.xml
--- plugin.xml 19 Mar 2004 16:59:11 -0000 1.28
+++ plugin.xml 22 Mar 2004 21:27:42 -0000
@@ -122,6 +122,14 @@
valueType="string">
</option>
<option
+ defaultValue=""
+ name="Another String Option in Category"
+ category="category"
+ valueType="string"
+ command="-str"
+ id="another.string.option">
+ </option>
+ <option
name="Enumerated Option in Category"
category="category"
id="enumerated.option"
@@ -138,6 +146,13 @@
id="another.enum.option">
</enumeratedOptionValue>
</option>
+ <option
+ name="Boolean Option in Category"
+ category="category"
+ valueType="boolean"
+ id="boolean.false.option"
+ commandFalse="-nob">
+ </option>
</tool>
<configuration
name="Root Config"
@@ -168,8 +183,16 @@
id="string.option">
</optionReference>
<optionReference
+ defaultValue="alsooverridden"
+ id="another.string.option">
+ </optionReference>
+ <optionReference
defaultValue="true"
id="boolean.option">
+ </optionReference>
+ <optionReference
+ defaultValue="true"
+ id="boolean.false.option">
</optionReference>
<optionReference
defaultValue="-e2"
Index: build/org/eclipse/cdt/core/build/managed/tests/ManagedBuildTests.java
===================================================================
retrieving revision 1.24
diff -u -r1.24 ManagedBuildTests.java
--- build/org/eclipse/cdt/core/build/managed/tests/ManagedBuildTests.java 19 Mar 2004 16:59:11 -0000 1.24
+++ build/org/eclipse/cdt/core/build/managed/tests/ManagedBuildTests.java 22 Mar 2004 21:27:43 -0000
@@ -71,6 +71,7 @@
private static final String projectRename = "ManagedBuildRedux";
private static final String rootExt = "toor";
private static final String stringVal = "-c -Wall";
+ private static final String anotherStringVal = "thevalue";
private static final String subExt = "bus";
public ManagedBuildTests(String name) {
@@ -365,9 +366,11 @@
IOptionCategory[] categories = topCategory.getChildCategories();
assertEquals(1, categories.length);
options = categories[0].getOptions(null);
- assertEquals(2, options.length);
+ assertEquals(4, options.length);
ManagedBuildManager.setOption(newConfig, options[0], stringVal);
- ManagedBuildManager.setOption(newConfig, options[1], enumVal);
+ ManagedBuildManager.setOption(newConfig, options[1], anotherStringVal);
+ ManagedBuildManager.setOption(newConfig, options[2], enumVal);
+ ManagedBuildManager.setOption(newConfig, options[3], "False");
// Save, close, reopen and test again
ManagedBuildManager.saveBuildInfo(project, false);
@@ -574,7 +577,7 @@
assertEquals(1, definedTools.length);
ITool rootTool = definedTools[0];
- // Get the options 2 in top category and 2 in its child
+ // Get the options (2) in top category and (4) in its child
IOptionCategory topCategory = rootTool.getTopOptionCategory();
assertEquals("Root Tool", topCategory.getName());
IOption[] options = topCategory.getOptions(null);
@@ -582,7 +585,7 @@
IOptionCategory[] categories = topCategory.getChildCategories();
assertEquals(1, categories.length);
options = categories[0].getOptions(null);
- assertEquals(2, options.length);
+ assertEquals(4, options.length);
// Set the name back
newResource = workspaceRoot.findMember(projectName);
@@ -627,7 +630,7 @@
categories = topCategory.getChildCategories();
assertEquals(1, categories.length);
options = categories[0].getOptions(null);
- assertEquals(2, options.length);
+ assertEquals(4, options.length);
}
private void addManagedBuildNature (IProject project) {
@@ -696,7 +699,7 @@
assertEquals(info.getToolForTarget(expectedOutput), expectedCmd);
// Now check the build flags
- assertEquals(info.getFlagsForSource(ext1), "-La -Lb z -e1");
+ assertEquals(info.getFlagsForSource(ext1), "-La -Lb z -e1 -nob");
assertEquals(info.getFlagsForSource(ext1), info.getFlagsForSource(ext2));
}
@@ -727,7 +730,7 @@
// Check that the options in the new config contain overridden values
IOption[] rootOptions = rootTool.getOptions();
- assertEquals(4, rootOptions.length);
+ assertEquals(6, rootOptions.length);
// First is the new list
assertEquals("List Option in Top", rootOptions[0].getName());
assertEquals(IOption.STRING_LIST, rootOptions[0].getValueType());
@@ -740,22 +743,32 @@
assertEquals(IOption.BOOLEAN, rootOptions[1].getValueType());
assertEquals(boolVal, rootOptions[1].getBooleanValue());
assertEquals("-b", rootOptions[1].getCommand());
- // Next option is a string category
+ // Next option is a string in category
assertEquals("String Option in Category", rootOptions[2].getName());
assertEquals(IOption.STRING, rootOptions[2].getValueType());
assertEquals(stringVal, rootOptions[2].getStringValue());
- // Final option is an enumerated
- assertEquals("Enumerated Option in Category", rootOptions[3].getName());
- assertEquals(IOption.ENUMERATED, rootOptions[3].getValueType());
- String selEnum = rootOptions[3].getSelectedEnum();
+ // Next option is a another string in category
+ assertEquals("Another String Option in Category", rootOptions[3].getName());
+ assertEquals(IOption.STRING, rootOptions[3].getValueType());
+ assertEquals(anotherStringVal, rootOptions[3].getStringValue());
+ assertEquals("-str", rootOptions[3].getCommand());
+ // Next option is an enumerated in category
+ assertEquals("Enumerated Option in Category", rootOptions[4].getName());
+ assertEquals(IOption.ENUMERATED, rootOptions[4].getValueType());
+ String selEnum = rootOptions[4].getSelectedEnum();
assertEquals(enumVal, selEnum);
- String[] enums = rootOptions[3].getApplicableValues();
+ String[] enums = rootOptions[4].getApplicableValues();
assertEquals(2, enums.length);
assertEquals("Default Enum", enums[0]);
assertEquals("Another Enum", enums[1]);
- assertEquals("-e1", rootOptions[3].getEnumCommand(enums[0]));
- assertEquals("-e2", rootOptions[3].getEnumCommand(enums[1]));
- assertEquals("-e2", rootOptions[3].getEnumCommand(selEnum));
+ assertEquals("-e1", rootOptions[4].getEnumCommand(enums[0]));
+ assertEquals("-e2", rootOptions[4].getEnumCommand(enums[1]));
+ assertEquals("-e2", rootOptions[4].getEnumCommand(selEnum));
+ // Final option is a boolean in Category
+ assertEquals("Boolean Option in Category", rootOptions[5].getName());
+ assertEquals(IOption.BOOLEAN, rootOptions[5].getValueType());
+ assertEquals(false, rootOptions[5].getBooleanValue());
+ assertEquals("-nob", rootOptions[5].getCommandFalse());
}
/*
@@ -782,9 +795,9 @@
// Root Tool
ITool rootTool = tools[0];
assertEquals("Root Tool", rootTool.getName());
- // 4 Options are defined in the root tool
+ // 6 Options are defined in the root tool
IOption[] options = rootTool.getOptions();
- assertEquals(4, options.length);
+ assertEquals(6, options.length);
// First option is a 3-element list with 1 built-in
assertEquals("List Option in Top", options[0].getName());
assertEquals(IOption.STRING_LIST, options[0].getValueType());
@@ -805,16 +818,27 @@
assertEquals("String Option in Category", options[2].getName());
assertEquals(IOption.STRING, options[2].getValueType());
assertEquals("x", options[2].getStringValue());
- // Final option is an enumerated
- assertEquals("Enumerated Option in Category", options[3].getName());
- assertEquals(IOption.ENUMERATED, options[3].getValueType());
- assertEquals("Default Enum", options[3].getSelectedEnum());
- valueList = options[3].getApplicableValues();
+ // Next option is another string category
+ assertEquals("Another String Option in Category", options[3].getName());
+ assertEquals(IOption.STRING, options[3].getValueType());
+ assertEquals("", options[3].getStringValue());
+ assertEquals("-str", options[3].getCommand());
+ // Next option is an enumerated
+ assertEquals("Enumerated Option in Category", options[4].getName());
+ assertEquals(IOption.ENUMERATED, options[4].getValueType());
+ assertEquals("Default Enum", options[4].getSelectedEnum());
+ valueList = options[4].getApplicableValues();
assertEquals(2, valueList.length);
assertEquals("Default Enum", valueList[0]);
assertEquals("Another Enum", valueList[1]);
- assertEquals("-e1", options[3].getEnumCommand(valueList[0]));
- assertEquals("-e2", options[3].getEnumCommand(valueList[1]));
+ assertEquals("-e1", options[4].getEnumCommand(valueList[0]));
+ assertEquals("-e2", options[4].getEnumCommand(valueList[1]));
+ // Final option is another boolean
+ assertEquals("Boolean Option in Category", options[5].getName());
+ assertEquals(IOption.BOOLEAN, options[5].getValueType());
+ assertEquals(false, options[5].getBooleanValue());
+ assertNull(options[5].getCommand());
+ assertEquals("-nob", options[5].getCommandFalse());
// Option Categories
IOptionCategory topCategory = rootTool.getTopOptionCategory();
@@ -827,9 +851,11 @@
assertEquals(1, categories.length);
assertEquals("Category", categories[0].getName());
options = categories[0].getOptions(null);
- assertEquals(2, options.length);
+ assertEquals(4, options.length);
assertEquals("String Option in Category", options[0].getName());
- assertEquals("Enumerated Option in Category", options[1].getName());
+ assertEquals("Another String Option in Category", options[1].getName());
+ assertEquals("Enumerated Option in Category", options[2].getName());
+ assertEquals("Boolean Option in Category", options[3].getName());
// There should be 3 defined configs
IConfiguration[] configs = target.getConfigurations();
@@ -872,24 +898,34 @@
assertEquals("-b", options[1].getCommand());
categories = topCategory.getChildCategories();
options = categories[0].getOptions(configs[1]);
- assertEquals(2, options.length);
+ assertEquals(4, options.length);
assertEquals("String Option in Category", options[0].getName());
assertEquals("y", options[0].getStringValue());
- assertEquals("Enumerated Option in Category", options[1].getName());
- valueList = options[1].getApplicableValues();
+ assertEquals("Another String Option in Category", options[1].getName());
+ assertEquals("", options[1].getStringValue());
+ assertEquals("Enumerated Option in Category", options[2].getName());
+ valueList = options[2].getApplicableValues();
assertEquals(2, valueList.length);
assertEquals("Default Enum", valueList[0]);
assertEquals("Another Enum", valueList[1]);
- assertEquals("-e1", options[1].getEnumCommand(valueList[0]));
- assertEquals("-e2", options[1].getEnumCommand(valueList[1]));
+ assertEquals("-e1", options[2].getEnumCommand(valueList[0]));
+ assertEquals("-e2", options[2].getEnumCommand(valueList[1]));
assertEquals(1, tools.length);
- assertEquals("Root Tool", tools[0].getName());
- assertEquals("-r", tools[0].getOutputFlag());
- assertTrue(tools[0].buildsFileType("foo"));
- assertTrue(tools[0].buildsFileType("bar"));
- assertTrue(tools[0].producesFileType("toor"));
- assertTrue(tools[0].isHeaderFile("baz"));
- assertEquals("doIt", tools[0].getToolCommand());
+ assertEquals("Boolean Option in Category", options[3].getName());
+ assertEquals(false, options[3].getBooleanValue());
+ assertNull(options[3].getCommand());
+ assertEquals("-nob", options[3].getCommandFalse());
+ assertEquals(1, tools.length);
+ ITool tool = tools[0];
+ assertNotNull(tool);
+ assertEquals("Root Tool", tool.getName());
+ assertEquals("-r", tool.getOutputFlag());
+ assertTrue(tool.buildsFileType("foo"));
+ assertTrue(tool.buildsFileType("bar"));
+ assertTrue(tool.producesFileType("toor"));
+ assertTrue(tool.isHeaderFile("baz"));
+ assertEquals("doIt", tool.getToolCommand());
+ assertEquals("-La -Lb -b y -e1 -nob", tool.getToolFlags());
// Completely Overridden configuration
assertEquals("Complete Override Config", configs[2].getName());
@@ -916,15 +952,25 @@
// Check that there's an overridden enumeration and string
categories = topCategory.getChildCategories();
options = categories[0].getOptions(configs[2]);
- assertEquals(2, options.length);
+ assertEquals(4, options.length);
assertTrue(options[0] instanceof OptionReference);
assertEquals("String Option in Category", options[0].getName());
assertEquals(IOption.STRING, options[0].getValueType());
assertEquals("overridden", options[0].getStringValue());
assertTrue(options[1] instanceof OptionReference);
- assertEquals("Enumerated Option in Category", options[1].getName());
- assertEquals(IOption.ENUMERATED, options[1].getValueType());
- assertEquals("-e2", options[1].getSelectedEnum());
+ assertEquals("Another String Option in Category", options[1].getName());
+ assertEquals(IOption.STRING, options[1].getValueType());
+ assertEquals("alsooverridden", options[1].getStringValue());
+ assertTrue(options[2] instanceof OptionReference);
+ assertEquals("Enumerated Option in Category", options[2].getName());
+ assertEquals(IOption.ENUMERATED, options[2].getValueType());
+ assertEquals("-e2", options[2].getSelectedEnum());
+ assertTrue(options[3] instanceof OptionReference);
+ assertEquals("Boolean Option in Category", options[3].getName());
+ assertEquals(IOption.BOOLEAN, options[3].getValueType());
+ assertEquals(true, options[3].getBooleanValue());
+ tool = tools[0];
+ assertEquals("-b overridden -stralsooverridden", tool.getToolFlags());
}
/*