1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-05 08:46:02 +02:00

Bug 412380 Fix for LRParser Tests

Change-Id: I5567cebbace02efe038076ebaf6193308fa5289f
Reviewed-on: https://git.eclipse.org/r/16880
Reviewed-by: Andrew Gvozdev <angvoz.dev@gmail.com>
Reviewed-by: Chris Recoskie <recoskie@ca.ibm.com>
IP-Clean: Chris Recoskie <recoskie@ca.ibm.com>
Tested-by: Chris Recoskie <recoskie@ca.ibm.com>
This commit is contained in:
Thomas Corbat 2013-09-30 15:01:54 +02:00 committed by Chris Recoskie
parent 4eb628b862
commit 830c09b3be
12 changed files with 37 additions and 31 deletions

View file

@ -38,12 +38,12 @@ public class LRCPPImplicitNameTests extends AST2CPPImplicitNameTests {
@Override
protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems, boolean skipTrivialInitializers) {
protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems, int limitTrivialInitializers) {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
ParseHelper.Options options = new ParseHelper.Options();
options.setCheckSyntaxProblems(expectNoProblems);
options.setCheckPreprocessorProblems(expectNoProblems);
options.setSkipTrivialInitializers(skipTrivialInitializers);
options.setLimitTrivialInitializers(limitTrivialInitializers);
return ParseHelper.parse(code, language, options);
}

View file

@ -85,12 +85,12 @@ public class LRCPPSpecTest extends AST2CPPSpecTest {
}
@Override
protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems, boolean skipTrivialInitializers) throws ParserException {
protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems, int limitTrivialInitializers) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
ParseHelper.Options options = new ParseHelper.Options();
options.setCheckSyntaxProblems(expectNoProblems);
options.setCheckPreprocessorProblems(expectNoProblems);
options.setSkipTrivialInitializers(skipTrivialInitializers);
options.setLimitTrivialInitializers(limitTrivialInitializers);
return ParseHelper.parse(code, language, options);
}

View file

@ -152,12 +152,12 @@ public class LRCPPTests extends AST2CPPTests {
@Override
protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems, boolean skipTrivialInitializers) throws ParserException {
protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems, int limitTrivialInitializers) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
ParseHelper.Options options = new ParseHelper.Options();
options.setCheckSyntaxProblems(expectNoProblems);
options.setCheckPreprocessorProblems(expectNoProblems);
options.setSkipTrivialInitializers(skipTrivialInitializers);
options.setLimitTrivialInitializers(limitTrivialInitializers);
return ParseHelper.parse(code, language, options);
}

View file

@ -42,13 +42,13 @@ public class LRCommentTests extends CommentTests {
@SuppressWarnings("unused")
protected IASTTranslationUnit parse(String code, ParserLanguage lang,
boolean useGNUExtensions, boolean expectNoProblems,
boolean skipTrivialInitializers) throws ParserException {
int limitTrivialInitializers) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
ParseHelper.Options options = new ParseHelper.Options();
options.setCheckSyntaxProblems(expectNoProblems);
options.setCheckPreprocessorProblems(expectNoProblems);
options.setSkipTrivialInitializers(skipTrivialInitializers);
options.setLimitTrivialInitializers(limitTrivialInitializers);
return ParseHelper.commentParse(code, language);
}
@ -68,7 +68,7 @@ public class LRCommentTests extends CommentTests {
"int x = MACRO; \n" +
"//comment\n";
IASTTranslationUnit tu = parse(code, ParserLanguage.C, false, false, true);
IASTTranslationUnit tu = parse(code, ParserLanguage.C, false, false, 0);
IASTComment[] comments = tu.getComments();
assertEquals(1, comments.length);

View file

@ -34,12 +34,12 @@ public class LRImageLocationTests extends ImageLocationTests {
@Override
@SuppressWarnings("unused")
protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions,
boolean expectNoProblems, boolean skipTrivialInitializers) throws ParserException {
boolean expectNoProblems, int limitTrivialInitializers) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
ParseHelper.Options options = new ParseHelper.Options();
options.setCheckSyntaxProblems(expectNoProblems);
options.setCheckPreprocessorProblems(expectNoProblems);
options.setSkipTrivialInitializers(skipTrivialInitializers);
options.setLimitTrivialInitializers(limitTrivialInitializers);
return ParseHelper.parse(code, language, options);
}

View file

@ -34,12 +34,12 @@ public class LRInactiveCodeTests extends ASTInactiveCodeTests {
@Override
protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems, boolean skipTrivialInitializers) {
protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems, int limitTrivialInitializers) {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
ParseHelper.Options options = new ParseHelper.Options();
options.setCheckSyntaxProblems(expectNoProblems);
options.setCheckPreprocessorProblems(expectNoProblems);
options.setSkipTrivialInitializers(skipTrivialInitializers);
options.setLimitTrivialInitializers(limitTrivialInitializers);
return ParseHelper.parse(code, language, options);
}

View file

@ -34,12 +34,12 @@ public class LRNodeSelectorTest extends ASTNodeSelectorTest {
@Override
protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems, boolean skipTrivialInitializer) throws ParserException {
protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems, int limitTrivialInitializers) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
ParseHelper.Options options = new ParseHelper.Options();
options.setCheckSyntaxProblems(expectNoProblems);
options.setCheckPreprocessorProblems(expectNoProblems);
options.setSkipTrivialInitializers(skipTrivialInitializer);
options.setLimitTrivialInitializers(limitTrivialInitializers);
return ParseHelper.parse(code, language, options);
}

View file

@ -34,12 +34,12 @@ public class LRSemanticsTests extends SemanticsTests {
@SuppressWarnings("unused")
@Override
protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions,
boolean expectNoProblems, boolean skipTrivialInitializers) throws ParserException {
boolean expectNoProblems, int limitTrivialInitializers) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
ParseHelper.Options options = new ParseHelper.Options();
options.setCheckSyntaxProblems(expectNoProblems);
options.setCheckPreprocessorProblems(expectNoProblems);
options.setSkipTrivialInitializers(skipTrivialInitializers);
options.setLimitTrivialInitializers(limitTrivialInitializers);
return ParseHelper.parse(code, language, options);
}

View file

@ -29,16 +29,16 @@ public class LRTaskParserTest extends TaskParserTest {
@Override
protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems ) throws ParserException {
return parse(code, lang, useGNUExtensions, expectNoProblems, false);
return parse(code, lang, useGNUExtensions, expectNoProblems, -1);
}
@Override
protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems, boolean skipTrivialInitializers) throws ParserException {
protected IASTTranslationUnit parse( String code, ParserLanguage lang, @SuppressWarnings("unused") boolean useGNUExtensions, boolean expectNoProblems, int limitTrivialInitializers) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
ParseHelper.Options options = new ParseHelper.Options();
options.setCheckSyntaxProblems(expectNoProblems);
options.setCheckPreprocessorProblems(expectNoProblems);
options.setSkipTrivialInitializers(skipTrivialInitializers);
options.setLimitTrivialInitializers(limitTrivialInitializers);
return ParseHelper.parse(code, language, options);
}

View file

@ -116,12 +116,12 @@ public class LRTemplateTests extends AST2TemplateTests {
@Override
@SuppressWarnings("unused")
protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems, boolean skipTrivialInitializers) throws ParserException {
protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems, int limitTrivialInitializers) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
ParseHelper.Options options = new ParseHelper.Options();
options.setCheckSyntaxProblems(expectNoProblems);
options.setCheckPreprocessorProblems(expectNoProblems);
options.setSkipTrivialInitializers(skipTrivialInitializers);
options.setLimitTrivialInitializers(limitTrivialInitializers);
return ParseHelper.parse(code, language, options);
}

View file

@ -76,20 +76,26 @@ public class LRTests extends AST2Tests {
@Override
public void testEmptyTrailingMacro_303152() throws Exception {}
@Override // not applicable to lr parser memory usage.
public void testLargeTrivialAggregateInitializer_253690() throws Exception{}
public void testLargeTrivialAggregateInitializer_253690() throws Exception {}
@Override
public void testMaximumTrivialExpressionsInInitializers_412380() throws Exception {}
@Override
public void testNoSkipTrivialAggregateInitializer_412380() throws Exception {}
@Override
public void testNoSkipNonTrivialAggregateInitializer_412380() throws Exception {}
@Override
protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems ) throws ParserException {
return parse(code, lang, useGNUExtensions, expectNoProblems, false);
return parse(code, lang, useGNUExtensions, expectNoProblems, -1);
}
@Override
protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems, boolean skipTrivialInitializers) throws ParserException {
protected IASTTranslationUnit parse( String code, ParserLanguage lang, boolean useGNUExtensions, boolean expectNoProblems, int limitTrivialInitializers) throws ParserException {
ILanguage language = lang.isCPP() ? getCPPLanguage() : getCLanguage();
ParseHelper.Options options = new ParseHelper.Options();
options.setCheckSyntaxProblems(expectNoProblems);
options.setCheckPreprocessorProblems(expectNoProblems);
options.setSkipTrivialInitializers(skipTrivialInitializers);
options.setLimitTrivialInitializers(limitTrivialInitializers);
return ParseHelper.parse(code, language, options);
}

View file

@ -92,7 +92,7 @@ public class ParseHelper {
int expectedProblemBindings;
String[] problems;
boolean skipTrivialInitializers;
int limitTrivialInitializers = -1;
public Options setCheckSyntaxProblems(boolean checkSyntaxProblems) {
this.checkSyntaxProblems = checkSyntaxProblems;
@ -116,8 +116,8 @@ public class ParseHelper {
setCheckBindings(true);
return this;
}
public Options setSkipTrivialInitializers(boolean skipTrivialInitializers) {
this.skipTrivialInitializers = skipTrivialInitializers;
public Options setLimitTrivialInitializers(int limitTrivialInitializers) {
this.limitTrivialInitializers = limitTrivialInitializers;
return this;
}
@ -152,7 +152,7 @@ public class ParseHelper {
IASTTranslationUnit tu;
try {
int languageOptions = 0;
if(options.skipTrivialInitializers)
if(options.limitTrivialInitializers >= 0 && options.limitTrivialInitializers != Integer.MAX_VALUE)
languageOptions |= ILanguage.OPTION_SKIP_TRIVIAL_EXPRESSIONS_IN_AGGREGATE_INITIALIZERS;
tu = language.getASTTranslationUnit(codeReader, scanInfo, fileCreator, null, languageOptions, ParserUtil.getParserLogService());
@ -206,7 +206,7 @@ public class ParseHelper {
IASTTranslationUnit tu;
try {
int languageOptions = 0;
if(options.skipTrivialInitializers)
if(options.limitTrivialInitializers >= 0 && options.limitTrivialInitializers != Integer.MAX_VALUE)
languageOptions |= ILanguage.OPTION_SKIP_TRIVIAL_EXPRESSIONS_IN_AGGREGATE_INITIALIZERS;
tu = language.getASTTranslationUnit(fileContent, scanInfo, fileContentProvider, null, languageOptions, ParserUtil.getParserLogService());