|
From: Teiniker E. <tei...@us...> - 2007-01-22 13:05:17
|
Update of /cvsroot/ccmtools/ccmtools/src-test/ccmtools/parser/cpp In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv25149/src-test/ccmtools/parser/cpp Modified Files: CppTest.java Log Message: Added support for windows cl preprocessor. Index: CppTest.java =================================================================== RCS file: /cvsroot/ccmtools/ccmtools/src-test/ccmtools/parser/cpp/CppTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** CppTest.java 18 Jan 2007 17:11:46 -0000 1.1 --- CppTest.java 22 Jan 2007 13:05:12 -0000 1.2 *************** *** 2,33 **** import java.io.File; import java.io.IOException; ! import java.util.Hashtable; ! import java.util.Vector; import junit.framework.Test; - import junit.framework.TestCase; import junit.framework.TestSuite; - /** - * Here we test a Java implementation of a simple C PreProcessor (cpp) stolen from - * the http://jonathan.objectweb.org/ project (org.objectweb.jonathan.tools.JPP). - * - * Bugs: - * - There must be a space between #include and "" (e.g. #include"xy.idl" is an error) - * - */ public class CppTest ! extends TestCase { private String ccmtoolsDir; private String testDir; ! ! public CppTest(String name) { super(name); ccmtoolsDir = System.getProperty("user.dir"); ! testDir = ccmtoolsDir + File.separator + "test" + File.separator + "CppGenerator"; } --- 2,34 ---- import java.io.File; + import java.io.FileNotFoundException; import java.io.IOException; ! import java.util.ArrayList; ! import java.util.List; import junit.framework.Test; import junit.framework.TestSuite; + import ccmtools.CcmtoolsException; + import ccmtools.parser.idl.ParserManager; + import ccmtools.test.CcmtoolsTestCase; + import ccmtools.ui.ConsoleDriver; + import ccmtools.ui.UserInterfaceDriver; public class CppTest ! extends CcmtoolsTestCase { private String ccmtoolsDir; private String testDir; ! ! protected UserInterfaceDriver uiDriver; ! ! ! public CppTest(String name) throws FileNotFoundException { super(name); + uiDriver = new ConsoleDriver(); ccmtoolsDir = System.getProperty("user.dir"); ! testDir = ccmtoolsDir + File.separator + "test" + File.separator + "Cpp"; } *************** *** 42,60 **** // ------------------------------------------------------------------------ ! public void testIncludeNested() throws IOException { ! String inputDir = testDir + File.separator + "include_nested"; String inputFile = inputDir + File.separator + "Hello.idl"; - String includePath = inputDir; ! Vector includes = new Vector(); ! includes.add(includePath); ! Hashtable names = new Hashtable(); ! JPP jpp = new JPP(inputFile, System.out, includes, names); ! jpp.preprocess(); } } --- 43,130 ---- // ------------------------------------------------------------------------ ! ! public void testGnuCpp() throws CcmtoolsException { ! String inputDir = testDir + File.separator + "gnu_cpp"; String inputFile = inputDir + File.separator + "Hello.idl"; ! ParserManager.parseIdlFile(uiDriver, inputFile, false); ! } ! ! public void testCnuCppWithError() ! { ! String inputDir = testDir + File.separator + "gnu_cpp"; ! String inputFile = inputDir + File.separator + "HelloWithError.idl"; ! try ! { ! ParserManager.parseIdlFile(uiDriver, inputFile, false); ! fail("Didn't handle syntax error!!!"); ! } ! catch(CcmtoolsException e) ! { ! System.out.println("> expected error: " + e.getMessage()); ! assertEquals("idl/Hello.idl line 18: Syntax error", e.getMessage()); ! } ! } ! ! ! public void testWindowsCl() throws CcmtoolsException ! { ! String inputDir = testDir + File.separator + "windows_cl"; ! String inputFile = inputDir + File.separator + "Hello.idl"; ! ParserManager.parseIdlFile(uiDriver, inputFile, false); ! } ! ! public void testWindowsClWithError() ! { ! String inputDir = testDir + File.separator + "windows_cl"; ! String inputFile = inputDir + File.separator + "HelloWithError.idl"; ! ! try ! { ! ParserManager.parseIdlFile(uiDriver, inputFile, false); ! fail("Didn't handle syntax error!!!"); ! } ! catch(CcmtoolsException e) ! { ! System.out.println("> expected error: " + e.getMessage()); ! assertEquals("Hello.idl line 18: Syntax error", e.getMessage()); ! } ! } ! ! ! public void testInternalCpp() throws IOException, CcmtoolsException ! { ! String inputDir = testDir + File.separator + "multiple_source_files" + File.separator + "idl"; ! String inputFile = inputDir + File.separator + "Hello.idl"; ! ! List<String> includes = new ArrayList<String>(); ! includes.add(inputDir); ! PreProcessor cpp = new InternalCpp(); ! cpp.process(uiDriver, inputFile, includes); ! ! ParserManager.parseIdlFile(uiDriver, inputFile); ! } + + public void testInternalCppIdl3Repo() throws IOException, CcmtoolsException + { + String inputDir = testDir + File.separator + "multiple_source_files" + File.separator + "idl3Repo"; + String inputFile = inputDir + File.separator + "component" + File.separator + "Hello.idl"; + + List<String> includes = new ArrayList<String>(); + includes.add(inputDir + File.separator + "interface"); + includes.add(inputDir + File.separator + "component"); + PreProcessor cpp = new InternalCpp(); + cpp.process(uiDriver, inputFile, includes); + ParserManager.parseIdlFile(uiDriver, inputFile); + + // Problem: Too many open files!!!!! + // There is a bug in the stolen cpp implementation + // see http://jonathan.objectweb.org/ project (org.objectweb.jonathan.tools.JPP) } + } |