From 636691a404147be746e4b2780437e34e553e2dd7 Mon Sep 17 00:00:00 2001 From: Martin Weber Date: Thu, 7 May 2020 21:29:23 +0200 Subject: [PATCH] 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 --- .../internal/IncludePath_C_POSIXTest.java | 181 +++++------ .../internal/MacroDefine_C_POSIXTest.java | 299 +++++++----------- .../internal/MacroUndefine_C_POSIXTest.java | 35 +- .../is/core/internal/ParserDetectionTest.java | 74 +---- .../core/internal/ParserLookupResultTest.java | 22 +- .../internal/SystemIncludePath_C_Test.java | 114 +++---- .../SystemIncludePath_armcc_Test.java | 55 ++-- .../internal/ToolCommandlineParserTest.java | 79 ++--- .../builtins/GccOutputProcessorTest.java | 34 +- 9 files changed, 315 insertions(+), 578 deletions(-) diff --git a/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/IncludePath_C_POSIXTest.java b/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/IncludePath_C_POSIXTest.java index 2e82730b0f0..2a350968f44 100644 --- a/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/IncludePath_C_POSIXTest.java +++ b/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/IncludePath_C_POSIXTest.java @@ -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)); } } diff --git a/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/MacroDefine_C_POSIXTest.java b/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/MacroDefine_C_POSIXTest.java index 31e21b58785..23e4cf8c295 100644 --- a/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/MacroDefine_C_POSIXTest.java +++ b/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/MacroDefine_C_POSIXTest.java @@ -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 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)); } } diff --git a/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/MacroUndefine_C_POSIXTest.java b/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/MacroUndefine_C_POSIXTest.java index f3daa195980..483e1571e5c 100644 --- a/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/MacroUndefine_C_POSIXTest.java +++ b/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/MacroUndefine_C_POSIXTest.java @@ -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)); } } diff --git a/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/ParserDetectionTest.java b/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/ParserDetectionTest.java index 95c213f6856..fe7a3ce9282 100644 --- a/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/ParserDetectionTest.java +++ b/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/ParserDetectionTest.java @@ -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 diff --git a/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/ParserLookupResultTest.java b/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/ParserLookupResultTest.java index 286ed54cf4e..ad066eedc90 100644 --- a/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/ParserLookupResultTest.java +++ b/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/ParserLookupResultTest.java @@ -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()); } diff --git a/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/SystemIncludePath_C_Test.java b/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/SystemIncludePath_C_Test.java index 40337cbfb16..03fe1c05ec2 100644 --- a/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/SystemIncludePath_C_Test.java +++ b/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/SystemIncludePath_C_Test.java @@ -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)); } } diff --git a/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/SystemIncludePath_armcc_Test.java b/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/SystemIncludePath_armcc_Test.java index 7895502077c..4fb6411fa03 100644 --- a/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/SystemIncludePath_armcc_Test.java +++ b/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/SystemIncludePath_armcc_Test.java @@ -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)); } } diff --git a/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/ToolCommandlineParserTest.java b/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/ToolCommandlineParserTest.java index 59b46ccb9ec..00977479b52 100644 --- a/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/ToolCommandlineParserTest.java +++ b/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/ToolCommandlineParserTest.java @@ -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)); } } diff --git a/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/builtins/GccOutputProcessorTest.java b/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/builtins/GccOutputProcessorTest.java index 5089ad27327..eb7ad2d99a1 100644 --- a/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/builtins/GccOutputProcessorTest.java +++ b/cmake/org.eclipse.cdt.cmake.is.core.tests/src/main/java/org/eclipse/cdt/cmake/is/core/internal/builtins/GccOutputProcessorTest.java @@ -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__")); } }