// RUN: rm -rf %t // RUN: mkdir %t // RUN: c-index-test -test-load-source all -comments-xml-schema=%S/../../bindings/xml/comment-xml-schema.rng %s > %t/out // RUN: FileCheck %s < %t/out // rdar://12379114 /*! @interface IOCommandGate @brief This is a brief @abstract Single-threaded work-loop client request mechanism. @discussion An IOCommandGate instance is an extremely light weight mechanism that executes an action on the driver's work-loop... @textblock Many discussions about text Many1 discussions about text Many2 discussions about text @/textblock @link //un_ref/c/func/function_name link text goes here @/link @see //un_ref/doc/uid/XX0000011 I/O Kit Fundamentals @seealso //k_ref/doc/uid/XX30000905-CH204 Programming */ @interface IOCommandGate @end // CHECK: (CXComment_BlockCommand CommandName=[abstract] // CHECK-NEXT: (CXComment_Paragraph // CHECK-NEXT: (CXComment_Text Text=[ Single-threaded work-loop client request mechanism.] HasTrailingNewline) // CHECK: (CXComment_BlockCommand CommandName=[discussion] // CHECK-NEXT: (CXComment_Paragraph // CHECK-NEXT: (CXComment_Text Text=[ An IOCommandGate instance is an extremely light weight mechanism that] HasTrailingNewline) // CHECK-NEXT: (CXComment_Text Text=[ executes an action on the driver's work-loop...] HasTrailingNewline) // CHECK: (CXComment_VerbatimBlockCommand CommandName=[textblock] // CHECK-NEXT: (CXComment_VerbatimBlockLine Text=[ Many discussions about text]) // CHECK-NEXT: (CXComment_VerbatimBlockLine Text=[ Many1 discussions about text]) // CHECK-NEXT: (CXComment_VerbatimBlockLine Text=[ Many2 discussions about text])) // CHECK-NEXT: (CXComment_Paragraph IsWhitespace // CHECK: (CXComment_VerbatimBlockCommand CommandName=[link] // CHECK-NEXT: (CXComment_VerbatimBlockLine Text=[ //un_ref/c/func/function_name link text goes here ])) // CHECK-NEXT: (CXComment_Paragraph IsWhitespace // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) // CHECK: (CXComment_BlockCommand CommandName=[see] // CHECK-NEXT: (CXComment_Paragraph // CHECK-NEXT: (CXComment_Text Text=[ //un_ref/doc/uid/XX0000011 I/O Kit Fundamentals] HasTrailingNewline) // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace))) // CHECK: (CXComment_BlockCommand CommandName=[seealso] // CHECK-NEXT: (CXComment_Paragraph // CHECK-NEXT: (CXComment_Text Text=[ //k_ref/doc/uid/XX30000905-CH204 Programming]) // rdar://12379053 /*! \arg \c AlignLeft left alignment. \li \c AlignRight right alignment. No other types of alignment are supported. */ struct S { int AlignLeft; int AlignRight; }; // CHECK: (CXComment_BlockCommand CommandName=[arg] // CHECK-NEXT: (CXComment_Paragraph // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) // CHECK-NEXT: (CXComment_InlineCommand CommandName=[c] RenderMonospaced Arg[0]=AlignLeft) // CHECK-NEXT: (CXComment_Text Text=[ left alignment.] HasTrailingNewline))) // CHECK: (CXComment_BlockCommand CommandName=[li] // CHECK-NEXT: (CXComment_Paragraph // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) // CHECK-NEXT: (CXComment_InlineCommand CommandName=[c] RenderMonospaced Arg[0]=AlignRight) // CHECK-NEXT: (CXComment_Text Text=[ right alignment.]))) // CHECK: (CXComment_Paragraph // CHECK-NEXT: (CXComment_Text Text=[ No other types of alignment are supported.])) // rdar://12379053 /*! \struct Test * Normal text. * * \par User defined paragraph: * Contents of the paragraph. * * \par * New paragraph under the same heading. * * \note * This note consists of two paragraphs. * This is the first paragraph. * * \par * And this is the second paragraph. * * More normal text. */ struct Test {int filler;}; // CHECK: (CXComment_BlockCommand CommandName=[par] // CHECK-NEXT: (CXComment_Paragraph // CHECK-NEXT: (CXComment_Text Text=[ User defined paragraph:] HasTrailingNewline) // CHECK-NEXT: (CXComment_Text Text=[ Contents of the paragraph.]))) // CHECK: (CXComment_BlockCommand CommandName=[par] // CHECK-NEXT: (CXComment_Paragraph // CHECK-NEXT: (CXComment_Text Text=[ New paragraph under the same heading.]))) // CHECK: (CXComment_BlockCommand CommandName=[note] // CHECK-NEXT: (CXComment_Paragraph // CHECK-NEXT: (CXComment_Text Text=[ This note consists of two paragraphs.] HasTrailingNewline) // CHECK-NEXT: (CXComment_Text Text=[ This is the first paragraph.]))) // CHECK: (CXComment_BlockCommand CommandName=[par] // CHECK-NEXT: (CXComment_Paragraph // CHECK-NEXT: (CXComment_Text Text=[ And this is the second paragraph.])))