mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-24 01:15:29 +02:00
Bug 575624 - jsoncdb parser does not properly handle macros defined to "nothing"
Change-Id: I22fffed13d450e61dc13d5f84415c68e5cbbace0 Signed-off-by: Martin Weber <fifteenknots505@gmail.com>
This commit is contained in:
parent
9b34e460e5
commit
2d90c17c5b
3 changed files with 7 additions and 7 deletions
|
@ -39,7 +39,7 @@ public class MacroDefine_C_POSIXTest {
|
|||
* Test method for {@link Arglets.MacroDefine_C_POSIX#processArgument}.
|
||||
*/
|
||||
@Test
|
||||
public final void testProcessArgument() {
|
||||
public final void testProcessArgument_NoValue() {
|
||||
final String more = " -g -MMD -MT CMakeFiles/execut1.dir/util1.c.o -MF \"CMakeFiles/execut1.dir/util1.c.o.d\""
|
||||
+ " -o CMakeFiles/execut1.dir/util1.c.o -c /testprojects/C-subsrc/src/src-sub/main1.c";
|
||||
ParseContext result;
|
||||
|
@ -53,14 +53,14 @@ public class MacroDefine_C_POSIXTest {
|
|||
result = new ParseContext();
|
||||
len = testee.processArgument(result, cwd, arg + " " + arg + more);
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", "", result.getDefines().get(name));
|
||||
assertEquals("value", "1", result.getDefines().get(name));
|
||||
assertEquals(2 + name.length(), len);
|
||||
// -D FOO
|
||||
result = new ParseContext();
|
||||
arg = "-D " + name;
|
||||
len = testee.processArgument(result, cwd, arg + " " + arg + more);
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", "", result.getDefines().get(name));
|
||||
assertEquals("value", "1", result.getDefines().get(name));
|
||||
assertEquals(2 + name.length() + 3, len);
|
||||
}
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ public class ToolCommandlineParserTest {
|
|||
assertTrue("found", result.getDefines().containsKey(def2Name));
|
||||
assertEquals("value", "987", result.getDefines().get(def2Name));
|
||||
assertTrue("found", result.getDefines().containsKey(defName));
|
||||
assertEquals("value", "", result.getDefines().get(defName));
|
||||
assertEquals("value", "1", result.getDefines().get(defName));
|
||||
|
||||
assertEquals("#paths", 1, result.getSystemIncludePaths().size());
|
||||
assertEquals("value", cwdP.resolve(incDirName).toString(), result.getSystemIncludePaths().get(0));
|
||||
|
@ -77,7 +77,7 @@ public class ToolCommandlineParserTest {
|
|||
assertTrue("found", result.getDefines().containsKey(def2Name));
|
||||
assertEquals("value", "987", result.getDefines().get(def2Name));
|
||||
assertTrue("found", result.getDefines().containsKey(defName));
|
||||
assertEquals("value", "", result.getDefines().get(defName));
|
||||
assertEquals("value", "1", result.getDefines().get(defName));
|
||||
|
||||
assertEquals("#paths", 1, result.getSystemIncludePaths().size());
|
||||
assertEquals("value", cwdP.resolve(incDirName).toString(), result.getSystemIncludePaths().get(0));
|
||||
|
|
|
@ -21,8 +21,8 @@ import java.util.Map.Entry;
|
|||
import java.util.Objects;
|
||||
|
||||
import org.eclipse.cdt.jsoncdb.core.internal.Plugin;
|
||||
import org.eclipse.cdt.jsoncdb.core.participant.IRawSourceFileInfoCollector;
|
||||
import org.eclipse.cdt.jsoncdb.core.participant.IRawSourceFileInfo;
|
||||
import org.eclipse.cdt.jsoncdb.core.participant.IRawSourceFileInfoCollector;
|
||||
import org.eclipse.core.runtime.Platform;
|
||||
|
||||
/**
|
||||
|
@ -46,7 +46,7 @@ public class RawSourceFileInfo implements IRawSourceFileInfo, IRawSourceFileInfo
|
|||
@Override
|
||||
public void addDefine(String name, String value) {
|
||||
Objects.requireNonNull(name);
|
||||
value = Objects.toString(value, ""); //$NON-NLS-1$
|
||||
value = Objects.toString(value, "1"); //$NON-NLS-1$
|
||||
if (DEBUG)
|
||||
System.out.printf(" Added define: %s=%s%n", name, value); //$NON-NLS-1$
|
||||
defines.put(name, value);
|
||||
|
|
Loading…
Add table
Reference in a new issue