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