From dce8a1d01163c0139f310973508bfd5a43cbb315 Mon Sep 17 00:00:00 2001 From: Doug Schaefer Date: Wed, 23 Apr 2003 17:30:50 +0000 Subject: [PATCH] Patch for Andrew Niefer: Added DomFailedTest::testBug36769 Added DomFailedTest::testBug36771 Fixed AutomatedTest to handle files with commas in their names Added ScannerTestCase::testBug36770 --- .../parser/failedTests/ACEFailedTest.java | 78 +++++++++++++++++++ .../cdt/core/parser/tests/AutomatedTest.java | 2 +- .../core/parser/tests/ScannerTestCase.java | 17 ++++ 3 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 core/org.eclipse.cdt.ui.tests/failures/org/eclipse/cdt/core/parser/failedTests/ACEFailedTest.java diff --git a/core/org.eclipse.cdt.ui.tests/failures/org/eclipse/cdt/core/parser/failedTests/ACEFailedTest.java b/core/org.eclipse.cdt.ui.tests/failures/org/eclipse/cdt/core/parser/failedTests/ACEFailedTest.java new file mode 100644 index 00000000000..b928e2c5176 --- /dev/null +++ b/core/org.eclipse.cdt.ui.tests/failures/org/eclipse/cdt/core/parser/failedTests/ACEFailedTest.java @@ -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 cls::operator op &() const {}\n"); + code.write("template cls::cls() {}\n"); + code.write("template cls::~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."); + } +} diff --git a/core/org.eclipse.cdt.ui.tests/parser/org/eclipse/cdt/core/parser/tests/AutomatedTest.java b/core/org.eclipse.cdt.ui.tests/parser/org/eclipse/cdt/core/parser/tests/AutomatedTest.java index abe2284fc5d..4d1ac882ba2 100644 --- a/core/org.eclipse.cdt.ui.tests/parser/org/eclipse/cdt/core/parser/tests/AutomatedTest.java +++ b/core/org.eclipse.cdt.ui.tests/parser/org/eclipse/cdt/core/parser/tests/AutomatedTest.java @@ -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++ ]; } diff --git a/core/org.eclipse.cdt.ui.tests/parser/org/eclipse/cdt/core/parser/tests/ScannerTestCase.java b/core/org.eclipse.cdt.ui.tests/parser/org/eclipse/cdt/core/parser/tests/ScannerTestCase.java index 517d7022bd0..e384f555da3 100644 --- a/core/org.eclipse.cdt.ui.tests/parser/org/eclipse/cdt/core/parser/tests/ScannerTestCase.java +++ b/core/org.eclipse.cdt.ui.tests/parser/org/eclipse/cdt/core/parser/tests/ScannerTestCase.java @@ -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(); + } + }