mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-25 01:45:33 +02:00
Bug 559674: Migrating from a ILanguageSettingsProvider implementation to IIndexerInfoConsumer (4/6)
Adjust core tests to new implementation. This is piece four of change https://git.eclipse.org/r/c/159828 being split into pieces. Splitting is done for code reviewing reasons. Change-Id: I925fd5e56cbf6bf3e6d14322c738c0ff412b8b1d Signed-off-by: Martin Weber <fifteenknots505@gmail.com>
This commit is contained in:
parent
f80235d0e0
commit
636691a404
9 changed files with 315 additions and 578 deletions
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015 Martin Weber.
|
||||
* Copyright (c) 2015-2020 Martin Weber.
|
||||
*
|
||||
* Content is provided to you under the terms and conditions of the Eclipse Public License Version 2.0 "EPL".
|
||||
* A copy of the EPL is available at http://www.eclipse.org/legal/epl-2.0.
|
||||
|
@ -11,9 +11,7 @@ package org.eclipse.cdt.cmake.is.core.internal;
|
|||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import org.eclipse.cdt.cmake.is.core.Arglets.IncludePath_C_POSIX;
|
||||
import org.eclipse.cdt.cmake.is.core.IArglet.IParseContext;
|
||||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||
import org.eclipse.cdt.core.settings.model.ICSettingEntry;
|
||||
import org.eclipse.cdt.cmake.is.core.IArglet.IArgumentCollector;
|
||||
import org.eclipse.core.runtime.IPath;
|
||||
import org.eclipse.core.runtime.Path;
|
||||
import org.junit.Before;
|
||||
|
@ -36,178 +34,141 @@ public class IncludePath_C_POSIXTest {
|
|||
|
||||
/**
|
||||
* Test method for
|
||||
* {@link IncludePath_C_POSIX#processArgument(IParseContext, IPath, java.lang.String)}
|
||||
* {@link IncludePath_C_POSIX#processArgument(IArgumentCollector, IPath, java.lang.String)}
|
||||
* .
|
||||
*/
|
||||
@Test
|
||||
public final void testProcessArgument() {
|
||||
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 entries;
|
||||
ICLanguageSettingEntry parsed;
|
||||
ParseContext result;
|
||||
|
||||
String name = "/an/Include/Path";
|
||||
IPath cwd = new Path("");
|
||||
// -I/an/Include/Path
|
||||
entries = new ParseContext();
|
||||
assertEquals(2 + name.length(), testee.processArgument(entries, cwd, "-I" + name + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length(), testee.processArgument(result, cwd, "-I" + name + more));
|
||||
assertEquals("#entries", 1, result.getIncludePaths().size());
|
||||
assertEquals("name", name, result.getIncludePaths().get(0));
|
||||
// -I'/an/Include/Path'
|
||||
entries = new ParseContext();
|
||||
assertEquals(2 + name.length() + 2, testee.processArgument(entries, cwd, "-I" + "'" + name + "'" + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length() + 2, testee.processArgument(result, cwd, "-I" + "'" + name + "'" + more));
|
||||
assertEquals("#entries", 1, result.getIncludePaths().size());
|
||||
assertEquals("name", name, result.getIncludePaths().get(0));
|
||||
// -I"/an/Include/Path"
|
||||
entries = new ParseContext();
|
||||
assertEquals(2 + name.length() + 2, testee.processArgument(entries, cwd, "-I" + "\"" + name + "\"" + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length() + 2, testee.processArgument(result, cwd, "-I" + "\"" + name + "\"" + more));
|
||||
assertEquals("#entries", 1, result.getIncludePaths().size());
|
||||
assertEquals("name", name, result.getIncludePaths().get(0));
|
||||
|
||||
// -I /an/Include/Path
|
||||
entries = new ParseContext();
|
||||
assertEquals(2 + name.length() + 3, testee.processArgument(entries, cwd, "-I " + name + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length() + 3, testee.processArgument(result, cwd, "-I " + name + more));
|
||||
assertEquals("#entries", 1, result.getIncludePaths().size());
|
||||
assertEquals("name", name, result.getIncludePaths().get(0));
|
||||
// -I '/an/Include/Path'
|
||||
entries = new ParseContext();
|
||||
assertEquals(2 + name.length() + 3 + 2,
|
||||
testee.processArgument(entries, cwd, "-I " + "'" + name + "'" + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length() + 3 + 2, testee.processArgument(result, cwd, "-I " + "'" + name + "'" + more));
|
||||
assertEquals("#entries", 1, result.getIncludePaths().size());
|
||||
assertEquals("name", name, result.getIncludePaths().get(0));
|
||||
// -I "/an/Include/Path"
|
||||
entries = new ParseContext();
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length() + 3 + 2,
|
||||
testee.processArgument(entries, cwd, "-I " + "\"" + name + "\"" + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
testee.processArgument(result, cwd, "-I " + "\"" + name + "\"" + more));
|
||||
assertEquals("#entries", 1, result.getIncludePaths().size());
|
||||
assertEquals("name", name, result.getIncludePaths().get(0));
|
||||
|
||||
name = (new Path("A:an\\Include/Path")).toOSString();
|
||||
// -IA:an\Include/Path
|
||||
entries = new ParseContext();
|
||||
assertEquals(2 + name.length(), testee.processArgument(entries, cwd, "-I" + name + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length(), testee.processArgument(result, cwd, "-I" + name + more));
|
||||
assertEquals("#entries", 1, result.getIncludePaths().size());
|
||||
assertEquals("name", name, result.getIncludePaths().get(0));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test method for
|
||||
* {@link IncludePath_C_POSIX#processArgument(IParseContext, IPath, java.lang.String)}
|
||||
* {@link IncludePath_C_POSIX#processArgument(IArgumentCollector, IPath, java.lang.String)}
|
||||
*/
|
||||
@Test
|
||||
public final void testProcessArgument_WS() {
|
||||
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 entries = new ParseContext();
|
||||
ICLanguageSettingEntry parsed;
|
||||
ParseContext result = new ParseContext();
|
||||
|
||||
String name = "/ye olde/In clu de/Pa the";
|
||||
IPath cwd = new Path("");
|
||||
// -I'/ye olde/In clu de/Pa the'
|
||||
entries = new ParseContext();
|
||||
assertEquals(2 + name.length() + 2, testee.processArgument(entries, cwd, "-I" + "'" + name + "'" + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length() + 2, testee.processArgument(result, cwd, "-I" + "'" + name + "'" + more));
|
||||
assertEquals("#entries", 1, result.getIncludePaths().size());
|
||||
assertEquals("name", name, result.getIncludePaths().get(0));
|
||||
// -I"/ye olde/In clu de/Pa the"
|
||||
entries = new ParseContext();
|
||||
assertEquals(2 + name.length() + 2, testee.processArgument(entries, cwd, "-I" + "\"" + name + "\"" + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length() + 2, testee.processArgument(result, cwd, "-I" + "\"" + name + "\"" + more));
|
||||
assertEquals("#entries", 1, result.getIncludePaths().size());
|
||||
assertEquals("name", name, result.getIncludePaths().get(0));
|
||||
|
||||
// -I '/ye olde/In clu de/Pa the'
|
||||
entries = new ParseContext();
|
||||
assertEquals(2 + name.length() + 3 + 2,
|
||||
testee.processArgument(entries, cwd, "-I " + "'" + name + "'" + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length() + 3 + 2, testee.processArgument(result, cwd, "-I " + "'" + name + "'" + more));
|
||||
assertEquals("#entries", 1, result.getIncludePaths().size());
|
||||
assertEquals("name", name, result.getIncludePaths().get(0));
|
||||
// -I "/ye olde/In clu de/Pa the"
|
||||
entries = new ParseContext();
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length() + 3 + 2,
|
||||
testee.processArgument(entries, cwd, "-I " + "\"" + name + "\"" + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
testee.processArgument(result, cwd, "-I " + "\"" + name + "\"" + more));
|
||||
assertEquals("#entries", 1, result.getIncludePaths().size());
|
||||
assertEquals("name", name, result.getIncludePaths().get(0));
|
||||
|
||||
name = (new Path("A:an\\In CLU de/Pat h")).toOSString();
|
||||
// -I'A:an\In CLU de/Pat h'
|
||||
entries = new ParseContext();
|
||||
assertEquals(2 + name.length() + 2, testee.processArgument(entries, cwd, "-I" + "\"" + name + "\"" + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length() + 2, testee.processArgument(result, cwd, "-I" + "\"" + name + "\"" + more));
|
||||
assertEquals("#entries", 1, result.getIncludePaths().size());
|
||||
assertEquals("name", name, result.getIncludePaths().get(0));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test method for
|
||||
* {@link IncludePath_C_POSIX#processArgument(IParseContext, IPath, java.lang.String)}
|
||||
* {@link IncludePath_C_POSIX#processArgument(IArgumentCollector, IPath, java.lang.String)}
|
||||
* .
|
||||
*/
|
||||
@Test
|
||||
public final void testProcessArgument_RelativePath() {
|
||||
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";
|
||||
ICLanguageSettingEntry parsed;
|
||||
|
||||
String name = (new Path("a/relative/Include/Path")).toOSString();
|
||||
IPath cwd = new Path("/compiler/working/dir");
|
||||
ParseContext entries = new ParseContext();
|
||||
assertEquals(2 + name.length(), testee.processArgument(entries, cwd, "-I" + name + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
ParseContext result = new ParseContext();
|
||||
assertEquals(2 + name.length(), testee.processArgument(result, cwd, "-I" + name + more));
|
||||
assertEquals("#entries", 1, result.getIncludePaths().size());
|
||||
String absPath = cwd.append(name).toString();
|
||||
assertEquals("name", absPath, parsed.getName());
|
||||
assertEquals("name", absPath, result.getIncludePaths().get(0));
|
||||
|
||||
name = (new Path("a\\relative\\Include\\Path")).toOSString();
|
||||
cwd = new Path("\\compiler\\working\\dir");
|
||||
entries = new ParseContext();
|
||||
assertEquals(2 + name.length(), testee.processArgument(entries, cwd, "-I" + name + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length(), testee.processArgument(result, cwd, "-I" + name + more));
|
||||
assertEquals("#entries", 1, result.getIncludePaths().size());
|
||||
absPath = cwd.append(name).toString();
|
||||
assertEquals("name", absPath, parsed.getName());
|
||||
assertEquals("name", absPath, result.getIncludePaths().get(0));
|
||||
|
||||
name = (new Path("../../src/Include/Path")).toOSString();
|
||||
cwd = new Path("/compiler/working/dir");
|
||||
entries = new ParseContext();
|
||||
assertEquals(2 + name.length(), testee.processArgument(entries, cwd, "-I" + name + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length(), testee.processArgument(result, cwd, "-I" + name + more));
|
||||
assertEquals("#entries", 1, result.getIncludePaths().size());
|
||||
absPath = cwd.append(name).toString();
|
||||
assertEquals("name", absPath, parsed.getName());
|
||||
assertEquals("name", absPath, result.getIncludePaths().get(0));
|
||||
|
||||
name = (new Path("..\\..\\src\\Include\\Path")).toOSString();
|
||||
cwd = new Path("\\compiler\\working\\dir");
|
||||
entries = new ParseContext();
|
||||
assertEquals(2 + name.length(), testee.processArgument(entries, cwd, "-I" + name + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length(), testee.processArgument(result, cwd, "-I" + name + more));
|
||||
assertEquals("#entries", 1, result.getIncludePaths().size());
|
||||
absPath = cwd.append(name).toString();
|
||||
assertEquals("name", absPath, parsed.getName());
|
||||
assertEquals("name", absPath, result.getIncludePaths().get(0));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015 Martin Weber.
|
||||
* Copyright (c) 2015-2020 Martin Weber.
|
||||
*
|
||||
* Content is provided to you under the terms and conditions of the Eclipse Public License Version 2.0 "EPL".
|
||||
* A copy of the EPL is available at http://www.eclipse.org/legal/epl-2.0.
|
||||
|
@ -9,11 +9,12 @@
|
|||
package org.eclipse.cdt.cmake.is.core.internal;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import org.eclipse.cdt.cmake.is.core.Arglets;
|
||||
import org.eclipse.cdt.cmake.is.core.Arglets.MacroDefine_C_POSIX;
|
||||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||
import org.eclipse.cdt.core.settings.model.ICSettingEntry;
|
||||
import org.eclipse.core.runtime.IPath;
|
||||
import org.eclipse.core.runtime.Path;
|
||||
import org.junit.Before;
|
||||
|
@ -41,8 +42,7 @@ public class MacroDefine_C_POSIXTest {
|
|||
public final void testProcessArgument() {
|
||||
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 entries;
|
||||
ICLanguageSettingEntry parsed;
|
||||
ParseContext result;
|
||||
|
||||
final IPath cwd = new Path("");
|
||||
int len;
|
||||
|
@ -50,23 +50,17 @@ public class MacroDefine_C_POSIXTest {
|
|||
String name = "FOO";
|
||||
String arg = "-D" + name;
|
||||
|
||||
entries = new ParseContext();
|
||||
len = testee.processArgument(entries, cwd, arg + " " + arg + more);
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", "", parsed.getValue());
|
||||
result = new ParseContext();
|
||||
len = testee.processArgument(result, cwd, arg + " " + arg + more);
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", "", result.getDefines().get(name));
|
||||
assertEquals(2 + name.length(), len);
|
||||
// -D FOO
|
||||
entries = new ParseContext();
|
||||
result = new ParseContext();
|
||||
arg = "-D " + name;
|
||||
len = testee.processArgument(entries, cwd, arg + " " + arg + more);
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", "", parsed.getValue());
|
||||
len = testee.processArgument(result, cwd, arg + " " + arg + more);
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", "", result.getDefines().get(name));
|
||||
assertEquals(2 + name.length() + 3, len);
|
||||
}
|
||||
|
||||
|
@ -77,52 +71,39 @@ public class MacroDefine_C_POSIXTest {
|
|||
public final void testProcessArgument_Value() {
|
||||
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 entries;
|
||||
ICLanguageSettingEntry parsed;
|
||||
ParseContext result;
|
||||
final IPath cwd = new Path("");
|
||||
|
||||
final String name = "FOO";
|
||||
String val = "noWhiteSpace";
|
||||
|
||||
// -DFOO=noWhiteSpace
|
||||
entries = new ParseContext();
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length() + 1 + val.length(),
|
||||
testee.processArgument(entries, cwd, "-D" + name + "=" + val + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", val, parsed.getValue());
|
||||
testee.processArgument(result, cwd, "-D" + name + "=" + val + more));
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", val, result.getDefines().get(name));
|
||||
// -D FOO=noWhiteSpace
|
||||
entries = new ParseContext();
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length() + 1 + 3 + val.length(),
|
||||
testee.processArgument(entries, cwd, "-D " + name + "=" + val + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", val, parsed.getValue());
|
||||
testee.processArgument(result, cwd, "-D " + name + "=" + val + more));
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", val, result.getDefines().get(name));
|
||||
|
||||
// ----------------------------------------
|
||||
val = "Wh it e s ap ac ";
|
||||
// -D 'FOO=Wh it e s ap ac '
|
||||
entries = new ParseContext();
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length() + 1 + 2 + 3 + val.length(),
|
||||
testee.processArgument(entries, cwd, "-D " + "'" + name + "=" + val + "'" + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", val, parsed.getValue());
|
||||
testee.processArgument(result, cwd, "-D " + "'" + name + "=" + val + "'" + more));
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", val, result.getDefines().get(name));
|
||||
// -D "FOO=Wh it e s ap ac "
|
||||
entries = new ParseContext();
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length() + 1 + 2 + 3 + val.length(),
|
||||
testee.processArgument(entries, cwd, "-D " + "\"" + name + "=" + val + "\"" + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", val, parsed.getValue());
|
||||
testee.processArgument(result, cwd, "-D " + "\"" + name + "=" + val + "\"" + more));
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", val, result.getDefines().get(name));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -132,8 +113,7 @@ public class MacroDefine_C_POSIXTest {
|
|||
public final void testProcessArgument_Value_CharLiteral() {
|
||||
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 entries;
|
||||
ICLanguageSettingEntry parsed;
|
||||
ParseContext result;
|
||||
final IPath cwd = new Path("");
|
||||
int len;
|
||||
String val, arg;
|
||||
|
@ -144,90 +124,66 @@ public class MacroDefine_C_POSIXTest {
|
|||
// -DFOO='noWhiteSpace'
|
||||
val = "'noWhiteSpace'";
|
||||
arg = "-D" + name + "=" + val;
|
||||
entries = new ParseContext();
|
||||
len = testee.processArgument(entries, cwd, arg + " " + arg + more);
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", val, parsed.getValue());
|
||||
result = new ParseContext();
|
||||
len = testee.processArgument(result, cwd, arg + " " + arg + more);
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", val, result.getDefines().get(name));
|
||||
assertEquals(arg.length(), len);
|
||||
// -D FOO='noWhiteSpace'
|
||||
arg = "-D " + name + "=" + val;
|
||||
entries = new ParseContext();
|
||||
len = testee.processArgument(entries, cwd, arg + " " + arg + more);
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", val, parsed.getValue());
|
||||
result = new ParseContext();
|
||||
len = testee.processArgument(result, cwd, arg + " " + arg + more);
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", val, result.getDefines().get(name));
|
||||
assertEquals(arg.length(), len);
|
||||
// ----------------------------------------
|
||||
// -DFOO='noWhite\'escapedQuoteChar' (values with single quotes)
|
||||
val = "'noWhite\\'escapedQuoteChar'";
|
||||
arg = "-D" + name + "=" + val;
|
||||
entries = new ParseContext();
|
||||
len = testee.processArgument(entries, cwd, arg + " " + arg + more);
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", val, parsed.getValue());
|
||||
result = new ParseContext();
|
||||
len = testee.processArgument(result, cwd, arg + " " + arg + more);
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", val, result.getDefines().get(name));
|
||||
assertEquals(arg.length(), len);
|
||||
// -DFOO='noWhite\\escapedEscapeChar'
|
||||
val = "'noWhite\\\\escapedEscapeChar'";
|
||||
arg = "-D" + name + "=" + val;
|
||||
entries = new ParseContext();
|
||||
len = testee.processArgument(entries, cwd, arg + " " + arg + more);
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", val, parsed.getValue());
|
||||
result = new ParseContext();
|
||||
len = testee.processArgument(result, cwd, arg + " " + arg + more);
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", val, result.getDefines().get(name));
|
||||
assertEquals(arg.length(), len);
|
||||
// ----------------------------------------
|
||||
// -DFOO='Wh it e s ap ac '
|
||||
val = "'Wh it e s ap ac '";
|
||||
arg = "-D" + name + "=" + val;
|
||||
entries = new ParseContext();
|
||||
len = testee.processArgument(entries, cwd, arg + " " + arg + more);
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", val, parsed.getValue());
|
||||
result = new ParseContext();
|
||||
len = testee.processArgument(result, cwd, arg + " " + arg + more);
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", val, result.getDefines().get(name));
|
||||
assertEquals(arg.length(), len);
|
||||
// -D FOO='Wh it e s ap ac '
|
||||
arg = "-D " + name + "=" + val;
|
||||
entries = new ParseContext();
|
||||
len = testee.processArgument(entries, cwd, arg + " " + arg + more);
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", val, parsed.getValue());
|
||||
result = new ParseContext();
|
||||
len = testee.processArgument(result, cwd, arg + " " + arg + more);
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", val, result.getDefines().get(name));
|
||||
assertEquals(arg.length(), len);
|
||||
// -DFOO='Wh it e s ap ac \'escaped Quote Char' (values with single quotes)
|
||||
val = "'Wh it e s ap ac \\'escaped Quote Char'";
|
||||
arg = "-D" + name + "=" + val;
|
||||
entries = new ParseContext();
|
||||
len = testee.processArgument(entries, cwd, arg + " " + arg + more);
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", val, parsed.getValue());
|
||||
result = new ParseContext();
|
||||
len = testee.processArgument(result, cwd, arg + " " + arg + more);
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", val, result.getDefines().get(name));
|
||||
assertEquals(arg.length(), len);
|
||||
// -DFOO='Wh it e s ap ac \\escaped Escape Char'
|
||||
val = "'Wh it e s ap ac \\\\escaped Escape Char'";
|
||||
arg = "-D" + name + "=" + val;
|
||||
entries = new ParseContext();
|
||||
len = testee.processArgument(entries, cwd, arg + " " + arg + more);
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", val, parsed.getValue());
|
||||
result = new ParseContext();
|
||||
len = testee.processArgument(result, cwd, arg + " " + arg + more);
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", val, result.getDefines().get(name));
|
||||
assertEquals(arg.length(), len);
|
||||
}
|
||||
|
||||
|
@ -238,8 +194,7 @@ public class MacroDefine_C_POSIXTest {
|
|||
public final void testProcessArgument_Value_StringLiteral() {
|
||||
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 entries;
|
||||
ICLanguageSettingEntry parsed;
|
||||
ParseContext result;
|
||||
final IPath cwd = new Path("");
|
||||
int len;
|
||||
String val, arg;
|
||||
|
@ -249,90 +204,66 @@ public class MacroDefine_C_POSIXTest {
|
|||
// -DFOO="noWhiteSpace"
|
||||
val = "\"noWhiteSpace\"";
|
||||
arg = "-D" + name + "=" + val;
|
||||
entries = new ParseContext();
|
||||
len = testee.processArgument(entries, cwd, arg + " " + arg + more);
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", val, parsed.getValue());
|
||||
result = new ParseContext();
|
||||
len = testee.processArgument(result, cwd, arg + " " + arg + more);
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", val, result.getDefines().get(name));
|
||||
assertEquals(arg.length(), len);
|
||||
// -D FOO="noWhiteSpace"
|
||||
arg = "-D " + name + "=" + val;
|
||||
entries = new ParseContext();
|
||||
len = testee.processArgument(entries, cwd, arg + " " + arg + more);
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", val, parsed.getValue());
|
||||
result = new ParseContext();
|
||||
len = testee.processArgument(result, cwd, arg + " " + arg + more);
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", val, result.getDefines().get(name));
|
||||
assertEquals(arg.length(), len);
|
||||
// ----------------------------------------
|
||||
// -DFOO="noWhite\"escapedQuoteChar" (values with single quotes)
|
||||
val = "\"noWhite\\\"escapedQuoteChar\"";
|
||||
arg = "-D" + name + "=" + val;
|
||||
entries = new ParseContext();
|
||||
len = testee.processArgument(entries, cwd, arg + " " + arg + more);
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", val, parsed.getValue());
|
||||
result = new ParseContext();
|
||||
len = testee.processArgument(result, cwd, arg + " " + arg + more);
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", val, result.getDefines().get(name));
|
||||
assertEquals(arg.length(), len);
|
||||
// -DFOO="noWhite\\escapedEscapeChar"
|
||||
val = "\"noWhite\\\\escapedEscapeChar\"";
|
||||
arg = "-D" + name + "=" + val;
|
||||
entries = new ParseContext();
|
||||
len = testee.processArgument(entries, cwd, arg + " " + arg + more);
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", val, parsed.getValue());
|
||||
result = new ParseContext();
|
||||
len = testee.processArgument(result, cwd, arg + " " + arg + more);
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", val, result.getDefines().get(name));
|
||||
assertEquals(arg.length(), len);
|
||||
// ----------------------------------------
|
||||
// -DFOO="Wh it e s ap ac "
|
||||
val = "\"Wh it e s ap ac \"";
|
||||
arg = "-D" + name + "=" + val;
|
||||
entries = new ParseContext();
|
||||
len = testee.processArgument(entries, cwd, arg + " " + arg + more);
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", val, parsed.getValue());
|
||||
result = new ParseContext();
|
||||
len = testee.processArgument(result, cwd, arg + " " + arg + more);
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", val, result.getDefines().get(name));
|
||||
assertEquals(arg.length(), len);
|
||||
// -D FOO="Wh it e s ap ac "
|
||||
arg = "-D " + name + "=" + val;
|
||||
entries = new ParseContext();
|
||||
len = testee.processArgument(entries, cwd, arg + " " + arg + more);
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", val, parsed.getValue());
|
||||
result = new ParseContext();
|
||||
len = testee.processArgument(result, cwd, arg + " " + arg + more);
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", val, result.getDefines().get(name));
|
||||
assertEquals(arg.length(), len);
|
||||
// -DFOO="Wh it e s ap ac \"escaped Quote Char" (values with single quotes)
|
||||
val = "\"Wh it e s ap ac \\\"escaped Quote Char\"";
|
||||
arg = "-D" + name + "=" + val;
|
||||
entries = new ParseContext();
|
||||
len = testee.processArgument(entries, cwd, arg + " " + arg + more);
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", val, parsed.getValue());
|
||||
result = new ParseContext();
|
||||
len = testee.processArgument(result, cwd, arg + " " + arg + more);
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", val, result.getDefines().get(name));
|
||||
assertEquals(arg.length(), len);
|
||||
// -DFOO="Wh it e s ap ac \\escaped Escape Char"
|
||||
val = "\"Wh it e s ap ac \\\\escaped Escape Char\"";
|
||||
arg = "-D" + name + "=" + val;
|
||||
entries = new ParseContext();
|
||||
len = testee.processArgument(entries, cwd, arg + " " + arg + more);
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", val, parsed.getValue());
|
||||
result = new ParseContext();
|
||||
len = testee.processArgument(result, cwd, arg + " " + arg + more);
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", val, result.getDefines().get(name));
|
||||
assertEquals(arg.length(), len);
|
||||
|
||||
// ----------------------------------------
|
||||
|
@ -340,14 +271,11 @@ public class MacroDefine_C_POSIXTest {
|
|||
// -DFOO="2(vtkIOMySQL,vtkIOPostgreSQL)"
|
||||
val = "\"2(vtkIOMySQL,vtkIOPostgreSQL)\"";
|
||||
arg = "-D" + name + "=" + val;
|
||||
entries = new ParseContext();
|
||||
len = testee.processArgument(entries, cwd, arg + " " + arg + more);
|
||||
result = new ParseContext();
|
||||
len = testee.processArgument(result, cwd, arg + " " + arg + more);
|
||||
assertEquals(arg.length(), len);
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", val, parsed.getValue());
|
||||
assertTrue("found", result.getDefines().containsKey(name));
|
||||
assertEquals("value", val, result.getDefines().get(name));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -357,8 +285,7 @@ public class MacroDefine_C_POSIXTest {
|
|||
public final void testProcessArgument_MacroWithArgs() {
|
||||
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 entries;
|
||||
ICLanguageSettingEntry parsed;
|
||||
ParseContext result;
|
||||
final IPath cwd = new Path("");
|
||||
|
||||
// -DFOO=noWhiteSpace
|
||||
|
@ -367,22 +294,18 @@ public class MacroDefine_C_POSIXTest {
|
|||
String val = "(a)/((b)+(c))";
|
||||
|
||||
// -DFOO(a,b,c)=(a)/((b)+(c))
|
||||
entries = new ParseContext();
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length() + args.length() + 1 + val.length(),
|
||||
testee.processArgument(entries, cwd, "-D" + name + args + "=" + val + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", val, parsed.getValue());
|
||||
testee.processArgument(result, cwd, "-D" + name + args + "=" + val + more));
|
||||
Map<String, String> defines = result.getDefines();
|
||||
assertEquals("#entries", 1, defines.size());
|
||||
assertEquals("value", val, result.getDefines().get(name));
|
||||
// -D FOO(a,b,c)=(a)/((b)+(c))
|
||||
entries = new ParseContext();
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length() + args.length() + 1 + 3 + val.length(),
|
||||
testee.processArgument(entries, cwd, "-D " + name + args + "=" + val + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", val, parsed.getValue());
|
||||
testee.processArgument(result, cwd, "-D " + name + args + "=" + val + more));
|
||||
defines = result.getDefines();
|
||||
assertEquals("#entries", 1, defines.size());
|
||||
assertEquals("value", val, result.getDefines().get(name));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015 Martin Weber.
|
||||
* Copyright (c) 2015-2020 Martin Weber.
|
||||
*
|
||||
* Content is provided to you under the terms and conditions of the Eclipse Public License Version 2.0 "EPL".
|
||||
* A copy of the EPL is available at http://www.eclipse.org/legal/epl-2.0.
|
||||
|
@ -11,9 +11,7 @@ package org.eclipse.cdt.cmake.is.core.internal;
|
|||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import org.eclipse.cdt.cmake.is.core.Arglets.MacroUndefine_C_POSIX;
|
||||
import org.eclipse.cdt.cmake.is.core.IArglet.IParseContext;
|
||||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||
import org.eclipse.cdt.core.settings.model.ICSettingEntry;
|
||||
import org.eclipse.cdt.cmake.is.core.IArglet.IArgumentCollector;
|
||||
import org.eclipse.core.runtime.IPath;
|
||||
import org.eclipse.core.runtime.Path;
|
||||
import org.junit.Before;
|
||||
|
@ -36,35 +34,26 @@ public class MacroUndefine_C_POSIXTest {
|
|||
|
||||
/**
|
||||
* Test method for
|
||||
* {@link MacroUndefine_C_POSIX#processArgument(IParseContext, IPath, java.lang.String)}
|
||||
* {@link MacroUndefine_C_POSIX#processArgument(IArgumentCollector, IPath, java.lang.String)}
|
||||
* .
|
||||
*/
|
||||
@Test
|
||||
public final void testProcessArgument() {
|
||||
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 entries;
|
||||
ICLanguageSettingEntry parsed;
|
||||
ParseContext result;
|
||||
final IPath cwd = new Path("");
|
||||
|
||||
String name = "FOO";
|
||||
// -UFOO
|
||||
entries = new ParseContext();
|
||||
assertEquals(2 + name.length(), testee.processArgument(entries, cwd, "-U" + name + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("kind", ICSettingEntry.UNDEFINED, (parsed.getFlags() & ICSettingEntry.UNDEFINED));
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", "", parsed.getValue());
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length(), testee.processArgument(result, cwd, "-U" + name + more));
|
||||
assertEquals("#entries", 1, result.getUndefines().size());
|
||||
assertEquals("name", name, result.getUndefines().get(0));
|
||||
// -U FOO
|
||||
entries = new ParseContext();
|
||||
assertEquals(2 + 2 + name.length(), testee.processArgument(entries, cwd, "-U " + name + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("kind", ICSettingEntry.UNDEFINED, (parsed.getFlags() & ICSettingEntry.UNDEFINED));
|
||||
assertEquals("name", name, parsed.getName());
|
||||
assertEquals("value", "", parsed.getValue());
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + 2 + name.length(), testee.processArgument(result, cwd, "-U " + name + more));
|
||||
assertEquals("#entries", 1, result.getUndefines().size());
|
||||
assertEquals("name", name, result.getUndefines().get(0));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2016-2018 Martin Weber.
|
||||
* Copyright (c) 2016-2020 Martin Weber.
|
||||
*
|
||||
* Content is provided to you under the terms and conditions of the Eclipse Public License Version 2.0 "EPL".
|
||||
* A copy of the EPL is available at http://www.eclipse.org/legal/epl-2.0.
|
||||
|
@ -31,9 +31,6 @@ public class ParserDetectionTest {
|
|||
ParserDetection.ParserDetectionResult result = ParserDetection.determineDetector("/usr/bin/clang -C blah.c",
|
||||
null, true);
|
||||
assertNotNull(result);
|
||||
// verify that we got a C parser
|
||||
assertEquals("C", "org.eclipse.cdt.core.gcc",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("c"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -41,9 +38,6 @@ public class ParserDetectionTest {
|
|||
ParserDetection.ParserDetectionResult result = ParserDetection.determineDetector("/usr/bin/clang++ -C blah.c",
|
||||
null, true);
|
||||
assertNotNull(result);
|
||||
// verify that we got a C++ parser
|
||||
assertEquals("C++", "org.eclipse.cdt.core.g++",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("c"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -51,9 +45,6 @@ public class ParserDetectionTest {
|
|||
ParserDetection.ParserDetectionResult result = ParserDetection.determineDetector("clang++ -C blah.c", null,
|
||||
false);
|
||||
assertNotNull(result);
|
||||
// verify that we got a C++ parser
|
||||
assertEquals("C++", "org.eclipse.cdt.core.g++",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("c"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -66,15 +57,9 @@ public class ParserDetectionTest {
|
|||
ParserDetection.ParserDetectionResult result = ParserDetection
|
||||
.determineDetector("/usr/bin/arm-none-eabi-gcc -C blah.c", null, true);
|
||||
assertNotNull(result);
|
||||
// verify that we got a C parser
|
||||
assertEquals("C", "org.eclipse.cdt.core.gcc",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("c"));
|
||||
|
||||
result = ParserDetection.determineDetector("/usr/bin/arm-none-eabi-gcc.exe -C blah.c", null, true);
|
||||
assertNotNull(result);
|
||||
// verify that we got a C parser
|
||||
assertEquals("C", "org.eclipse.cdt.core.gcc",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("c"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -84,16 +69,10 @@ public class ParserDetectionTest {
|
|||
ParserDetection.ParserDetectionResult result = ParserDetection
|
||||
.determineDetector("/usr/bin/arm-none-eabi-gcc-9.2.0 -C blah.c", versionSuffixRegex, true);
|
||||
assertNotNull(result);
|
||||
// verify that we got a C parser
|
||||
assertEquals("C", "org.eclipse.cdt.core.gcc",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("c"));
|
||||
|
||||
result = ParserDetection.determineDetector("/usr/bin/arm-none-eabi-gcc-9.2.0.exe -C blah.c", versionSuffixRegex,
|
||||
true);
|
||||
assertNotNull(result);
|
||||
// verify that we got a C parser
|
||||
assertEquals("C", "org.eclipse.cdt.core.gcc",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("c"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -104,15 +83,9 @@ public class ParserDetectionTest {
|
|||
ParserDetection.ParserDetectionResult result = ParserDetection
|
||||
.determineDetector("/usr/bin/arm-none-eabi-g++ -C blah.c", null, true);
|
||||
assertNotNull(result);
|
||||
// verify that we got a C++ parser
|
||||
assertEquals("C++", "org.eclipse.cdt.core.g++",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("c"));
|
||||
|
||||
result = ParserDetection.determineDetector("/usr/bin/arm-none-eabi-g++.exe -C blah.c", null, true);
|
||||
assertNotNull(result);
|
||||
// verify that we got a C++ parser
|
||||
assertEquals("C++", "org.eclipse.cdt.core.g++",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("c"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -125,16 +98,10 @@ public class ParserDetectionTest {
|
|||
ParserDetection.ParserDetectionResult result = ParserDetection
|
||||
.determineDetector("/usr/bin/arm-none-eabi-g++-9.2.0 -C blah.c", versionSuffixRegex, true);
|
||||
assertNotNull(result);
|
||||
// verify that we got a C++ parser
|
||||
assertEquals("C++", "org.eclipse.cdt.core.g++",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("c"));
|
||||
|
||||
result = ParserDetection.determineDetector("/usr/bin/arm-none-eabi-g++-9.2.0.exe -C blah.c", versionSuffixRegex,
|
||||
true);
|
||||
assertNotNull(result);
|
||||
// verify that we got a C++ parser
|
||||
assertEquals("C++", "org.eclipse.cdt.core.g++",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("c"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -145,15 +112,9 @@ public class ParserDetectionTest {
|
|||
ParserDetection.ParserDetectionResult result = ParserDetection.determineDetector("arm-none-eabi-g++ -C blah.c",
|
||||
null, false);
|
||||
assertNotNull(result);
|
||||
// verify that we got a C++ parser
|
||||
assertEquals("C++", "org.eclipse.cdt.core.g++",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("c"));
|
||||
|
||||
result = ParserDetection.determineDetector("arm-none-eabi-g++.exe -C blah.c", null, false);
|
||||
assertNotNull(result);
|
||||
// verify that we got a C++ parser
|
||||
assertEquals("C++", "org.eclipse.cdt.core.g++",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("c"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -162,9 +123,6 @@ public class ParserDetectionTest {
|
|||
ParserDetection.ParserDetectionResult result = ParserDetection
|
||||
.determineDetector("C:\\PROGRA2\\Atmel\\AVR8-G1\\bin\\AVR-G_~1.EXE -C blah.c", null, true);
|
||||
assertNotNull(result);
|
||||
// verify that we got a C parser
|
||||
assertEquals("C", "org.eclipse.cdt.core.gcc",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("c"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -174,48 +132,36 @@ public class ParserDetectionTest {
|
|||
ParserDetection.ParserDetectionResult result = ParserDetection.determineDetector("/usr/bin/cc-4.1 -C blah.c",
|
||||
versionSuffixRegex, false);
|
||||
assertNotNull(result);
|
||||
// verify that we got a C parser
|
||||
assertEquals("org.eclipse.cdt.core.gcc",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("c"));
|
||||
|
||||
result = ParserDetection.determineDetector("/usr/bin/cc-4.1.exe -C blah.c", versionSuffixRegex, true);
|
||||
assertNotNull(result);
|
||||
// verify that we got a C parser
|
||||
assertEquals("org.eclipse.cdt.core.gcc",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("c"));
|
||||
|
||||
result = ParserDetection.determineDetector("/usr/bin/c++-4.1 -C blah.c", versionSuffixRegex, false);
|
||||
assertNotNull(result);
|
||||
// verify that we got a C++ parser
|
||||
assertEquals("org.eclipse.cdt.core.g++",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("c"));
|
||||
|
||||
result = ParserDetection.determineDetector("/usr/bin/c++-4.1.exe -C blah.c", versionSuffixRegex, true);
|
||||
assertNotNull(result);
|
||||
// verify that we got a C++ parser
|
||||
assertEquals("org.eclipse.cdt.core.g++",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("c"));
|
||||
|
||||
// clang for issue #43
|
||||
result = ParserDetection.determineDetector("/usr/local/bin/clang++40 -C blah.c", versionSuffixRegex, false);
|
||||
assertNotNull(result);
|
||||
assertEquals("org.eclipse.cdt.core.g++",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("c"));
|
||||
result = ParserDetection.determineDetector("/usr/local/bin/clang++40 -C blah.c", "40", false);
|
||||
// result = ParserDetection.determineDetector("/usr/local/bin/clang++40 -I/home/me/workspace/first/test/../utility -I/home/me/workspace/first/test/../include -I/home/me/workspace/first/test -g -std=c++1y -stdlib=libc++ -include-pch /home/me/workspace/first/build/Debug/test/catch.hpp.pch -include-pch /home/me/workspace/first/build/Debug/test/pch.hpp.pch -o CMakeFiles/first_test.test.dir/__/utility/fun.cpp.o -c /home/me/workspace/first/utility/fun.cpp",
|
||||
// "40", false);
|
||||
// result = ParserDetection.determineDetector("/usr/local/bin/clang++40
|
||||
// -I/home/me/workspace/first/test/../utility
|
||||
// -I/home/me/workspace/first/test/../include -I/home/me/workspace/first/test -g
|
||||
// -std=c++1y -stdlib=libc++ -include-pch
|
||||
// /home/me/workspace/first/build/Debug/test/catch.hpp.pch -include-pch
|
||||
// /home/me/workspace/first/build/Debug/test/pch.hpp.pch -o
|
||||
// CMakeFiles/first_test.test.dir/__/utility/fun.cpp.o -c
|
||||
// /home/me/workspace/first/utility/fun.cpp",
|
||||
// "40", false);
|
||||
assertNotNull(result);
|
||||
assertEquals("org.eclipse.cdt.core.g++",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("c"));
|
||||
|
||||
result = ParserDetection.determineDetector("/apps/tools/cent_os72/binlinks/g++-7.1 "
|
||||
+ "-I/apps/tools/cent_os72/thirdparty/boost/boost_1_64_0/include "
|
||||
+ "-I/home/XXX/repositories/bepa/common/include -g -Wall "
|
||||
+ "-c /home/XXX/repositories/bepa/common/settings/src/settings.cpp", versionSuffixRegex, true);
|
||||
assertNotNull(result);
|
||||
// verify that we got a C++ parser
|
||||
assertEquals("org.eclipse.cdt.core.g++",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("cpp"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2016-2017 Martin Weber.
|
||||
* Copyright (c) 2016-2020 Martin Weber.
|
||||
*
|
||||
* Content is provided to you under the terms and conditions of the Eclipse Public License Version 2.0 "EPL".
|
||||
* A copy of the EPL is available at http://www.eclipse.org/legal/epl-2.0.
|
||||
|
@ -11,17 +11,9 @@ package org.eclipse.cdt.cmake.is.core.internal;
|
|||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
|
||||
import org.eclipse.cdt.cmake.is.core.language.settings.providers.CompileCommandsJsonParser;
|
||||
import org.junit.Test;
|
||||
|
||||
/**
|
||||
* @author weber
|
||||
*
|
||||
*/
|
||||
public class ParserLookupResultTest {
|
||||
|
||||
CompileCommandsJsonParser testee = new CompileCommandsJsonParser();
|
||||
|
||||
/**
|
||||
* Test method for
|
||||
* {@link org.eclipse.cdt.cmake.is.core.internal.ParserDetection#determineDetector(String, String,boolean)}
|
||||
|
@ -52,9 +44,6 @@ public class ParserLookupResultTest {
|
|||
String cmd = compiler + " " + args;
|
||||
ParserDetection.ParserDetectionResult result = ParserDetection.determineDetector(cmd, null, false);
|
||||
assertNotNull(result);
|
||||
// verify that we got a C++ parser
|
||||
assertEquals("C++", "org.eclipse.cdt.core.g++",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("cpp"));
|
||||
assertEquals("reducedCommandLine", args, result.getReducedCommandLine());
|
||||
|
||||
// test without leading path
|
||||
|
@ -62,9 +51,6 @@ public class ParserLookupResultTest {
|
|||
cmd = compiler + " " + args;
|
||||
result = ParserDetection.determineDetector(cmd, null, false);
|
||||
assertNotNull(result);
|
||||
// verify that we got a C++ parser
|
||||
assertEquals("C++", "org.eclipse.cdt.core.g++",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("cpp"));
|
||||
assertEquals("reducedCommandLine", args, result.getReducedCommandLine());
|
||||
}
|
||||
|
||||
|
@ -82,9 +68,6 @@ public class ParserLookupResultTest {
|
|||
String cmd = compiler + " " + args;
|
||||
ParserDetection.ParserDetectionResult result = ParserDetection.determineDetector(cmd, null, false);
|
||||
assertNotNull(result);
|
||||
// verify that we got a C++ parser
|
||||
assertEquals("C++", "org.eclipse.cdt.core.g++",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("cpp"));
|
||||
assertEquals("command", compiler, result.getCommandLine().getCommand());
|
||||
assertEquals("args", args, result.getCommandLine().getArguments());
|
||||
|
||||
|
@ -93,9 +76,6 @@ public class ParserLookupResultTest {
|
|||
cmd = compiler + " " + args;
|
||||
result = ParserDetection.determineDetector(cmd, null, false);
|
||||
assertNotNull(result);
|
||||
// verify that we got a C++ parser
|
||||
assertEquals("C++", "org.eclipse.cdt.core.g++",
|
||||
result.getDetectorWithMethod().getToolDetectionParticipant().getParser().getLanguageId("cpp"));
|
||||
assertEquals("command", compiler, result.getCommandLine().getCommand());
|
||||
assertEquals("args", args, result.getCommandLine().getArguments());
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015-2018 Martin Weber.
|
||||
* Copyright (c) 2015-2020 Martin Weber.
|
||||
*
|
||||
* Content is provided to you under the terms and conditions of the Eclipse Public License Version 2.0 "EPL".
|
||||
* A copy of the EPL is available at http://www.eclipse.org/legal/epl-2.0.
|
||||
|
@ -12,9 +12,7 @@ import static org.junit.Assert.assertEquals;
|
|||
|
||||
import org.eclipse.cdt.cmake.is.core.Arglets.IncludePath_C_POSIX;
|
||||
import org.eclipse.cdt.cmake.is.core.Arglets.SystemIncludePath_C;
|
||||
import org.eclipse.cdt.cmake.is.core.IArglet.IParseContext;
|
||||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||
import org.eclipse.cdt.core.settings.model.ICSettingEntry;
|
||||
import org.eclipse.cdt.cmake.is.core.IArglet.IArgumentCollector;
|
||||
import org.eclipse.core.runtime.IPath;
|
||||
import org.eclipse.core.runtime.Path;
|
||||
import org.junit.Before;
|
||||
|
@ -39,110 +37,88 @@ public class SystemIncludePath_C_Test {
|
|||
public final void testProcessArgument() {
|
||||
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 entries;
|
||||
ICLanguageSettingEntry parsed;
|
||||
ParseContext result;
|
||||
final IPath cwd = new Path("");
|
||||
|
||||
String name = "/an/Include/Path";
|
||||
|
||||
// -isystem /an/Include/Path
|
||||
entries = new ParseContext();
|
||||
assertEquals(8 + name.length() + 3, testee.processArgument(entries, cwd, "-isystem " + name + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
result = new ParseContext();
|
||||
assertEquals(8 + name.length() + 3, testee.processArgument(result, cwd, "-isystem " + name + more));
|
||||
assertEquals("#entries", 1, result.getSystemIncludePaths().size());
|
||||
assertEquals("name", name, result.getSystemIncludePaths().get(0));
|
||||
// -isystem '/an/Include/Path'
|
||||
entries = new ParseContext();
|
||||
result = new ParseContext();
|
||||
assertEquals(8 + name.length() + 3 + 2,
|
||||
testee.processArgument(entries, cwd, "-isystem " + "'" + name + "'" + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
testee.processArgument(result, cwd, "-isystem " + "'" + name + "'" + more));
|
||||
assertEquals("#entries", 1, result.getSystemIncludePaths().size());
|
||||
assertEquals("name", name, result.getSystemIncludePaths().get(0));
|
||||
// -isystem "/an/Include/Path"
|
||||
entries = new ParseContext();
|
||||
result = new ParseContext();
|
||||
assertEquals(8 + name.length() + 3 + 2,
|
||||
testee.processArgument(entries, cwd, "-isystem " + "\"" + name + "\"" + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
testee.processArgument(result, cwd, "-isystem " + "\"" + name + "\"" + more));
|
||||
assertEquals("#entries", 1, result.getSystemIncludePaths().size());
|
||||
assertEquals("name", name, result.getSystemIncludePaths().get(0));
|
||||
|
||||
name = (new Path("A:an\\Include/Path")).toOSString();
|
||||
// -isystem A:an\Include/Path
|
||||
entries = new ParseContext();
|
||||
assertEquals(8 + 1 + name.length(), testee.processArgument(entries, cwd, "-isystem " + name + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
result = new ParseContext();
|
||||
assertEquals(8 + 1 + name.length(), testee.processArgument(result, cwd, "-isystem " + name + more));
|
||||
assertEquals("#entries", 1, result.getSystemIncludePaths().size());
|
||||
assertEquals("name", name, result.getSystemIncludePaths().get(0));
|
||||
|
||||
// -isystemA:an\Include/Path
|
||||
entries = new ParseContext();
|
||||
assertEquals(8 + name.length(), testee.processArgument(entries, cwd, "-isystem" + name + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
result = new ParseContext();
|
||||
assertEquals(8 + name.length(), testee.processArgument(result, cwd, "-isystem" + name + more));
|
||||
assertEquals("#entries", 1, result.getSystemIncludePaths().size());
|
||||
assertEquals("name", name, result.getSystemIncludePaths().get(0));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test method for
|
||||
* {@link IncludePath_C_POSIX#processArgument(IParseContext, IPath, java.lang.String)}
|
||||
* {@link IncludePath_C_POSIX#processArgument(IArgumentCollector, IPath, java.lang.String)}
|
||||
*/
|
||||
@Test
|
||||
public final void testProcessArgument_WS() {
|
||||
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 entries;
|
||||
ICLanguageSettingEntry parsed;
|
||||
ParseContext result;
|
||||
final IPath cwd = new Path("");
|
||||
|
||||
String name = "/ye olde/In clu de/Pa the";
|
||||
// -isystem '/ye olde/In clu de/Pa the'
|
||||
entries = new ParseContext();
|
||||
result = new ParseContext();
|
||||
assertEquals(8 + name.length() + 3 + 2,
|
||||
testee.processArgument(entries, cwd, "-isystem " + "'" + name + "'" + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
testee.processArgument(result, cwd, "-isystem " + "'" + name + "'" + more));
|
||||
assertEquals("#entries", 1, result.getSystemIncludePaths().size());
|
||||
assertEquals("name", name, result.getSystemIncludePaths().get(0));
|
||||
// -isystem "/ye olde/In clu de/Pa the"
|
||||
entries = new ParseContext();
|
||||
result = new ParseContext();
|
||||
assertEquals(8 + name.length() + 3 + 2,
|
||||
testee.processArgument(entries, cwd, "-isystem " + "\"" + name + "\"" + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
testee.processArgument(result, cwd, "-isystem " + "\"" + name + "\"" + more));
|
||||
assertEquals("#entries", 1, result.getSystemIncludePaths().size());
|
||||
assertEquals("name", name, result.getSystemIncludePaths().get(0));
|
||||
|
||||
name = (new Path("A:an\\In CLU de/Pat h")).toOSString();
|
||||
// -isystem"A:an\In CLU de/Pat h"
|
||||
entries = new ParseContext();
|
||||
result = new ParseContext();
|
||||
assertEquals(8 + name.length() + 2,
|
||||
testee.processArgument(entries, cwd, "-isystem" + "\"" + name + "\"" + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
testee.processArgument(result, cwd, "-isystem" + "\"" + name + "\"" + more));
|
||||
assertEquals("#entries", 1, result.getSystemIncludePaths().size());
|
||||
assertEquals("name", name, result.getSystemIncludePaths().get(0));
|
||||
|
||||
// -isystem'A:an\In CLU de/Pat h'
|
||||
entries = new ParseContext();
|
||||
assertEquals(8 + name.length() + 2, testee.processArgument(entries, cwd, "-isystem" + "'" + name + "'" + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
result = new ParseContext();
|
||||
assertEquals(8 + name.length() + 2, testee.processArgument(result, cwd, "-isystem" + "'" + name + "'" + more));
|
||||
assertEquals("#entries", 1, result.getSystemIncludePaths().size());
|
||||
assertEquals("name", name, result.getSystemIncludePaths().get(0));
|
||||
|
||||
name = (new Path("/Inc/CLUde/Path")).toOSString();
|
||||
// -isystem/Inc/CLUde/Path
|
||||
entries = new ParseContext();
|
||||
assertEquals(8 + name.length(), testee.processArgument(entries, cwd, "-isystem" + name + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
result = new ParseContext();
|
||||
assertEquals(8 + name.length(), testee.processArgument(result, cwd, "-isystem" + name + more));
|
||||
assertEquals("#entries", 1, result.getSystemIncludePaths().size());
|
||||
assertEquals("name", name, result.getSystemIncludePaths().get(0));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2019 Martin Weber.
|
||||
* Copyright (c) 2019-2020 Martin Weber.
|
||||
*
|
||||
* Content is provided to you under the terms and conditions of the Eclipse Public License Version 2.0 "EPL".
|
||||
* A copy of the EPL is available at http://www.eclipse.org/legal/epl-2.0.
|
||||
|
@ -12,7 +12,6 @@ import static org.junit.Assert.assertEquals;
|
|||
|
||||
import org.eclipse.cdt.cmake.is.core.Arglets.SystemIncludePath_armcc;
|
||||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||
import org.eclipse.cdt.core.settings.model.ICSettingEntry;
|
||||
import org.eclipse.core.runtime.IPath;
|
||||
import org.eclipse.core.runtime.Path;
|
||||
import org.junit.Before;
|
||||
|
@ -37,50 +36,40 @@ public class SystemIncludePath_armcc_Test {
|
|||
public final void testProcessArgument() {
|
||||
final String more = " -g "
|
||||
+ " -o CMakeFiles/execut1.dir/util1.c.o -c /testprojects/C-subsrc/src/src-sub/main1.c";
|
||||
ParseContext entries;
|
||||
ParseContext result;
|
||||
ICLanguageSettingEntry parsed;
|
||||
final IPath cwd = new Path("");
|
||||
|
||||
String name = "/an/Include/Path";
|
||||
|
||||
// -J/an/Include/Path
|
||||
entries = new ParseContext();
|
||||
assertEquals(2 + name.length(), testee.processArgument(entries, cwd, "-J" + name + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length(), testee.processArgument(result, cwd, "-J" + name + more));
|
||||
assertEquals("#entries", 1, result.getSystemIncludePaths().size());
|
||||
assertEquals("name", name, result.getSystemIncludePaths().get(0));
|
||||
// -J'/an/Include/Path'
|
||||
entries = new ParseContext();
|
||||
assertEquals(2 + name.length() + 2, testee.processArgument(entries, cwd, "-J" + "'" + name + "'" + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length() + 2, testee.processArgument(result, cwd, "-J" + "'" + name + "'" + more));
|
||||
assertEquals("#entries", 1, result.getSystemIncludePaths().size());
|
||||
assertEquals("name", name, result.getSystemIncludePaths().get(0));
|
||||
// -J"/an/Include/Path"
|
||||
entries = new ParseContext();
|
||||
assertEquals(2 + name.length() + 2, testee.processArgument(entries, cwd, "-J" + "\"" + name + "\"" + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length() + 2, testee.processArgument(result, cwd, "-J" + "\"" + name + "\"" + more));
|
||||
assertEquals("#entries", 1, result.getSystemIncludePaths().size());
|
||||
assertEquals("name", name, result.getSystemIncludePaths().get(0));
|
||||
|
||||
name = (new Path("A:an\\In CLU de/Pat h")).toOSString();
|
||||
// -J"A:an\In CLU de/Pat h"
|
||||
entries = new ParseContext();
|
||||
assertEquals(2 + name.length() + 2, testee.processArgument(entries, cwd, "-J" + "\"" + name + "\"" + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length() + 2, testee.processArgument(result, cwd, "-J" + "\"" + name + "\"" + more));
|
||||
assertEquals("#entries", 1, result.getSystemIncludePaths().size());
|
||||
assertEquals("name", name, result.getSystemIncludePaths().get(0));
|
||||
|
||||
// -J'A:an\In CLU de/Pat h'
|
||||
entries = new ParseContext();
|
||||
assertEquals(2 + name.length() + 2, testee.processArgument(entries, cwd, "-J" + "'" + name + "'" + more));
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
result = new ParseContext();
|
||||
assertEquals(2 + name.length() + 2, testee.processArgument(result, cwd, "-J" + "'" + name + "'" + more));
|
||||
assertEquals("#entries", 1, result.getSystemIncludePaths().size());
|
||||
assertEquals("name", name, result.getSystemIncludePaths().get(0));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2015 Martin Weber.
|
||||
* Copyright (c) 2015-2020 Martin Weber.
|
||||
*
|
||||
* Content is provided to you under the terms and conditions of the Eclipse Public License Version 2.0 "EPL".
|
||||
* A copy of the EPL is available at http://www.eclipse.org/legal/epl-2.0.
|
||||
|
@ -9,6 +9,7 @@
|
|||
package org.eclipse.cdt.cmake.is.core.internal;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.nio.file.Files;
|
||||
|
@ -19,8 +20,6 @@ import org.eclipse.cdt.cmake.is.core.Arglets;
|
|||
import org.eclipse.cdt.cmake.is.core.DefaultToolCommandlineParser;
|
||||
import org.eclipse.cdt.cmake.is.core.IToolCommandlineParser;
|
||||
import org.eclipse.cdt.cmake.is.core.ResponseFileArglets;
|
||||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||
import org.eclipse.cdt.core.settings.model.ICSettingEntry;
|
||||
import org.eclipse.core.runtime.IPath;
|
||||
import org.eclipse.core.runtime.Path;
|
||||
import org.junit.Test;
|
||||
|
@ -33,14 +32,13 @@ public class ToolCommandlineParserTest {
|
|||
@Test
|
||||
public final void testResponseFileArgumentParser_At() throws Exception {
|
||||
|
||||
DefaultToolCommandlineParser testee = new DefaultToolCommandlineParser("egal", new ResponseFileArglets.At(),
|
||||
null, new Arglets.IncludePath_C_POSIX(), new Arglets.MacroDefine_C_POSIX());
|
||||
DefaultToolCommandlineParser testee = new DefaultToolCommandlineParser(new ResponseFileArglets.At(), null,
|
||||
new Arglets.IncludePath_C_POSIX(), new Arglets.MacroDefine_C_POSIX());
|
||||
|
||||
IToolCommandlineParser.IResult entries;
|
||||
IToolCommandlineParser.IResult result;
|
||||
|
||||
final String more = " -g -MMD -o CMakeFiles/execut1.dir/util1.c.o"
|
||||
+ " -c /testprojects/C-subsrc/src/src-sub/main.c";
|
||||
ICLanguageSettingEntry parsed;
|
||||
|
||||
// generate response file
|
||||
final java.nio.file.Path dirP = Files.createTempDirectory("rfpt");
|
||||
|
@ -59,36 +57,30 @@ public class ToolCommandlineParserTest {
|
|||
rspFilePw.close();
|
||||
}
|
||||
// @a/response/file.txt
|
||||
entries = testee.processArgs(new Path(cwdP.toString()), "@" + relRspP.toString() + " -D" + defName + more);
|
||||
assertEquals("#entries", 4, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", def1Name, parsed.getName());
|
||||
parsed = entries.getSettingEntries().get(1);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", cwdP.resolve(incDirName).toString(), parsed.getName());
|
||||
parsed = entries.getSettingEntries().get(2);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", def2Name, parsed.getName());
|
||||
parsed = entries.getSettingEntries().get(3);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", defName, parsed.getName());
|
||||
result = testee.processArgs(new Path(cwdP.toString()), "@" + relRspP.toString() + " -D" + defName + more);
|
||||
assertEquals("#defines", 3, result.getDefines().size());
|
||||
assertTrue("found", result.getDefines().containsKey(def1Name));
|
||||
assertEquals("value", "234", result.getDefines().get(def1Name));
|
||||
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("#paths", 1, result.getIncludePaths().size());
|
||||
assertEquals("value", cwdP.resolve(incDirName).toString(), result.getIncludePaths().get(0));
|
||||
|
||||
// @ a/response.file.txt
|
||||
entries = testee.processArgs(new Path(cwdP.toString()), "@ " + relRspP.toString() + " -D" + defName + more);
|
||||
assertEquals("#entries", 4, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", def1Name, parsed.getName());
|
||||
parsed = entries.getSettingEntries().get(1);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", cwdP.resolve(incDirName).toString(), parsed.getName());
|
||||
parsed = entries.getSettingEntries().get(2);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", def2Name, parsed.getName());
|
||||
parsed = entries.getSettingEntries().get(3);
|
||||
assertEquals("kind", ICSettingEntry.MACRO, parsed.getKind());
|
||||
assertEquals("name", defName, parsed.getName());
|
||||
result = testee.processArgs(new Path(cwdP.toString()), "@ " + relRspP.toString() + " -D" + defName + more);
|
||||
assertEquals("#defines", 3, result.getDefines().size());
|
||||
assertTrue("found", result.getDefines().containsKey(def1Name));
|
||||
assertEquals("value", "234", result.getDefines().get(def1Name));
|
||||
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("#paths", 1, result.getIncludePaths().size());
|
||||
assertEquals("value", cwdP.resolve(incDirName).toString(), result.getIncludePaths().get(0));
|
||||
|
||||
Files.delete(absRspP);
|
||||
}
|
||||
|
@ -98,22 +90,19 @@ public class ToolCommandlineParserTest {
|
|||
*/
|
||||
@Test
|
||||
public final void testResponseFileArgumentParser_At_heredoc() throws Exception {
|
||||
DefaultToolCommandlineParser testee = new DefaultToolCommandlineParser("egal", new ResponseFileArglets.At(),
|
||||
null, new Arglets.IncludePath_C_POSIX(), new Arglets.MacroDefine_C_POSIX());
|
||||
DefaultToolCommandlineParser testee = new DefaultToolCommandlineParser(new ResponseFileArglets.At(), null,
|
||||
new Arglets.IncludePath_C_POSIX(), new Arglets.MacroDefine_C_POSIX());
|
||||
|
||||
final String more = " -g -MMD -o CMakeFiles/execut1.dir/util1.c.o"
|
||||
+ " -c /testprojects/C-subsrc/src/src-sub/main.c";
|
||||
IToolCommandlineParser.IResult entries;
|
||||
ICLanguageSettingEntry parsed;
|
||||
IToolCommandlineParser.IResult result;
|
||||
|
||||
String name = "/ye/olde/Include/Pathe";
|
||||
IPath cwd = new Path("");
|
||||
entries = new ParseContext();
|
||||
result = new ParseContext();
|
||||
// @<< ... <<
|
||||
entries = testee.processArgs(cwd, "@<<" + " -I" + name + " <<" + more);
|
||||
assertEquals("#entries", 1, entries.getSettingEntries().size());
|
||||
parsed = entries.getSettingEntries().get(0);
|
||||
assertEquals("kind", ICSettingEntry.INCLUDE_PATH, parsed.getKind());
|
||||
assertEquals("name", name, parsed.getName());
|
||||
result = testee.processArgs(cwd, "@<<" + " -I" + name + " <<" + more);
|
||||
assertEquals("#paths", 1, result.getIncludePaths().size());
|
||||
assertEquals("name", name, result.getIncludePaths().get(0));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2018 Martin Weber.
|
||||
* Copyright (c) 2018-2020 Martin Weber.
|
||||
*
|
||||
* Content is provided to you under the terms and conditions of the Eclipse Public License Version 2.0 "EPL".
|
||||
* A copy of the EPL is available at http://www.eclipse.org/legal/epl-2.0.
|
||||
|
@ -10,6 +10,7 @@
|
|||
package org.eclipse.cdt.cmake.is.core.internal.builtins;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.io.IOException;
|
||||
|
@ -17,7 +18,6 @@ import java.io.InputStream;
|
|||
|
||||
import org.eclipse.cdt.cmake.is.core.builtins.GccOutputProcessor;
|
||||
import org.eclipse.cdt.cmake.is.core.builtins.OutputSniffer;
|
||||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||
import org.junit.Before;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
|
@ -41,13 +41,13 @@ public class GccOutputProcessorTest {
|
|||
@Test
|
||||
@Ignore
|
||||
public void testProcessLine() {
|
||||
testee.processLine("#define AAA xyz", new ProcessingContext());
|
||||
testee.processLine("#define AAA xyz", new RawIndexerInfo());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testProcessFile() throws IOException {
|
||||
// pass resource content line-wise to the testee...
|
||||
ProcessingContext pc = new ProcessingContext();
|
||||
RawIndexerInfo pc = new RawIndexerInfo();
|
||||
try (InputStream is = getClass().getResourceAsStream("cbd-gcc.output.txt");
|
||||
OutputSniffer os = new OutputSniffer(testee, null, pc)) {
|
||||
byte[] buffer = new byte[1024];
|
||||
|
@ -57,27 +57,11 @@ public class GccOutputProcessorTest {
|
|||
}
|
||||
}
|
||||
|
||||
// check __GNUC__
|
||||
for (ICLanguageSettingEntry entry : pc.getSettingEntries()) {
|
||||
if (entry.getKind() == ICLanguageSettingEntry.MACRO) {
|
||||
if ("__GNUC__".equals(entry.getName()))
|
||||
assertEquals("value (" + entry.getName() + ")", "4", entry.getValue());
|
||||
}
|
||||
}
|
||||
assertEquals("# include paths", 5, pc.getIncludePaths().size());
|
||||
assertEquals("# macros", 238, pc.getDefines().size());
|
||||
|
||||
int inc = 0;
|
||||
int macro = 0;
|
||||
for (ICLanguageSettingEntry entry : pc.getSettingEntries()) {
|
||||
if (entry.getKind() == ICLanguageSettingEntry.INCLUDE_PATH) {
|
||||
inc++;
|
||||
assertTrue("path", !"".equals(entry.getName()));
|
||||
} else if (entry.getKind() == ICLanguageSettingEntry.MACRO) {
|
||||
macro++;
|
||||
assertTrue("macro", !"".equals(entry.getName()));
|
||||
assertTrue("value (" + entry.getName() + ")", entry.getValue() != null);
|
||||
}
|
||||
}
|
||||
assertEquals("# include paths", 5, inc);
|
||||
assertEquals("# macros", 238, macro);
|
||||
// check __GNUC__
|
||||
assertTrue("__GNUC__", pc.getDefines().containsKey("__GNUC__"));
|
||||
assertNotNull("value", pc.getDefines().get("__GNUC__"));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue