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