| Fariborz Jahanian | 1a0cf80 | 2013-01-31 23:12:39 +0000 | [diff] [blame] | 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://13067629 |
| 6 | |
| 7 | // Ensure that XML we generate is not invalid. |
| 8 | // RUN: FileCheck %s -check-prefix=WRONG < %t/out |
| 9 | // WRONG-NOT: CommentXMLInvalid |
| 10 | |
| 11 | // rdar://12397511 |
| 12 | |
| 13 | /*! |
| 14 | \headerfile Device.h <Foundation/Device.h> |
| 15 | |
| 16 | A Device represents a remote or local computer or device with which the Developer Tools can interact. Each Device supports blah blah blah from doing blah blah blah. |
| 17 | */ |
| 18 | @interface Device |
| 19 | @end |
| NAKAMURA Takumi | 524bed1 | 2013-02-01 00:17:45 +0000 | [diff] [blame] | 20 | // CHECK: headerfile-comment-to-html.m:[[@LINE-2]]:12: ObjCInterfaceDecl=Device:{{.*}} FullCommentAsXML=[<Other file="{{[^"]+}}headerfile-comment-to-html.m" line="[[@LINE-2]]" column="12"><Name>Device</Name><USR>c:objc(cs)Device</USR><Headerfile><Para> Device.h <Foundation/Device.h></Para></Headerfile><Declaration>@interface Device\n@end</Declaration><Abstract><Para> A Device represents a remote or local computer or device with which the Developer Tools can interact. Each Device supports blah blah blah from doing blah blah blah.</Para></Abstract></Other>] |
| Fariborz Jahanian | 1a0cf80 | 2013-01-31 23:12:39 +0000 | [diff] [blame] | 21 | // CHECK-NEXT: CommentAST=[ |
| 22 | // CHECK-NEXT: (CXComment_FullComment |
| 23 | // CHECK-NEXT: (CXComment_Paragraph IsWhitespace |
| 24 | // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) |
| 25 | // CHECK-NEXT: (CXComment_BlockCommand CommandName=[headerfile] |
| 26 | // CHECK-NEXT: (CXComment_Paragraph |
| 27 | // CHECK-NEXT: (CXComment_Text Text=[ Device.h ]) |
| 28 | // CHECK-NEXT: (CXComment_Text Text=[<Foundation]) |
| 29 | // CHECK-NEXT: (CXComment_Text Text=[/Device.h>]))) |
| 30 | // CHECK-NEXT: (CXComment_Paragraph |
| 31 | // CHECK-NEXT: (CXComment_Text Text=[ A Device represents a remote or local computer or device with which the Developer Tools can interact. Each Device supports blah blah blah from doing blah blah blah.])))] |
| 32 | |
| 33 | /*! |
| 34 | \headerfile Sensor.h "Sensor.h" |
| 35 | |
| 36 | \brief This is Sensor on the Device. |
| 37 | Its purpose is not to Sense Device's heat. |
| 38 | */ |
| 39 | |
| 40 | @interface Sensor |
| 41 | @end |
| NAKAMURA Takumi | 524bed1 | 2013-02-01 00:17:45 +0000 | [diff] [blame] | 42 | // CHECK: headerfile-comment-to-html.m:[[@LINE-2]]:12: ObjCInterfaceDecl=Sensor:{{.*}} FullCommentAsXML=[<Other file="{{[^"]+}}headerfile-comment-to-html.m" line="[[@LINE-2]]" column="12"><Name>Sensor</Name><USR>c:objc(cs)Sensor</USR><Headerfile><Para> Sensor.h "Sensor.h"</Para></Headerfile><Declaration>@interface Sensor\n@end</Declaration><Abstract><Para> This is Sensor on the Device. Its purpose is not to Sense Device's heat.</Para></Abstract></Other>] |
| Fariborz Jahanian | 1a0cf80 | 2013-01-31 23:12:39 +0000 | [diff] [blame] | 43 | // CHECK-NEXT: CommentAST=[ |
| 44 | // CHECK-NEXT: (CXComment_FullComment |
| 45 | // CHECK-NEXT: (CXComment_Paragraph IsWhitespace |
| 46 | // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) |
| 47 | // CHECK-NEXT: (CXComment_BlockCommand CommandName=[headerfile] |
| 48 | // CHECK-NEXT: (CXComment_Paragraph |
| 49 | // CHECK-NEXT: (CXComment_Text Text=[ Sensor.h "Sensor.h"]))) |
| 50 | // CHECK-NEXT: (CXComment_Paragraph IsWhitespace |
| 51 | // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) |
| 52 | // CHECK-NEXT: (CXComment_BlockCommand CommandName=[brief] |
| 53 | // CHECK-NEXT: (CXComment_Paragraph |
| 54 | // CHECK-NEXT: (CXComment_Text Text=[ This is Sensor on the Device.] HasTrailingNewline) |
| 55 | // CHECK-NEXT: (CXComment_Text Text=[ Its purpose is not to Sense Device's heat.]))))] |
| 56 | |
| 57 | /*! |
| 58 | \brief Test that headerfile can come after brief. |
| 59 | \headerfile VTDevice.h <VTFoundation/VTDevice.h> |
| 60 | |
| Alexander Kornienko | 2a8c18d | 2018-04-06 15:14:32 +0000 | [diff] [blame] | 61 | More property description goes here. |
| Fariborz Jahanian | 1a0cf80 | 2013-01-31 23:12:39 +0000 | [diff] [blame] | 62 | */ |
| 63 | @interface VTDevice : Device |
| 64 | @end |
| Alexander Kornienko | 2a8c18d | 2018-04-06 15:14:32 +0000 | [diff] [blame] | 65 | // CHECK: headerfile-comment-to-html.m:[[@LINE-2]]:12: ObjCInterfaceDecl=VTDevice:{{.*}} FullCommentAsXML=[<Other file="{{[^"]+}}headerfile-comment-to-html.m" line="[[@LINE-2]]" column="12"><Name>VTDevice</Name><USR>c:objc(cs)VTDevice</USR><Headerfile><Para> VTDevice.h <VTFoundation/VTDevice.h></Para></Headerfile><Declaration>@interface VTDevice : Device\n@end</Declaration><Abstract><Para> Test that headerfile can come after brief. </Para></Abstract><Discussion><Para> More property description goes here.</Para></Discussion></Other>] |
| Fariborz Jahanian | 1a0cf80 | 2013-01-31 23:12:39 +0000 | [diff] [blame] | 66 | // CHECK-NEXT: CommentAST=[ |
| 67 | // CHECK-NEXT: (CXComment_FullComment |
| 68 | // CHECK-NEXT: (CXComment_Paragraph IsWhitespace |
| 69 | // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) |
| 70 | // CHECK-NEXT: (CXComment_BlockCommand CommandName=[brief] |
| 71 | // CHECK-NEXT: (CXComment_Paragraph |
| 72 | // CHECK-NEXT: (CXComment_Text Text=[ Test that headerfile can come after brief.] HasTrailingNewline) |
| 73 | // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace))) |
| 74 | // CHECK-NEXT: (CXComment_BlockCommand CommandName=[headerfile] |
| 75 | // CHECK-NEXT: (CXComment_Paragraph |
| 76 | // CHECK-NEXT: (CXComment_Text Text=[ VTDevice.h ]) |
| 77 | // CHECK-NEXT: (CXComment_Text Text=[<VTFoundation]) |
| 78 | // CHECK-NEXT: (CXComment_Text Text=[/VTDevice.h>]))) |
| 79 | // CHECK-NEXT: (CXComment_Paragraph |
| Alexander Kornienko | 2a8c18d | 2018-04-06 15:14:32 +0000 | [diff] [blame] | 80 | // CHECK-NEXT: (CXComment_Text Text=[ More property description goes here.])))] |
| Fariborz Jahanian | 1a0cf80 | 2013-01-31 23:12:39 +0000 | [diff] [blame] | 81 | |
| 82 | /*! |
| 83 | \headerfile <stdio.h> |
| 84 | */ |
| 85 | extern void uses_stdio_h(); |
| NAKAMURA Takumi | 524bed1 | 2013-02-01 00:17:45 +0000 | [diff] [blame] | 86 | // CHECK: headerfile-comment-to-html.m:[[@LINE-1]]:13: FunctionDecl=uses_stdio_h:{{.*}} FullCommentAsXML=[<Function file="{{[^"]+}}headerfile-comment-to-html.m" line="[[@LINE-1]]" column="13"><Name>uses_stdio_h</Name><USR>c:@F@uses_stdio_h</USR><Headerfile><Para> <stdio.h></Para></Headerfile><Declaration>extern void uses_stdio_h()</Declaration></Function>] |
| Fariborz Jahanian | 1a0cf80 | 2013-01-31 23:12:39 +0000 | [diff] [blame] | 87 | // CHECK-NEXT: CommentAST=[ |
| 88 | // CHECK-NEXT: (CXComment_FullComment |
| 89 | // CHECK-NEXT: (CXComment_Paragraph IsWhitespace |
| 90 | // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) |
| 91 | // CHECK-NEXT: (CXComment_BlockCommand CommandName=[headerfile] |
| 92 | // CHECK-NEXT: (CXComment_Paragraph |
| 93 | // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) |
| 94 | // CHECK-NEXT: (CXComment_Text Text=[<stdio]) |
| 95 | // CHECK-NEXT: (CXComment_Text Text=[.h>]))))] |
| 96 | |
| 97 | |
| 98 | /*! |
| 99 | \headerfile <algorithm> |
| 100 | */ |
| 101 | extern void uses_argorithm(); |
| NAKAMURA Takumi | 524bed1 | 2013-02-01 00:17:45 +0000 | [diff] [blame] | 102 | // CHECK: headerfile-comment-to-html.m:[[@LINE-1]]:13: FunctionDecl=uses_argorithm:{{.*}} FullCommentAsXML=[<Function file="{{[^"]+}}headerfile-comment-to-html.m" line="[[@LINE-1]]" column="13"><Name>uses_argorithm</Name><USR>c:@F@uses_argorithm</USR><Headerfile><Para> <algorithm></Para></Headerfile><Declaration>extern void uses_argorithm()</Declaration></Function>] |
| Fariborz Jahanian | 1a0cf80 | 2013-01-31 23:12:39 +0000 | [diff] [blame] | 103 | // CHECK-NEXT: CommentAST=[ |
| 104 | // CHECK-NEXT: (CXComment_FullComment |
| 105 | // CHECK-NEXT: (CXComment_Paragraph IsWhitespace |
| 106 | // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace)) |
| 107 | // CHECK-NEXT: (CXComment_BlockCommand CommandName=[headerfile] |
| 108 | // CHECK-NEXT: (CXComment_Paragraph |
| 109 | // CHECK-NEXT: (CXComment_Text Text=[ ] IsWhitespace) |
| 110 | // CHECK-NEXT: (CXComment_Text Text=[<algorithm]) |
| 111 | // CHECK-NEXT: (CXComment_Text Text=[>]))))] |