1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-06-06 17:26:01 +02:00

Adding additional test cases for bugs fixed indirectly through the IScanner rewrite.

This commit is contained in:
John Camelon 2004-08-10 17:18:22 +00:00
parent 7866afdcb1
commit cd9edbcd4f
2 changed files with 68 additions and 0 deletions

View file

@ -2210,4 +2210,18 @@ public class QuickParseASTTests extends BaseASTTest
parse( buffer.toString() ); parse( buffer.toString() );
} }
public void testBug69161() throws Exception
{
Writer writer = new StringWriter();
writer.write( "#define MACRO(s) s\n "); //$NON-NLS-1$
writer.write( "char *testQueries[] =\n"); //$NON-NLS-1$
writer.write( "{\n"); //$NON-NLS-1$
writer.write( "MACRO(\",\"),\n"); //$NON-NLS-1$
writer.write( "MACRO(\"(\"),\n"); //$NON-NLS-1$
writer.write( "MACRO(\")\")\n"); //$NON-NLS-1$
writer.write( "};\n"); //$NON-NLS-1$
IASTVariable t = (IASTVariable) assertSoleDeclaration( writer.toString() );
assertTrue( quickParseCallback.problems.isEmpty() );
assertEquals( t.getName(), "testQueries"); //$NON-NLS-1$
}
} }

View file

@ -1767,5 +1767,59 @@ public class Scanner2Test extends BaseScanner2Test
assertEquals( inc.getName(), "foo.h"); //$NON-NLS-1$ assertEquals( inc.getName(), "foo.h"); //$NON-NLS-1$
} }
public void testBug69412() throws Exception
{
Callback callback = new Callback( ParserMode.COMPLETE_PARSE );
initializeScanner( "\'\\\\\'", ParserMode.COMPLETE_PARSE, callback ); //$NON-NLS-1$
validateChar( "\\\\"); //$NON-NLS-1$
validateEOF();
assertTrue( callback.problems.isEmpty());
}
public void testBug70072() throws Exception
{
initializeScanner( "#if 1/0\nint i;\n#elif 2/0\nint j;\n#endif\nint k;\n" ); //$NON-NLS-1$
fullyTokenize();
}
public void testBug70261() throws Exception
{
initializeScanner( "0X0"); //$NON-NLS-1$
validateInteger( "0X0"); //$NON-NLS-1$
}
public void testBug62571() throws Exception
{
StringBuffer buffer = new StringBuffer( "#define J(X,Y) X##Y\n"); //$NON-NLS-1$
buffer.append( "J(A,1Xxyz)\n"); //$NON-NLS-1$
buffer.append( "J(B,1X1X1Xxyz)\n"); //$NON-NLS-1$
buffer.append( "J(C,0Xxyz)\n"); //$NON-NLS-1$
buffer.append( "J(CC,0Xxyz)\n"); //$NON-NLS-1$
buffer.append( "J(D,0xxyz)\n"); //$NON-NLS-1$
buffer.append( "J(E,0x0x0xxyz)\n"); //$NON-NLS-1$
initializeScanner( buffer.toString() );
validateIdentifier( "A1Xxyz"); //$NON-NLS-1$
validateIdentifier( "B1X1X1Xxyz"); //$NON-NLS-1$
validateIdentifier( "C0Xxyz"); //$NON-NLS-1$
validateIdentifier( "CC0Xxyz"); //$NON-NLS-1$
validateIdentifier( "D0xxyz"); //$NON-NLS-1$
validateIdentifier( "E0x0x0xxyz"); //$NON-NLS-1$
}
public void testBug69134() throws Exception
{
Writer writer = new StringWriter();
writer.write( "# ifdef YYDEBUG\n" ); //$NON-NLS-1$
writer.write( "if (yyDebug) {\n" ); //$NON-NLS-1$
writer.write( "(void) fprintf (yyTrace,\n" ); //$NON-NLS-1$
writer.write( "\" # |Position|State|Mod|Lev|Action |Terminal and Lookahead or Rule\n\");\n" ); //$NON-NLS-1$
writer.write( "yyNl ();\n" ); //$NON-NLS-1$
writer.write( "}\n" ); //$NON-NLS-1$
writer.write( "# endif\n" ); //$NON-NLS-1$
Callback callback = new Callback( ParserMode.COMPLETE_PARSE );
initializeScanner( writer.toString(), ParserMode.COMPLETE_PARSE, callback );
fullyTokenize();
assertTrue( callback.problems.isEmpty() );
}
} }