1c491c3f2SFariborz Jahanian // rdar://12378879 2c491c3f2SFariborz Jahanian 361b1db16SDmitri Gribenko // RUN: rm -rf %t 461b1db16SDmitri Gribenko // RUN: mkdir %t 561b1db16SDmitri Gribenko // RUN: c-index-test -test-load-source all -comments-xml-schema=%S/../../bindings/xml/comment-xml-schema.rng %s > %t/out 661b1db16SDmitri Gribenko // RUN: FileCheck %s < %t/out 761b1db16SDmitri Gribenko 861b1db16SDmitri Gribenko // Ensure that XML we generate is not invalid. 961b1db16SDmitri Gribenko // RUN: FileCheck %s -check-prefix=WRONG < %t/out 1061b1db16SDmitri Gribenko // WRONG-NOT: CommentXMLInvalid 1161b1db16SDmitri Gribenko 1261b1db16SDmitri Gribenko /// Aaa. 1361b1db16SDmitri Gribenko void attr_availability_1() __attribute__((availability(macosx,obsoleted=10.0,introduced=8.0,deprecated=9.0, message="use availability_test in <foo.h>"))) 14c491c3f2SFariborz Jahanian __attribute__((availability(ios,unavailable, message="not for iOS"))); 15c491c3f2SFariborz Jahanian 16*dc5ce72aSMichael Kruse // CHECK: FullCommentAsXML=[<Function file="{{[^"]+}}annotate-comments-availability-attrs.cpp" line="[[@LINE-3]]" 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="macOS"><IntroducedInVersion>8.0</IntroducedInVersion><DeprecatedInVersion>9.0</DeprecatedInVersion><RemovedAfterVersion>10.0</RemovedAfterVersion><DeprecationSummary>use availability_test in <foo.h></DeprecationSummary></Availability><Availability distribution="iOS"><DeprecationSummary>not for iOS</DeprecationSummary><Unavailable/></Availability></Function>] 1760d4b996SDmitri Gribenko 1861b1db16SDmitri Gribenko /// Aaa. 1961b1db16SDmitri Gribenko void attr_availability_2() __attribute__((availability(macosx,obsoleted=10.0.1,introduced=8.0.1,deprecated=9.0.1))); 20de0ae1e4SFariborz Jahanian 21ccf25bbfSManman Ren // CHECK: FullCommentAsXML=[<Function file="{{[^"]+}}annotate-comments-availability-attrs.cpp" line="[[@LINE-2]]" 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="macOS"><IntroducedInVersion>8.0.1</IntroducedInVersion><DeprecatedInVersion>9.0.1</DeprecatedInVersion><RemovedAfterVersion>10.0.1</RemovedAfterVersion></Availability></Function>] 2260d4b996SDmitri Gribenko 2361b1db16SDmitri Gribenko /// Aaa. 2461b1db16SDmitri Gribenko void attr_deprecated_1() __attribute__((deprecated)); 25de0ae1e4SFariborz Jahanian 2660d4b996SDmitri Gribenko // CHECK: FullCommentAsXML=[<Function file="{{[^"]+}}annotate-comments-availability-attrs.cpp" line="[[@LINE-2]]" 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>] 2760d4b996SDmitri Gribenko 2861b1db16SDmitri Gribenko /// Aaa. 2961b1db16SDmitri Gribenko void attr_deprecated_2() __attribute__((deprecated("message 1 <foo.h>"))); 30de0ae1e4SFariborz Jahanian 3160d4b996SDmitri Gribenko // CHECK: FullCommentAsXML=[<Function file="{{[^"]+}}annotate-comments-availability-attrs.cpp" line="[[@LINE-2]]" 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 <foo.h></Deprecated></Function>] 3260d4b996SDmitri Gribenko 3360d4b996SDmitri Gribenko 3461b1db16SDmitri Gribenko /// Aaa. 3561b1db16SDmitri Gribenko void attr_unavailable_1() __attribute__((unavailable)); 3661b1db16SDmitri Gribenko 3760d4b996SDmitri Gribenko // CHECK: FullCommentAsXML=[<Function file="{{[^"]+}}annotate-comments-availability-attrs.cpp" line="[[@LINE-2]]" 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>] 3860d4b996SDmitri Gribenko 3961b1db16SDmitri Gribenko /// Aaa. 4061b1db16SDmitri Gribenko void attr_unavailable_2() __attribute__((unavailable("message 2 <foo.h>"))); 4161b1db16SDmitri Gribenko 4260d4b996SDmitri Gribenko // CHECK: FullCommentAsXML=[<Function file="{{[^"]+}}annotate-comments-availability-attrs.cpp" line="[[@LINE-2]]" 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 <foo.h></Unavailable></Function>] 4361b1db16SDmitri Gribenko 44