1 | // RUN: rm -rf %t |
2 | // RUN: mkdir %t |
3 | // RUN: c-index-test -test-load-source all -comments-xml-schema=%S/../../bindings/xml/comment-xml-schema.rng %s > %t/out |
4 | // RUN: FileCheck %s < %t/out |
5 | // rdar://12379114 |
6 | |
7 | /*! |
8 | @interface IOCommandGate |
9 | @brief This is a brief |
10 | @abstract Single-threaded work-loop client request mechanism. |
11 | @discussion An IOCommandGate instance is an extremely light weight mechanism that |
12 | executes an action on the driver's work-loop... |
13 | @textblock |
14 | Many discussions about text |
15 | Many1 discussions about text |
16 | Many2 discussions about text |
17 | @/textblock |
18 | @link //un_ref/c/func/function_name link text goes here @/link |
19 | @see //un_ref/doc/uid/XX0000011 I/O Kit Fundamentals |
20 | @seealso //k_ref/doc/uid/XX30000905-CH204 Programming |
21 | */ |
22 | @interface IOCommandGate |
23 | @end |
24 | |
25 | // CHECK: (CXComment_BlockCommand CommandName=[abstract] |
26 | // CHECK-NEXT: (CXComment_Paragraph |
27 | // CHECK-NEXT: (CXComment_Text Text=[ Single-threaded work-loop client request mechanism.] HasTrailingNewline) |
28 | // CHECK: (CXComment_BlockCommand CommandName=[discussion] |
29 | // CHECK-NEXT: (CXComment_Paragraph |
30 | // CHECK-NEXT: (CXComment_Text Text=[ An IOCommandGate instance is an extremely light weight mechanism that] HasTrailingNewline) |
31 | // CHECK-NEXT: (CXComment_Text Text=[ executes an action on the driver's work-loop...] HasTrailingNewline) |
32 | // CHECK: (CXComment_VerbatimBlockCommand CommandName=[textblock] |
33 | // CHECK-NEXT: (CXComment_VerbatimBlockLine Text=[ Many discussions about text]) |
34 | // CHECK-NEXT: (CXComment_VerbatimBlockLine Text=[ Many1 discussions about text]) |
35 | // CHECK-NEXT: (CXComment_VerbatimBlockLine Text=[ Many2 discussions about text])) |
36 | // CHECK-NEXT: (CXComment_Paragraph IsWhitespace |
37 | |
38 | // CHECK: (CXComment_VerbatimBlockCommand CommandName=[link] |
39 | // CHECK-NEXT: (CXComment_VerbatimBlockLine Text=[ //un_ref/c/func/function_name link text goes here ])) |
40 | // CHECK-NEXT: (CXComment_Paragraph IsWhitespace |
41 | // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) |
42 | // CHECK: (CXComment_BlockCommand CommandName=[see] |
43 | // CHECK-NEXT: (CXComment_Paragraph |
44 | // CHECK-NEXT: (CXComment_Text Text=[ //un_ref/doc/uid/XX0000011 I/O Kit Fundamentals] HasTrailingNewline) |
45 | // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace))) |
46 | // CHECK: (CXComment_BlockCommand CommandName=[seealso] |
47 | // CHECK-NEXT: (CXComment_Paragraph |
48 | // CHECK-NEXT: (CXComment_Text Text=[ //k_ref/doc/uid/XX30000905-CH204 Programming]) |
49 | |
50 | // rdar://12379053 |
51 | /*! |
52 | \arg \c AlignLeft left alignment. |
53 | \li \c AlignRight right alignment. |
54 | |
55 | No other types of alignment are supported. |
56 | */ |
57 | struct S { |
58 | int AlignLeft; |
59 | int AlignRight; |
60 | }; |
61 | |
62 | // CHECK: (CXComment_BlockCommand CommandName=[arg] |
63 | // CHECK-NEXT: (CXComment_Paragraph |
64 | // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) |
65 | // CHECK-NEXT: (CXComment_InlineCommand CommandName=[c] RenderMonospaced Arg[0]=AlignLeft) |
66 | // CHECK-NEXT: (CXComment_Text Text=[ left alignment.] HasTrailingNewline))) |
67 | // CHECK: (CXComment_BlockCommand CommandName=[li] |
68 | // CHECK-NEXT: (CXComment_Paragraph |
69 | // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) |
70 | // CHECK-NEXT: (CXComment_InlineCommand CommandName=[c] RenderMonospaced Arg[0]=AlignRight) |
71 | // CHECK-NEXT: (CXComment_Text Text=[ right alignment.]))) |
72 | // CHECK: (CXComment_Paragraph |
73 | // CHECK-NEXT: (CXComment_Text Text=[ No other types of alignment are supported.])) |
74 | |
75 | // rdar://12379053 |
76 | /*! \struct Test |
77 | * Normal text. |
78 | * |
79 | * \par User defined paragraph: |
80 | * Contents of the paragraph. |
81 | * |
82 | * \par |
83 | * New paragraph under the same heading. |
84 | * |
85 | * \note |
86 | * This note consists of two paragraphs. |
87 | * This is the first paragraph. |
88 | * |
89 | * \par |
90 | * And this is the second paragraph. |
91 | * |
92 | * More normal text. |
93 | */ |
94 | |
95 | struct Test {int filler;}; |
96 | |
97 | // CHECK: (CXComment_BlockCommand CommandName=[par] |
98 | // CHECK-NEXT: (CXComment_Paragraph |
99 | // CHECK-NEXT: (CXComment_Text Text=[ User defined paragraph:] HasTrailingNewline) |
100 | // CHECK-NEXT: (CXComment_Text Text=[ Contents of the paragraph.]))) |
101 | // CHECK: (CXComment_BlockCommand CommandName=[par] |
102 | // CHECK-NEXT: (CXComment_Paragraph |
103 | // CHECK-NEXT: (CXComment_Text Text=[ New paragraph under the same heading.]))) |
104 | // CHECK: (CXComment_BlockCommand CommandName=[note] |
105 | // CHECK-NEXT: (CXComment_Paragraph |
106 | // CHECK-NEXT: (CXComment_Text Text=[ This note consists of two paragraphs.] HasTrailingNewline) |
107 | // CHECK-NEXT: (CXComment_Text Text=[ This is the first paragraph.]))) |
108 | // CHECK: (CXComment_BlockCommand CommandName=[par] |
109 | // CHECK-NEXT: (CXComment_Paragraph |
110 | // CHECK-NEXT: (CXComment_Text Text=[ And this is the second paragraph.]))) |
111 | |
112 | |