From 08ff05c14ceb9e20677a6619ed1f4ac8845204f4 Mon Sep 17 00:00:00 2001 From: John McFarland Date: Wed, 21 Aug 2019 08:43:12 -0500 Subject: [PATCH] Add doxygen_code_blocks_runme.java The code blocks test is intended to test code block language options and python doctest translation that is supported for Python, but the doxygen constructs are still recognized when translating comments for Java (it is just that the code language option is not used). --- .../java/doxygen_code_blocks_runme.java | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 Examples/test-suite/java/doxygen_code_blocks_runme.java diff --git a/Examples/test-suite/java/doxygen_code_blocks_runme.java b/Examples/test-suite/java/doxygen_code_blocks_runme.java new file mode 100644 index 000000000..ff0a16eab --- /dev/null +++ b/Examples/test-suite/java/doxygen_code_blocks_runme.java @@ -0,0 +1,83 @@ + +import doxygen_code_blocks.*; +import com.sun.javadoc.*; +import java.util.HashMap; + +public class doxygen_code_blocks_runme { + static { + try { + System.loadLibrary("doxygen_code_blocks"); + } catch (UnsatisfiedLinkError e) { + System.err.println("Native code library failed to load. See the chapter on Dynamic Linking Problems in the SWIG Java documentation for help.\n" + e); + System.exit(1); + } + } + + public static void main(String argv[]) + { + /* + Here we are using internal javadoc tool, it accepts the name of the class as paramterer, + and calls the start() method of that class with parsed information. + */ + CommentParser parser = new CommentParser(); + com.sun.tools.javadoc.Main.execute("doxygen_code_blocks runtime test", + "CommentParser", + new String[]{"-quiet", "doxygen_code_blocks"}); + + HashMap wantedComments = new HashMap(); + + wantedComments.put("doxygen_code_blocks.doxygen_code_blocks.function()", + " Test for code blocks\n \n" + + " \n \n" + + " {@code \n" + + " simple code block \n" + + " }\n \n" + + " \n \n" + + " More advanced usage with C++ characters:\n \n" + + " {@code \n" + + " std::vector first; // empty vector of ints \n" + + " std::vector second (4,100); // four ints with value 100 \n" + + " std::vector third (second.begin(),second.end()); // iterating through second \n" + + " std::vector fourth (third); // a copy of third \n" + + " // the iterator constructor can also be used to construct from arrays: \n" + + " int myints[] = {16,2,77,29}; \n" + + " std::vector fifth (myints, myints + sizeof(myints) / sizeof(int) ); \n" + + " \n" + + " std::cout << \"The contents of fifth are:\"; \n" + + " for (std::vector::iterator it = fifth.begin(); it != fifth.end(); ++it) \n" + + " std::cout << \' \' << *it; \n" + + " std::cout << \'\\n\'; \n" + + " }\n \n" + + " \n \n" + + " A code block for C:\n \n" + + " {@code \n" + + " printf(\"hello world\"); \n" + + " }\n \n" + + " \n \n" + + " A code block for Java:\n \n" + + " {@code \n" + + " public class HelloWorld { \n" + + " public static void main(String[] args) { \n" + + " // Prints \"Hello, World\" to the terminal window. \n" + + " System.out.println(\"Hello, World\"); \n" + + " } \n" + + " } \n" + + " }\n \n" + + " \n \n" + + " A code block for python:\n \n" + + " {@code \n" + + " print(\'hello world\') \n" + + " }\n \n" + + " \n \n" + + " A python doctest example:\n \n" + + " {@code \n" + + " >>> 1 + 1 \n" + + " 2 \n" + + " } \n" + + " \n" + + ""); + + // and ask the parser to check comments for us + System.exit(parser.check(wantedComments)); + } +}