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