1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00
John Camelon 2004-04-26 21:31:39 +00:00
parent ca2d70f2be
commit 1b95b94a14

View file

@ -128,37 +128,60 @@ public class SelectionParseTest extends CompleteParseBaseTest {
assertEquals( ((IASTParameterDeclaration)node).getName(), "argc" );
}
// public void testBug57898() throws Exception
// {
// Writer writer = new StringWriter();
// writer.write( "class Gonzo { public: void playHorn(); };\n" );
// writer.write( "void Gonzo::playHorn() { return; }\n" );
// writer.write( "int main(int argc, char **argv) { Gonzo gonzo; gonzo.playHorn(); }\n" );
// String code = writer.toString();
// for( int i = 0; i < 3; ++i )
// {
// int start = -1, stop = -1;
// switch( i )
// {
// case 0:
// start = code.indexOf( "void playHorn") + 5;
// break;
// case 1:
// start = code.indexOf( "::playHorn") + 2;
// break;
// case 2:
// start = code.indexOf( ".playHorn") + 1;
// break;
// }
// stop = start + 8;
// IASTNode node = parse( code, start, stop );
// assertNotNull( node );
// assertTrue( node instanceof IASTMethod );
// IASTMethod method = (IASTMethod) node;
// assertEquals( method.getName(), "playHorn");
// IASTClassSpecifier gonzo = method.getOwnerClassSpecifier();
// assertEquals( gonzo.getName(), "Gonzo");
// }
// }
public void testBug57898() throws Exception
{
Writer writer = new StringWriter();
writer.write( "class Gonzo { public: void playHorn(); };\n" );
writer.write( "void Gonzo::playHorn() { return; }\n" );
writer.write( "int main(int argc, char **argv) { Gonzo gonzo; gonzo.playHorn(); }\n" );
String code = writer.toString();
for( int i = 0; i < 3; ++i )
{
int start = -1, stop = -1;
switch( i )
{
case 0:
start = code.indexOf( "void playHorn") + 5;
break;
case 1:
start = code.indexOf( "::playHorn") + 2;
break;
case 2:
start = code.indexOf( ".playHorn") + 1;
break;
}
stop = start + 8;
IASTNode node = parse( code, start, stop );
assertNotNull( node );
assertTrue( node instanceof IASTMethod );
IASTMethod method = (IASTMethod) node;
assertEquals( method.getName(), "playHorn");
IASTClassSpecifier gonzo = method.getOwnerClassSpecifier();
assertEquals( gonzo.getName(), "Gonzo");
}
}
public void testConstructorDestructorDeclaration() throws Exception
{
Writer writer = new StringWriter();
writer.write( "class Gonzo { Gonzo(); ~Gonzo(); };");
String code = writer.toString();
int offset = code.indexOf( " Gonzo()") + 1;
IASTNode node = parse( code, offset, offset + 5 );
assertNotNull( node );
assertTrue( node instanceof IASTMethod );
IASTMethod constructor = ((IASTMethod)node);
assertEquals( constructor.getName(), "Gonzo" );
assertTrue( constructor.isConstructor() );
offset = code.indexOf( "~Gonzo");
node = parse( code, offset, offset + 6 );
assertNotNull( node );
assertTrue( node instanceof IASTMethod );
IASTMethod destructor = ((IASTMethod)node);
assertEquals( destructor.getName(), "~Gonzo" );
assertTrue( destructor.isDestructor() );
}
}