Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] JUnit tests for the scanner

Title: [cdt-patch] JUnit tests for the scanner

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui.tests/ChangeLog,v
retrieving revision 1.28
diff -u -r1.28 ChangeLog
--- ChangeLog   15 Apr 2003 18:40:05 -0000      1.28
+++ ChangeLog   15 Apr 2003 19:02:32 -0000
@@ -1,4 +1,8 @@
 2003-04-15 Andrew Niefer
+       Added ScannerFailedTest::testBug36509()
+       Added ScannerFailedTest::testBug36521()
+
+2003-04-15 Andrew Niefer
        Moved ScannerFailedTest::testBug36047 to ScannerTestCase::testBug36047
        Added ScannerFailedTest::testBug36475
 
Index: failures/org/eclipse/cdt/core/parser/failedTests/ScannerFailedTest.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui.tests/failures/org/eclipse/cdt/core/parser/failedTests/ScannerFailedTest.java,v

retrieving revision 1.3
diff -u -r1.3 ScannerFailedTest.java
--- failures/org/eclipse/cdt/core/parser/failedTests/ScannerFailedTest.java     15 Apr 2003 18:40:05 -0000      1.3
+++ failures/org/eclipse/cdt/core/parser/failedTests/ScannerFailedTest.java     15 Apr 2003 19:02:32 -0000
@@ -38,7 +38,9 @@
                TestSuite suite = new TestSuite();
               
                suite.addTest( new ScannerFailedTest( "testBug36475" ) );
-      
+               suite.addTest( new ScannerFailedTest( "testBug36509" ) );
+               suite.addTest( new ScannerFailedTest( "testBug36521" ) );
+
                return suite;
        }
       
@@ -63,6 +65,74 @@
                        if( !(e instanceof AssertionFailedError) ){
                                fail( "Unexpected Error: " + e.getMessage() );
                        }
+               }
+      
+               if( testPassed )
+                       fail( "The expected error did not occur." );
+       }
+       public void testBug36509() throws Exception
+       {
+               boolean testPassed = false;
+              
+               try{
+                       StringWriter writer = new StringWriter();
+                       writer.write("#define debug(s, t) printf(\"x\" # s \"= %d, x\" # t \"= %s\", \\\n");
+                       writer.write("                    x ## s, x ## t) \n");
+                      
+                       initializeScanner( writer.toString() );
+                       //printf("x" "1" "=%d, x" "2" "= %s", x1, x2);
+                       validateIdentifier( "printf" );
+                       validateToken( Token.tLPAREN );
+                       validateString("x");
+                       validateString("1");
+                       validateString("= %d, x");
+                       validateString("2");
+                       validateString("= %s");
+                       validateToken(Token.tCOMMA);
+                       validateIdentifier("x1");
+                       validateToken(Token.tCOMMA);
+                       validateIdentifier("x2");
+                       validateToken(Token.tRPAREN);
+                       validateToken(Token.tSEMI);
+                      
+                       testPassed = true;
+               }
+               catch( Throwable e )
+               {
+                       if( !(e instanceof AssertionFailedError) ){
+                               fail( "Unexpected Error: " + e.getMessage() );
+                       }
+               }
+      
+               if( testPassed )
+                       fail( "The expected error did not occur." );
+       }
+       public void testBug36521() throws Exception
+       {
+               boolean testPassed = false;
+              
+               try{
+                       StringWriter writer = new StringWriter();
+                       writer.write("#define str(s)      # s\n");
+                       writer.write("fputs(str(strncmp(\"abc\\0d\", \"abc\", \'\\4\')\n");
+                       writer.write("        == 0) str(: @\\n), s);\n");
+                                              
+                       initializeScanner( writer.toString() );
+                       validateIdentifier("fputs");
+                       validateToken(Token.tLPAREN);
+                       validateString("strncmp(\\\"abc\\\\0d\\\", \\\"abc\\\", '\\\\4') == 0");
+                       validateString(": @\\n");
+                       validateToken(Token.tCOMMA);
+                       validateIdentifier("s");
+                       validateToken(Token.tRPAREN);
+                       validateToken(Token.tSEMI);
+                      
+                       testPassed = true;
+               }
+               catch( ScannerException e )
+               {
+                       if( !e.getMessage().equals( "Improper use of macro str" ) )
+                               fail( "Unexpected Error: " + e.getMessage() );
                }
       
                if( testPassed )


Back to the top