Skip to main content

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

Here is an updated patch of the org.eclipse.cdt.ui.tests.
 
-Andrew
 
Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.ui.tests/ChangeLog,v
retrieving revision 1.29
diff -u -r1.29 ChangeLog
--- ChangeLog 16 Apr 2003 12:30:41 -0000 1.29
+++ ChangeLog 16 Apr 2003 13:22:44 -0000
@@ -1,3 +1,7 @@
+2003-04-15 Andrew Niefer
+ Added ScannerFailedTest::testBug36509()
+ Added ScannerFailedTesT::testBug36521()
+
 2003-04-15 John Camelon
  Added ScannerTestCase::testBug36434().
  Added ScannerTestCase::testMultipleLines().
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 16 Apr 2003 13:22:44 -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