1
0
Fork 0
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:
Martin Weber 2021-08-27 18:51:31 +02:00 committed by Marc-Andre Laperle
parent 9b34e460e5
commit 2d90c17c5b
3 changed files with 7 additions and 7 deletions

View file

@ -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);
}

View file

@ -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));

View file

@ -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);