Skip to main content

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


Doug Schaefer
Rational Software - IBM Software Group
Ottawa, Ontario, Canada



"Niefer, Andrew" <aniefer@xxxxxxxxxxxx>
Sent by: cdt-patch-admin@xxxxxxxxxxx

04/16/2003 10:19 AM
Please respond to cdt-patch

       
        To:        "'cdt-patch@xxxxxxxxxxx'" <cdt-patch@xxxxxxxxxxx>
        cc:        
        Subject:        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