1 | // RUN: rm -rf %t && mkdir -p %t |
2 | // RUN: clang-doc --format=html --doxygen --output=%t --executor=standalone %s |
3 | // RUN: clang-doc --format=md --doxygen --output=%t --executor=standalone %s |
4 | // RUN: FileCheck %s < %t/GlobalNamespace/index.html --check-prefix=HTML-INDEX-LINE |
5 | // RUN: FileCheck %s < %t/GlobalNamespace/index.html --check-prefix=HTML-INDEX |
6 | // RUN: FileCheck %s < %t/GlobalNamespace/Animals.html --check-prefix=HTML-ANIMAL-LINE |
7 | // RUN: FileCheck %s < %t/GlobalNamespace/Animals.html --check-prefix=HTML-ANIMAL |
8 | // RUN: FileCheck %s < %t/Vehicles/index.html --check-prefix=HTML-VEHICLES-LINE |
9 | // RUN: FileCheck %s < %t/Vehicles/index.html --check-prefix=HTML-VEHICLES |
10 | // RUN: FileCheck %s < %t/GlobalNamespace/index.md --check-prefix=MD-INDEX-LINE |
11 | // RUN: FileCheck %s < %t/GlobalNamespace/index.md --check-prefix=MD-INDEX |
12 | // RUN: FileCheck %s < %t/GlobalNamespace/Animals.md --check-prefix=MD-ANIMAL-LINE |
13 | // RUN: FileCheck %s < %t/GlobalNamespace/Animals.md --check-prefix=MD-ANIMAL |
14 | // RUN: FileCheck %s < %t/Vehicles/index.md --check-prefix=MD-VEHICLES-LINE |
15 | // RUN: FileCheck %s < %t/Vehicles/index.md --check-prefix=MD-VEHICLES |
16 | |
17 | /** |
18 | * @brief For specifying RGB colors |
19 | */ |
20 | enum Color { |
21 | // MD-INDEX-LINE: *Defined at {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp#[[@LINE-1]]* |
22 | // HTML-INDEX-LINE: <p>Defined at line [[@LINE-2]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p> |
23 | Red, ///< Comment 1 |
24 | Green, ///< Comment 2 |
25 | Blue ///< Comment 3 |
26 | }; |
27 | |
28 | // MD-INDEX: ## Enums |
29 | // MD-INDEX: | enum Color | |
30 | // MD-INDEX: -- |
31 | // MD-INDEX: | Red | |
32 | // MD-INDEX: | Green | |
33 | // MD-INDEX: | Blue | |
34 | // MD-INDEX: **brief** For specifying RGB colors |
35 | |
36 | // HTML-INDEX: <th colspan="3">enum Color</th> |
37 | // HTML-INDEX: <td>Red</td> |
38 | // HTML-INDEX: <td>0</td> |
39 | // HTML-INDEX: <p> Comment 1</p> |
40 | // HTML-INDEX: <td>Green</td> |
41 | // HTML-INDEX: <td>1</td> |
42 | // HTML-INDEX: <p> Comment 2</p> |
43 | // HTML-INDEX: <td>Blue</td> |
44 | // HTML-INDEX: <td>2</td> |
45 | // HTML-INDEX: <p> Comment 3</p> |
46 | |
47 | /** |
48 | * @brief Shape Types |
49 | */ |
50 | enum class Shapes { |
51 | // MD-INDEX-LINE: *Defined at {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp#[[@LINE-1]]* |
52 | // HTML-INDEX-LINE: <p>Defined at line [[@LINE-2]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p> |
53 | |
54 | /// Comment 1 |
55 | Circle, |
56 | /// Comment 2 |
57 | Rectangle, |
58 | /// Comment 3 |
59 | Triangle |
60 | }; |
61 | // MD-INDEX: | enum class Shapes | |
62 | // MD-INDEX: -- |
63 | // MD-INDEX: | Circle | |
64 | // MD-INDEX: | Rectangle | |
65 | // MD-INDEX: | Triangle | |
66 | // MD-INDEX: **brief** Shape Types |
67 | |
68 | // HTML-INDEX: <th colspan="3">enum class Shapes</th> |
69 | // HTML-INDEX: <td>Circle</td> |
70 | // HTML-INDEX: <td>0</td> |
71 | // HTML-INDEX: <p> Comment 1</p> |
72 | // HTML-INDEX: <td>Rectangle</td> |
73 | // HTML-INDEX: <td>1</td> |
74 | // HTML-INDEX: <p> Comment 2</p> |
75 | // HTML-INDEX: <td>Triangle</td> |
76 | // HTML-INDEX: <td>2</td> |
77 | // HTML-INDEX: <p> Comment 3</p> |
78 | |
79 | class Animals { |
80 | // MD-ANIMAL-LINE: *Defined at {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp#[[@LINE-1]]* |
81 | // HTML-ANIMAL-LINE: <p>Defined at line [[@LINE-2]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p> |
82 | public: |
83 | /** |
84 | * @brief specify what animal the class is |
85 | */ |
86 | enum AnimalType { |
87 | // MD-ANIMAL-LINE: *Defined at {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp#[[@LINE-1]]* |
88 | // HTML-ANIMAL-LINE: <p>Defined at line [[@LINE-2]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p> |
89 | Dog, ///< Man's best friend |
90 | Cat, ///< Man's other best friend |
91 | Iguana ///< A lizard |
92 | }; |
93 | }; |
94 | |
95 | // HTML-ANIMAL: <h1>class Animals</h1> |
96 | // HTML-ANIMAL: <h2 id="Enums">Enums</h2> |
97 | // HTML-ANIMAL: <th colspan="3">enum AnimalType</th> |
98 | // HTML-ANIMAL: <td>Dog</td> |
99 | // HTML-ANIMAL: <td>0</td> |
100 | // HTML-ANIMAL: <p> Man's best friend</p> |
101 | // HTML-ANIMAL: <td>Cat</td> |
102 | // HTML-ANIMAL: <td>1</td> |
103 | // HTML-ANIMAL: <p> Man's other best friend</p> |
104 | // HTML-ANIMAL: <td>Iguana</td> |
105 | // HTML-ANIMAL: <td>2</td> |
106 | // HTML-ANIMAL: <p> A lizard</p> |
107 | |
108 | // MD-ANIMAL: # class Animals |
109 | // MD-ANIMAL: ## Enums |
110 | // MD-ANIMAL: | enum AnimalType | |
111 | // MD-ANIMAL: -- |
112 | // MD-ANIMAL: | Dog | |
113 | // MD-ANIMAL: | Cat | |
114 | // MD-ANIMAL: | Iguana | |
115 | // MD-ANIMAL: **brief** specify what animal the class is |
116 | |
117 | namespace Vehicles { |
118 | /** |
119 | * @brief specify type of car |
120 | */ |
121 | enum Car { |
122 | // MD-VEHICLES-LINE: *Defined at {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp#[[@LINE-1]]* |
123 | // HTML-VEHICLES-LINE: <p>Defined at line [[@LINE-2]] of file {{.*}}clang-tools-extra{{[\/]}}test{{[\/]}}clang-doc{{[\/]}}enum.cpp</p> |
124 | |
125 | Sedan, ///< Comment 1 |
126 | SUV, ///< Comment 2 |
127 | Pickup, ///< Comment 3 |
128 | Hatchback ///< Comment 4 |
129 | }; |
130 | } // namespace Vehicles |
131 | |
132 | // MD-VEHICLES: # namespace Vehicles |
133 | // MD-VEHICLES: ## Enums |
134 | // MD-VEHICLES: | enum Car | |
135 | // MD-VEHICLES: -- |
136 | // MD-VEHICLES: | Sedan | |
137 | // MD-VEHICLES: | SUV | |
138 | // MD-VEHICLES: | Pickup | |
139 | // MD-VEHICLES: | Hatchback | |
140 | // MD-VEHICLES: **brief** specify type of car |
141 | |
142 | // HTML-VEHICLES: <h1>namespace Vehicles</h1> |
143 | // HTML-VEHICLES: <th colspan="3">enum Car</th> |
144 | // HTML-VEHICLES: <td>Sedan</td> |
145 | // HTML-VEHICLES: <td>0</td> |
146 | // HTML-VEHICLES: <p> Comment 1</p> |
147 | // HTML-VEHICLES: <td>SUV</td> |
148 | // HTML-VEHICLES: <td>1</td> |
149 | // HTML-VEHICLES: <p> Comment 2</p> |
150 | // HTML-VEHICLES: <td>Pickup</td> |
151 | // HTML-VEHICLES: <td>2</td> |
152 | // HTML-VEHICLES: <p> Comment 3</p> |
153 | // HTML-VEHICLES: <td>Hatchback</td> |
154 | // HTML-VEHICLES: <td>3</td> |
155 | // HTML-VEHICLES: <p> Comment 4</p> |
156 | |
157 | enum ColorUserSpecified { |
158 | RedUserSpecified = 'A', |
159 | GreenUserSpecified = 2, |
160 | BlueUserSpecified = 'C' |
161 | }; |
162 | |
163 | // MD-INDEX: | enum ColorUserSpecified | |
164 | // MD-INDEX: -- |
165 | // MD-INDEX: | RedUserSpecified | |
166 | // MD-INDEX: | GreenUserSpecified | |
167 | // MD-INDEX: | BlueUserSpecified | |
168 | |
169 | // HTML-INDEX: <th colspan="2">enum ColorUserSpecified</th> |
170 | // HTML-INDEX: <td>RedUserSpecified</td> |
171 | // HTML-INDEX: <td>'A'</td> |
172 | // HTML-INDEX: <td>GreenUserSpecified</td> |
173 | // HTML-INDEX: <td>2</td> |
174 | // HTML-INDEX: <td>BlueUserSpecified</td> |
175 | // HTML-INDEX: <td>'C'</td> |
176 | |