xref: /openbsd-src/gnu/llvm/clang/bindings/python/tests/cindex/test_comment.py (revision e5dd70708596ae51455a0ffa086a00c5b29f8583)
1*e5dd7070Spatrickimport os
2*e5dd7070Spatrickfrom clang.cindex import Config
3*e5dd7070Spatrickif 'CLANG_LIBRARY_PATH' in os.environ:
4*e5dd7070Spatrick    Config.set_library_path(os.environ['CLANG_LIBRARY_PATH'])
5*e5dd7070Spatrick
6*e5dd7070Spatrickfrom clang.cindex import TranslationUnit
7*e5dd7070Spatrickfrom tests.cindex.util import get_cursor
8*e5dd7070Spatrick
9*e5dd7070Spatrickimport unittest
10*e5dd7070Spatrick
11*e5dd7070Spatrick
12*e5dd7070Spatrickclass TestComment(unittest.TestCase):
13*e5dd7070Spatrick    def test_comment(self):
14*e5dd7070Spatrick        files = [('fake.c', """
15*e5dd7070Spatrick/// Aaa.
16*e5dd7070Spatrickint test1;
17*e5dd7070Spatrick
18*e5dd7070Spatrick/// Bbb.
19*e5dd7070Spatrick/// x
20*e5dd7070Spatrickvoid test2(void);
21*e5dd7070Spatrick
22*e5dd7070Spatrickvoid f() {
23*e5dd7070Spatrick
24*e5dd7070Spatrick}
25*e5dd7070Spatrick""")]
26*e5dd7070Spatrick        # make a comment-aware TU
27*e5dd7070Spatrick        tu = TranslationUnit.from_source('fake.c', ['-std=c99'], unsaved_files=files,
28*e5dd7070Spatrick                options=TranslationUnit.PARSE_INCLUDE_BRIEF_COMMENTS_IN_CODE_COMPLETION)
29*e5dd7070Spatrick        test1 = get_cursor(tu, 'test1')
30*e5dd7070Spatrick        self.assertIsNotNone(test1, "Could not find test1.")
31*e5dd7070Spatrick        self.assertTrue(test1.type.is_pod())
32*e5dd7070Spatrick        raw = test1.raw_comment
33*e5dd7070Spatrick        brief = test1.brief_comment
34*e5dd7070Spatrick        self.assertEqual(raw, """/// Aaa.""")
35*e5dd7070Spatrick        self.assertEqual(brief, """Aaa.""")
36*e5dd7070Spatrick
37*e5dd7070Spatrick        test2 = get_cursor(tu, 'test2')
38*e5dd7070Spatrick        raw = test2.raw_comment
39*e5dd7070Spatrick        brief = test2.brief_comment
40*e5dd7070Spatrick        self.assertEqual(raw, """/// Bbb.\n/// x""")
41*e5dd7070Spatrick        self.assertEqual(brief, """Bbb. x""")
42*e5dd7070Spatrick
43*e5dd7070Spatrick        f = get_cursor(tu, 'f')
44*e5dd7070Spatrick        raw = f.raw_comment
45*e5dd7070Spatrick        brief = f.brief_comment
46*e5dd7070Spatrick        self.assertIsNone(raw)
47*e5dd7070Spatrick        self.assertIsNone(brief)
48