blob: 777881d683e802e8137458d3d3441d825ca2ba74 [file] [log] [blame]
Fariborz Jahanianc491c3f2012-10-01 18:42:25 +00001// rdar://12378879
2
Dmitri Gribenko61b1db12012-10-03 09:04:56 +00003// RUN: rm -rf %t
4// RUN: mkdir %t
5// RUN: c-index-test -test-load-source all -comments-xml-schema=%S/../../bindings/xml/comment-xml-schema.rng %s > %t/out
6// RUN: FileCheck %s < %t/out
Fariborz Jahanianc491c3f2012-10-01 18:42:25 +00007
Dmitri Gribenko61b1db12012-10-03 09:04:56 +00008// Ensure that XML we generate is not invalid.
9// RUN: FileCheck %s -check-prefix=WRONG < %t/out
10// WRONG-NOT: CommentXMLInvalid
Fariborz Jahanianc491c3f2012-10-01 18:42:25 +000011
Dmitri Gribenko61b1db12012-10-03 09:04:56 +000012/// Aaa.
13void attr_availability_1() __attribute__((availability(macosx,obsoleted=10.0,introduced=8.0,deprecated=9.0, message="use availability_test in <foo.h>")))
14 __attribute__((availability(ios,unavailable, message="not for iOS")));
Fariborz Jahaniande0ae1e2012-10-02 20:05:47 +000015
Dmitri Gribenko61b1db12012-10-03 09:04:56 +000016/// Aaa.
17void attr_availability_2() __attribute__((availability(macosx,obsoleted=10.0.1,introduced=8.0.1,deprecated=9.0.1)));
Fariborz Jahaniande0ae1e2012-10-02 20:05:47 +000018
Dmitri Gribenko61b1db12012-10-03 09:04:56 +000019/// Aaa.
20void attr_deprecated_1() __attribute__((deprecated));
Fariborz Jahaniande0ae1e2012-10-02 20:05:47 +000021
Dmitri Gribenko61b1db12012-10-03 09:04:56 +000022/// Aaa.
23void attr_deprecated_2() __attribute__((deprecated("message 1 <foo.h>")));
24
Dmitri Gribenko61b1db12012-10-03 09:04:56 +000025/// Aaa.
26void attr_unavailable_1() __attribute__((unavailable));
27
Dmitri Gribenko61b1db12012-10-03 09:04:56 +000028/// Aaa.
29void attr_unavailable_2() __attribute__((unavailable("message 2 <foo.h>")));
30
Dmitri Gribenkob2b6a9e2012-10-18 14:33:01 +000031// CHECK: FullCommentAsXML=[<Function file="{{[^"]+}}annotate-comments-availability-attrs.cpp" line="13" column="6"><Name>attr_availability_1</Name><USR>c:@F@attr_availability_1#</USR><Declaration>void attr_availability_1()</Declaration><Abstract><Para> Aaa.</Para></Abstract><Availability distribution="iOS"><DeprecationSummary>not for iOS</DeprecationSummary><Unavailable/></Availability><Availability distribution="OS X"><IntroducedInVersion>8.0</IntroducedInVersion><DeprecatedInVersion>9.0</DeprecatedInVersion><RemovedAfterVersion>10.0</RemovedAfterVersion><DeprecationSummary>use availability_test in &lt;foo.h&gt;</DeprecationSummary></Availability></Function>]
Dmitri Gribenko61b1db12012-10-03 09:04:56 +000032
Fariborz Jahaniana7d76d22012-10-17 21:58:03 +000033
Dmitri Gribenkob2b6a9e2012-10-18 14:33:01 +000034// CHECK: FullCommentAsXML=[<Function file="{{[^"]+}}annotate-comments-availability-attrs.cpp" line="17" column="6"><Name>attr_availability_2</Name><USR>c:@F@attr_availability_2#</USR><Declaration>void attr_availability_2()</Declaration><Abstract><Para> Aaa.</Para></Abstract><Availability distribution="OS X"><IntroducedInVersion>8.0.1</IntroducedInVersion><DeprecatedInVersion>9.0.1</DeprecatedInVersion><RemovedAfterVersion>10.0.1</RemovedAfterVersion></Availability></Function>]
Fariborz Jahaniana7d76d22012-10-17 21:58:03 +000035
Dmitri Gribenkob2b6a9e2012-10-18 14:33:01 +000036// CHECK: FullCommentAsXML=[<Function file="{{[^"]+}}annotate-comments-availability-attrs.cpp" line="20" column="6"><Name>attr_deprecated_1</Name><USR>c:@F@attr_deprecated_1#</USR><Declaration>void attr_deprecated_1()</Declaration><Abstract><Para> Aaa.</Para></Abstract><Deprecated/></Function>]
Fariborz Jahaniana7d76d22012-10-17 21:58:03 +000037
Dmitri Gribenkob2b6a9e2012-10-18 14:33:01 +000038// CHECK: FullCommentAsXML=[<Function file="{{[^"]+}}annotate-comments-availability-attrs.cpp" line="23" column="6"><Name>attr_deprecated_2</Name><USR>c:@F@attr_deprecated_2#</USR><Declaration>void attr_deprecated_2()</Declaration><Abstract><Para> Aaa.</Para></Abstract><Deprecated>message 1 &lt;foo.h&gt;</Deprecated></Function>]
Fariborz Jahaniana7d76d22012-10-17 21:58:03 +000039
40
Dmitri Gribenkob2b6a9e2012-10-18 14:33:01 +000041// CHECK: FullCommentAsXML=[<Function file="{{[^"]+}}annotate-comments-availability-attrs.cpp" line="26" column="6"><Name>attr_unavailable_1</Name><USR>c:@F@attr_unavailable_1#</USR><Declaration>void attr_unavailable_1()</Declaration><Abstract><Para> Aaa.</Para></Abstract><Unavailable/></Function>]
Fariborz Jahaniana7d76d22012-10-17 21:58:03 +000042
43
Dmitri Gribenkob2b6a9e2012-10-18 14:33:01 +000044// CHECK: FullCommentAsXML=[<Function file="{{[^"]+}}annotate-comments-availability-attrs.cpp" line="29" column="6"><Name>attr_unavailable_2</Name><USR>c:@F@attr_unavailable_2#</USR><Declaration>void attr_unavailable_2()</Declaration><Abstract><Para> Aaa.</Para></Abstract><Unavailable>message 2 &lt;foo.h&gt;</Unavailable></Function>]