A doctest code block begins with ">>>" and is not indented. Identify these in doxygen comments and treat them accordingly. Also add check to padCodeAndVerbatimBlocks for these because Sphinx requires an empty line before. Add test case to doxygen_code_blocks.i.
58 lines
1.4 KiB
Python
58 lines
1.4 KiB
Python
import doxygen_code_blocks
|
|
import inspect
|
|
import string
|
|
import sys
|
|
import comment_verifier
|
|
|
|
comment_verifier.check(inspect.getdoc(doxygen_code_blocks.function),
|
|
"""\
|
|
Test for code blocks
|
|
|
|
.. code-block:: c++
|
|
|
|
simple code block
|
|
|
|
More advanced usage with C++ characters:
|
|
|
|
.. code-block:: c++
|
|
|
|
std::vector<int> first; // empty vector of ints
|
|
std::vector<int> second (4,100); // four ints with value 100
|
|
std::vector<int> third (second.begin(),second.end()); // iterating through second
|
|
std::vector<int> fourth (third); // a copy of third
|
|
// the iterator constructor can also be used to construct from arrays:
|
|
int myints[] = {16,2,77,29};
|
|
std::vector<int> fifth (myints, myints + sizeof(myints) / sizeof(int) );
|
|
|
|
std::cout << "The contents of fifth are:";
|
|
for (std::vector<int>::iterator it = fifth.begin(); it != fifth.end(); ++it)
|
|
std::cout << ' ' << *it;
|
|
std::cout << '\\n';
|
|
|
|
A code block for C:
|
|
|
|
.. code-block:: c
|
|
|
|
printf("hello world");
|
|
|
|
A code block for Java:
|
|
|
|
.. code-block:: java
|
|
|
|
public class HelloWorld {
|
|
public static void main(String[] args) {
|
|
// Prints "Hello, World" to the terminal window.
|
|
System.out.println("Hello, World");
|
|
}
|
|
}
|
|
|
|
A code block for python:
|
|
|
|
.. code-block:: python
|
|
|
|
print('hello world')
|
|
|
|
A python doctest example:
|
|
|
|
>>> 1 + 1
|
|
2""")
|