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