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