@Test public void testRegression() throws Exception { String inText = Files.toString(inFile, Charsets.UTF_8); LOG.info("Read " + name + ":\n" + inText); CppReader cppReader = new CppReader(new StringReader(inText)); String cppText = CharStreams.toString(cppReader); LOG.info("Generated " + name + ":\n" + cppText); if (outFile.exists()) { String outText = Files.toString(outFile, Charsets.UTF_8); LOG.info("Expected " + name + ":\n" + outText); assertEquals(outText, inText); } } }
private void testCppReader(String in, String out) throws Exception { System.out.println("Testing " + in + " => " + out); StringReader r = new StringReader(in); CppReader p = new CppReader(r); p.getPreprocessor().setSystemIncludePath( Collections.singletonList("src/test/resources/input") ); p.getPreprocessor().getFeatures().add(Feature.LINEMARKERS); BufferedReader b = new BufferedReader(p); String line; while ((line = b.readLine()) != null) { System.out.println(" >> " + line); } }
public static String testCppReader(@Nonnull String in, Feature... f) throws Exception { System.out.println("Testing " + in); StringReader r = new StringReader(in); CppReader p = new CppReader(r); p.getPreprocessor().setSystemIncludePath( Collections.singletonList("src/test/resources") ); p.getPreprocessor().addFeatures(f); BufferedReader b = new BufferedReader(p); StringBuilder out = new StringBuilder(); String line; while ((line = b.readLine()) != null) { System.out.println(" >> " + line); out.append(line).append("\n"); } return out.toString(); }
@Test public void testAbsoluteInclude() throws Exception { File file = new File("build/resources/test/absolute.h"); assertTrue(file.exists()); String input = "#include <" + file.getAbsolutePath() + ">\n"; LOG.info("Input: " + input); Preprocessor pp = new Preprocessor(); pp.addInput(new StringLexerSource(input, true)); Reader r = new CppReader(pp); String output = CharStreams.toString(r); r.close(); LOG.info("Output: " + output); assertTrue(output.contains("absolute-result")); } }
String sourceContent = ReadText.readText(new CppReader(preProcessor)); preProcessor.close();
String sourceContent = ReadText.readText(new CppReader(preProcessor)); preProcessor.close();
@Test public void testPragma() throws Exception { File file = new File("build/resources/test/pragma.c"); assertTrue(file.exists()); CharSource source = Files.asCharSource(file, Charsets.UTF_8); CppReader r = new CppReader(source.openBufferedStream()); r.getPreprocessor().setListener(new DefaultPreprocessorListener()); String output = CharStreams.toString(r); r.close(); LOG.info("Output: " + output); // assertTrue(output.contains("absolute-result")); } }
@Test public void testWhitespacePasting() throws IOException { Preprocessor pp = new Preprocessor(); pp.addInput(new StringLexerSource( "#define ONE(arg) one_##arg\n" + "#define TWO(arg) ONE(two_##arg)\n" + "\n" + "TWO(good)\n" + "TWO( /* evil newline */\n" + " bad)\n" + "\n" + "ONE(good)\n" + "ONE( /* evil newline */\n" + " bad)\n", true)); Reader r = new CppReader(pp); String text = CharStreams.toString(r).trim(); LOG.info("Output is:\n" + text); assertEquals("one_two_good\n" + "one_two_bad\n" + "\n" + "one_good\n" + "one_bad", text); } }
pp.addFeature(Feature.KEEPCOMMENTS); pp.addInput(new StringLexerSource(input, true)); Reader r = new CppReader(pp); String output = CharStreams.toString(r).trim(); LOG.info("Output is:\n" + output);