1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Patch for Andrew Niefer:

Added  DomFailedTest::testBug36769 
Added  DomFailedTest::testBug36771 
Fixed AutomatedTest to handle files  with commas in their names 
Added  ScannerTestCase::testBug36770
This commit is contained in:
Doug Schaefer 2003-04-23 17:30:50 +00:00
parent 51243d8162
commit dce8a1d011
3 changed files with 96 additions and 1 deletions

View file

@ -0,0 +1,78 @@
/*******************************************************************************
* Copyright (c) 2003 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v0.5
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v05.html
*
* Contributors:
* IBM Corp. - Rational Software - initial implementation
******************************************************************************/
package org.eclipse.cdt.core.parser.failedTests;
import java.io.StringWriter;
import java.io.Writer;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.eclipse.cdt.core.parser.tests.DOMTests;
import org.eclipse.cdt.internal.core.dom.TranslationUnit;
import org.eclipse.cdt.internal.core.parser.ParserException;
/**
* @author aniefer
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class ACEFailedTest extends DOMTests {
/**
* @param arg
*/
public ACEFailedTest(String arg) {
super(arg);
}
public static Test suite() {
TestSuite suite = new TestSuite();
suite.addTest(new ACEFailedTest("testBug36769"));
suite.addTest(new ACEFailedTest("testBug36771"));
return suite;
}
public void testBug36771(){
boolean testPassed = false;
try{
Writer code = new StringWriter();
code.write("#include /**/ \"foo.h\"\n");
TranslationUnit tu = parse( code.toString());
testPassed = true;
} catch( Throwable e ){
if( ! (e instanceof ParserException))
fail( "Unexpected Error: " + e.getMessage() );
}
if( testPassed )
fail( "The expected error did not occur.");
}
public void testBug36769(){
boolean testPassed = false;
try{
Writer code = new StringWriter();
code.write("template <class A, B> cls<A, C>::operator op &() const {}\n");
code.write("template <class A, B> cls<A, C>::cls() {}\n");
code.write("template <class A, B> cls<A, C>::~cls() {}\n");
TranslationUnit tu = parse( code.toString());
testPassed = true;
} catch( Throwable e ){
if( ! (e instanceof ParserException))
fail( "Unexpected Error: " + e.getMessage() );
}
if( testPassed )
fail( "The expected error did not occur.");
}
}

View file

@ -187,7 +187,7 @@ public class AutomatedTest extends TestCase {
}
fileList.add( file );
suite.addTest( new AutomatedTest( file.getName() ) );
suite.addTest( new AutomatedTest( file.getName().replaceAll(",", "_") ) );
}
file = files[ i++ ];
}

View file

@ -1416,4 +1416,21 @@ public class ScannerTestCase extends TestCase
validateToken(Token.tRPAREN);
validateToken(Token.tSEMI);
}
public void testBug36770() throws Exception
{
StringWriter writer = new StringWriter();
writer.write( "#define A 0\n" );
writer.write( "#if ( A == 1 )\n");
writer.write( "# define foo 1\n");
writer.write( "#else\n");
writer.write( "# define foo 2\n");
writer.write( "#endif\n");
writer.write( "foo\n");
initializeScanner( writer.toString() );
validateInteger( "2" );
validateEOF();
}
}