mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-06 01:06:01 +02:00
Adding additional test cases for bugs fixed indirectly through the IScanner rewrite.
This commit is contained in:
parent
7866afdcb1
commit
cd9edbcd4f
2 changed files with 68 additions and 0 deletions
|
@ -2210,4 +2210,18 @@ public class QuickParseASTTests extends BaseASTTest
|
|||
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$
|
||||
}
|
||||
}
|
|
@ -1767,5 +1767,59 @@ public class Scanner2Test extends BaseScanner2Test
|
|||
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() );
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue