mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-08-05 07:15:39 +02:00
Added SelectionParse failed test.
This commit is contained in:
parent
b988081c1f
commit
9af8c9f02e
4 changed files with 111 additions and 53 deletions
|
@ -0,0 +1,38 @@
|
||||||
|
/**********************************************************************
|
||||||
|
* Copyright (c) 2002-2004 Rational Software Corporation and others.
|
||||||
|
* All rights reserved. This program and the accompanying materials
|
||||||
|
* are made available under the terms of the Common Public License v0.5
|
||||||
|
* which accompanies this distribution, and is available at
|
||||||
|
* http://www.eclipse.org/legal/cpl-v05.html
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* IBM Rational Software - Initial API and implementation */
|
||||||
|
package org.eclipse.cdt.core.parser.failedTests;
|
||||||
|
|
||||||
|
import java.io.StringWriter;
|
||||||
|
import java.io.Writer;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.core.parser.ast.IASTNode;
|
||||||
|
import org.eclipse.cdt.core.parser.tests.SelectionParseBaseTest;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author johnc
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class SelectionParseFailedTest extends SelectionParseBaseTest {
|
||||||
|
|
||||||
|
public void testBug61800() throws Exception
|
||||||
|
{
|
||||||
|
Writer writer = new StringWriter();
|
||||||
|
writer.write( "class ABCDEF {\n"); //$NON-NLS-1$
|
||||||
|
writer.write( " static int stInt; };\n"); //$NON-NLS-1$
|
||||||
|
writer.write( "int ABCDEF::stInt = 5;\n"); //$NON-NLS-1$
|
||||||
|
String code = writer.toString();
|
||||||
|
int startIndex = code.indexOf( "::stInt") + 2; //$NON-NLS-1$
|
||||||
|
IASTNode node = parse( code, startIndex, startIndex+ 5, false );
|
||||||
|
// IASTNode node = parse( code, startIndex, startIndex+ 5 );
|
||||||
|
// assertTrue( node instanceof IASTField );
|
||||||
|
// assertEquals( ((IASTField)node).getName(), "stInt" ); //$NON-NLS-1$
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,69 @@
|
||||||
|
/**********************************************************************
|
||||||
|
* Copyright (c) 2002-2004 Rational Software Corporation and others.
|
||||||
|
* All rights reserved. This program and the accompanying materials
|
||||||
|
* are made available under the terms of the Common Public License v0.5
|
||||||
|
* which accompanies this distribution, and is available at
|
||||||
|
* http://www.eclipse.org/legal/cpl-v05.html
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* IBM Rational Software - Initial API and implementation */
|
||||||
|
package org.eclipse.cdt.core.parser.tests;
|
||||||
|
|
||||||
|
import java.io.StringReader;
|
||||||
|
|
||||||
|
import org.eclipse.cdt.core.parser.IParser;
|
||||||
|
import org.eclipse.cdt.core.parser.NullLogService;
|
||||||
|
import org.eclipse.cdt.core.parser.ParserFactory;
|
||||||
|
import org.eclipse.cdt.core.parser.ParserLanguage;
|
||||||
|
import org.eclipse.cdt.core.parser.ParserMode;
|
||||||
|
import org.eclipse.cdt.core.parser.ParserUtil;
|
||||||
|
import org.eclipse.cdt.core.parser.ScannerInfo;
|
||||||
|
import org.eclipse.cdt.core.parser.ast.IASTNode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author johnc
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class SelectionParseBaseTest extends CompleteParseBaseTest {
|
||||||
|
|
||||||
|
protected IASTNode parse(String code, int offset1, int offset2) throws Exception {
|
||||||
|
return parse( code, offset1, offset2, true );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param code
|
||||||
|
* @param offset1
|
||||||
|
* @param offset2
|
||||||
|
* @param b
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
protected IASTNode parse(String code, int offset1, int offset2, boolean expectedToPass) throws Exception {
|
||||||
|
callback = new FullParseCallback();
|
||||||
|
IParser parser = null;
|
||||||
|
|
||||||
|
parser =
|
||||||
|
ParserFactory.createParser(
|
||||||
|
ParserFactory.createScanner(
|
||||||
|
new StringReader(code),
|
||||||
|
"completion-test", //$NON-NLS-1$
|
||||||
|
new ScannerInfo(),
|
||||||
|
ParserMode.SELECTION_PARSE,
|
||||||
|
ParserLanguage.CPP,
|
||||||
|
callback,
|
||||||
|
new NullLogService(), null),
|
||||||
|
callback,
|
||||||
|
ParserMode.SELECTION_PARSE,
|
||||||
|
ParserLanguage.CPP,
|
||||||
|
ParserUtil.getParserLogService());
|
||||||
|
|
||||||
|
IParser.ISelectionParseResult result =parser.parse( offset1, offset2 );
|
||||||
|
if( expectedToPass )
|
||||||
|
{
|
||||||
|
assertNotNull( result );
|
||||||
|
String filename = result.getFilename();
|
||||||
|
assertTrue( !filename.equals( "")); //$NON-NLS-1$
|
||||||
|
return (IASTNode) result.getOffsetableNamedElement();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
|
@ -10,18 +10,11 @@
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
package org.eclipse.cdt.core.parser.tests;
|
package org.eclipse.cdt.core.parser.tests;
|
||||||
|
|
||||||
import java.io.StringReader;
|
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
import java.io.Writer;
|
import java.io.Writer;
|
||||||
|
|
||||||
import org.eclipse.cdt.core.parser.IParser;
|
|
||||||
import org.eclipse.cdt.core.parser.NullLogService;
|
|
||||||
import org.eclipse.cdt.core.parser.ParserFactory;
|
|
||||||
import org.eclipse.cdt.core.parser.ParserLanguage;
|
|
||||||
import org.eclipse.cdt.core.parser.ParserMode;
|
|
||||||
import org.eclipse.cdt.core.parser.ParserUtil;
|
|
||||||
import org.eclipse.cdt.core.parser.ScannerInfo;
|
|
||||||
import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier;
|
import org.eclipse.cdt.core.parser.ast.IASTClassSpecifier;
|
||||||
|
import org.eclipse.cdt.core.parser.ast.IASTField;
|
||||||
import org.eclipse.cdt.core.parser.ast.IASTFunction;
|
import org.eclipse.cdt.core.parser.ast.IASTFunction;
|
||||||
import org.eclipse.cdt.core.parser.ast.IASTMethod;
|
import org.eclipse.cdt.core.parser.ast.IASTMethod;
|
||||||
import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition;
|
import org.eclipse.cdt.core.parser.ast.IASTNamespaceDefinition;
|
||||||
|
@ -32,14 +25,8 @@ import org.eclipse.cdt.core.parser.ast.IASTVariable;
|
||||||
/**
|
/**
|
||||||
* @author jcamelon
|
* @author jcamelon
|
||||||
*/
|
*/
|
||||||
public class SelectionParseTest extends CompleteParseBaseTest {
|
public class SelectionParseTest extends SelectionParseBaseTest {
|
||||||
|
|
||||||
protected IASTNode parse(String code, int offset1, int offset2 )
|
|
||||||
throws Exception {
|
|
||||||
return parse( code, offset1, offset2, true );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void testBaseCase_VariableReference() throws Exception
|
public void testBaseCase_VariableReference() throws Exception
|
||||||
{
|
{
|
||||||
String code = "void f() { int x; x=3; }"; //$NON-NLS-1$
|
String code = "void f() { int x; x=3; }"; //$NON-NLS-1$
|
||||||
|
@ -68,44 +55,6 @@ public class SelectionParseTest extends CompleteParseBaseTest {
|
||||||
assertNull( parse( code, offset1, offset2, false ));
|
assertNull( parse( code, offset1, offset2, false ));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param code
|
|
||||||
* @param offset1
|
|
||||||
* @param offset2
|
|
||||||
* @param b
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
protected IASTNode parse(String code, int offset1, int offset2, boolean expectedToPass ) throws Exception {
|
|
||||||
callback = new FullParseCallback();
|
|
||||||
IParser parser = null;
|
|
||||||
|
|
||||||
parser =
|
|
||||||
ParserFactory.createParser(
|
|
||||||
ParserFactory.createScanner(
|
|
||||||
new StringReader(code),
|
|
||||||
"completion-test", //$NON-NLS-1$
|
|
||||||
new ScannerInfo(),
|
|
||||||
ParserMode.SELECTION_PARSE,
|
|
||||||
ParserLanguage.CPP,
|
|
||||||
callback,
|
|
||||||
new NullLogService(), null),
|
|
||||||
callback,
|
|
||||||
ParserMode.SELECTION_PARSE,
|
|
||||||
ParserLanguage.CPP,
|
|
||||||
ParserUtil.getParserLogService());
|
|
||||||
|
|
||||||
IParser.ISelectionParseResult result =parser.parse( offset1, offset2 );
|
|
||||||
if( expectedToPass )
|
|
||||||
{
|
|
||||||
assertNotNull( result );
|
|
||||||
String filename = result.getFilename();
|
|
||||||
assertTrue( !filename.equals( "")); //$NON-NLS-1$
|
|
||||||
return (IASTNode) result.getOffsetableNamedElement();
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void testBaseCase_FunctionDeclaration() throws Exception
|
public void testBaseCase_FunctionDeclaration() throws Exception
|
||||||
{
|
{
|
||||||
String code = "int x(); x( );"; //$NON-NLS-1$
|
String code = "int x(); x( );"; //$NON-NLS-1$
|
||||||
|
|
|
@ -20,6 +20,7 @@ import org.eclipse.cdt.core.model.tests.WorkingCopyTests;
|
||||||
import org.eclipse.cdt.core.parser.failedTests.ASTFailedTests;
|
import org.eclipse.cdt.core.parser.failedTests.ASTFailedTests;
|
||||||
import org.eclipse.cdt.core.parser.failedTests.FailedCompleteParseASTTest;
|
import org.eclipse.cdt.core.parser.failedTests.FailedCompleteParseASTTest;
|
||||||
import org.eclipse.cdt.core.parser.failedTests.STLFailedTests;
|
import org.eclipse.cdt.core.parser.failedTests.STLFailedTests;
|
||||||
|
import org.eclipse.cdt.core.parser.failedTests.SelectionParseFailedTest;
|
||||||
import org.eclipse.cdt.core.parser.tests.ParserTestSuite;
|
import org.eclipse.cdt.core.parser.tests.ParserTestSuite;
|
||||||
import org.eclipse.cdt.core.search.tests.SearchTestSuite;
|
import org.eclipse.cdt.core.search.tests.SearchTestSuite;
|
||||||
|
|
||||||
|
@ -67,6 +68,7 @@ public class AutomatedIntegrationSuite extends TestSuite {
|
||||||
suite.addTestSuite(ASTFailedTests.class);
|
suite.addTestSuite(ASTFailedTests.class);
|
||||||
suite.addTestSuite(STLFailedTests.class);
|
suite.addTestSuite(STLFailedTests.class);
|
||||||
suite.addTestSuite(FailedCompleteParseASTTest.class);
|
suite.addTestSuite(FailedCompleteParseASTTest.class);
|
||||||
|
suite.addTestSuite(SelectionParseFailedTest.class);
|
||||||
|
|
||||||
return suite;
|
return suite;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue