3 // RUN: c-index-test -test-load-source all -comments-xml-schema=%S/../../bindings/xml/comment-xml-schema.rng -target x86_64-apple-darwin10 %s > %t/out
4 // RUN: FileCheck %s < %t/out
6 // Ensure that XML we generate is not invalid.
7 // RUN: FileCheck %s -check-prefix=WRONG < %t/out
8 // WRONG-NOT: CommentXMLInvalid
12 * \brief plain c++ class
18 * \brief plain c++ constructor
20 Test () : reserved (new data()) {}
23 * \brief plain c++ member function
25 unsigned getID() const
27 return reserved
->objectID
;
30 * \brief plain c++ destructor
38 * \brief plain c++ data field
42 // CHECK: <Declaration>class Test {}</Declaration>
43 // CHECK: <Declaration>Test() : reserved(new Test::data())</Declaration>
44 // CHECK: <Declaration>unsigned int getID() const</Declaration>
45 // CHECK: <Declaration>~Test()</Declaration>
46 // CHECK: <Declaration>Test::data *reserved</Declaration>
62 friend int int_func();
67 friend bool operator==(const Test
&, const Test
&);
72 template <typename T
> friend void TemplateFriend();
77 template <typename T
> friend class TemplateFriendClass
;
80 // CHECK: <Declaration>friend class Test</Declaration>
81 // CHECK: <Declaration>friend void foo()</Declaration>
82 // CHECK: <Declaration>friend int int_func()</Declaration>
83 // CHECK: <Declaration>friend bool operator==(const Test &, const Test &)</Declaration>
84 // CHECK: <Declaration>friend template <typename T> void TemplateFriend()</Declaration>
85 // CHECK: <Declaration>friend template <typename T> class TemplateFriendClass</Declaration>
96 friend void ns::f(int a
);
99 // CHECK: <Declaration>friend void f(int a)</Declaration>
102 template <class T
> struct Outer
{
108 friend void Outer::foo(T
);
112 // CHECK: <Declaration>friend void foo(T)</Declaration>
123 friend void ::test2::foo::Func(int x
);
126 // CHECK: <Declaration>friend void Func(int x)</Declaration>
129 template<class T
> class vector
{
135 void f(const T
& t
= T()) {}
142 friend void vector
<A
>::f(const A
&);
145 // CHECK: <Declaration>void f(const T &t = T())</Declaration>
146 // CHECK: <Declaration>friend void f(const test3::A &)</Declaration>
151 * \brief plain friend test.
153 friend class MyClass
;
155 // CHECK: <Declaration>friend class MyClass</Declaration>
157 template<class _Tp
> class valarray
161 * \brief template friend test.
163 template <class T
> friend class valarray
;
165 // CHECK: <Declaration>template <class T> class valarray</Declaration>
166 // CHECK: <Declaration>friend template <class T> class valarray</Declaration>
170 valarray
<unsigned> __size_
;