mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-19 23:15:24 +02:00
Run testStringConcatenationWithMacro test for both, C and C++.
This commit is contained in:
parent
6ab4145c56
commit
814ee56c8a
3 changed files with 25 additions and 11 deletions
|
@ -176,8 +176,7 @@ public class AST2CPPTests extends AST2TestBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected BindingAssertionHelper getAssertionHelper() throws ParserException, IOException {
|
protected BindingAssertionHelper getAssertionHelper() throws ParserException, IOException {
|
||||||
String code= getAboveComment();
|
return getAssertionHelper(CPP);
|
||||||
return new BindingAssertionHelper(code, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void assertProblemBinding(int id, IBinding b) {
|
private void assertProblemBinding(int id, IBinding b) {
|
||||||
|
@ -7843,15 +7842,6 @@ public class AST2CPPTests extends AST2TestBase {
|
||||||
checkDeclDef(declNames, defNames, cls.getMembers());
|
checkDeclDef(declNames, defNames, cls.getMembers());
|
||||||
}
|
}
|
||||||
|
|
||||||
// #define MACRO "macro"
|
|
||||||
// void f(const char* s);
|
|
||||||
// void test() {
|
|
||||||
// f("aaa"MACRO);
|
|
||||||
// }
|
|
||||||
public void testStringConcatenationWithMacro() throws Exception {
|
|
||||||
parseAndCheckBindings();
|
|
||||||
}
|
|
||||||
|
|
||||||
// class X {
|
// class X {
|
||||||
// struct S* m1;
|
// struct S* m1;
|
||||||
// struct T;
|
// struct T;
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
package org.eclipse.cdt.core.parser.tests.ast2;
|
package org.eclipse.cdt.core.parser.tests.ast2;
|
||||||
|
|
||||||
|
import static org.eclipse.cdt.core.parser.ParserLanguage.C;
|
||||||
import static org.eclipse.cdt.core.parser.ParserLanguage.CPP;
|
import static org.eclipse.cdt.core.parser.ParserLanguage.CPP;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -110,6 +111,7 @@ import junit.framework.AssertionFailedError;
|
||||||
*/
|
*/
|
||||||
public class AST2TestBase extends BaseTestCase {
|
public class AST2TestBase extends BaseTestCase {
|
||||||
public final static String TEST_CODE = "<testcode>";
|
public final static String TEST_CODE = "<testcode>";
|
||||||
|
protected static final ParserLanguage[] C_AND_CPP = new ParserLanguage[] { C, CPP };
|
||||||
protected static final IParserLogService NULL_LOG = new NullLogService();
|
protected static final IParserLogService NULL_LOG = new NullLogService();
|
||||||
protected static boolean sValidateCopy;
|
protected static boolean sValidateCopy;
|
||||||
|
|
||||||
|
@ -838,6 +840,11 @@ public class AST2TestBase extends BaseTestCase {
|
||||||
return tu;
|
return tu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected BindingAssertionHelper getAssertionHelper(ParserLanguage lang) throws ParserException, IOException {
|
||||||
|
String code= getAboveComment();
|
||||||
|
return new BindingAssertionHelper(code, lang);
|
||||||
|
}
|
||||||
|
|
||||||
final protected void assertNoProblemBindings(NameCollector col) {
|
final protected void assertNoProblemBindings(NameCollector col) {
|
||||||
for (IASTName n : col.nameList) {
|
for (IASTName n : col.nameList) {
|
||||||
assertFalse("ProblemBinding for " + n.getRawSignature(), n.resolveBinding() instanceof IProblemBinding);
|
assertFalse("ProblemBinding for " + n.getRawSignature(), n.resolveBinding() instanceof IProblemBinding);
|
||||||
|
|
|
@ -715,6 +715,23 @@ public class AST2Tests extends AST2TestBase {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// #define _MACRO "macro"
|
||||||
|
// #define MACRO _MACRO
|
||||||
|
// void f(const char* s);
|
||||||
|
// void test() {
|
||||||
|
// f("aaa"MACRO);
|
||||||
|
// }
|
||||||
|
public void testStringConcatenationWithMacro() throws Exception {
|
||||||
|
for (ParserLanguage lang : C_AND_CPP) {
|
||||||
|
BindingAssertionHelper bh = getAssertionHelper(lang);
|
||||||
|
IASTName name = bh.findName("f(\"", 1);
|
||||||
|
assertNotNull(name);
|
||||||
|
IASTFunctionCallExpression call = (IASTFunctionCallExpression) name.getParent().getParent();
|
||||||
|
IASTLiteralExpression arg = (IASTLiteralExpression) call.getArguments()[0];
|
||||||
|
assertEquals("\"aaamacro\"", arg.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void testStructureDef() throws Exception {
|
public void testStructureDef() throws Exception {
|
||||||
StringBuffer buffer = new StringBuffer();
|
StringBuffer buffer = new StringBuffer();
|
||||||
buffer.append("struct A; \r\n"); //$NON-NLS-1$
|
buffer.append("struct A; \r\n"); //$NON-NLS-1$
|
||||||
|
|
Loading…
Add table
Reference in a new issue