176 lines · cpp
1// RUN: rm -rf %t && mkdir -p %t2// RUN: clang-doc --format=html --doxygen --output=%t --executor=standalone %s3// RUN: clang-doc --format=md --doxygen --output=%t --executor=standalone %s4// RUN: FileCheck %s < %t/GlobalNamespace/index.html --check-prefix=HTML-INDEX-LINE5// RUN: FileCheck %s < %t/GlobalNamespace/index.html --check-prefix=HTML-INDEX6// RUN: FileCheck %s < %t/GlobalNamespace/Animals.html --check-prefix=HTML-ANIMAL-LINE7// RUN: FileCheck %s < %t/GlobalNamespace/Animals.html --check-prefix=HTML-ANIMAL8// RUN: FileCheck %s < %t/Vehicles/index.html --check-prefix=HTML-VEHICLES-LINE9// RUN: FileCheck %s < %t/Vehicles/index.html --check-prefix=HTML-VEHICLES10// RUN: FileCheck %s < %t/GlobalNamespace/index.md --check-prefix=MD-INDEX-LINE11// RUN: FileCheck %s < %t/GlobalNamespace/index.md --check-prefix=MD-INDEX12// RUN: FileCheck %s < %t/GlobalNamespace/Animals.md --check-prefix=MD-ANIMAL-LINE13// RUN: FileCheck %s < %t/GlobalNamespace/Animals.md --check-prefix=MD-ANIMAL14// RUN: FileCheck %s < %t/Vehicles/index.md --check-prefix=MD-VEHICLES-LINE15// RUN: FileCheck %s < %t/Vehicles/index.md --check-prefix=MD-VEHICLES16 17/**18 * @brief For specifying RGB colors19 */20enum 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 124 Green, ///< Comment 225 Blue ///< Comment 326};27 28// MD-INDEX: ## Enums29// 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 colors35 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 Types49 */50enum 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 155 Circle,56 /// Comment 257 Rectangle,58 /// Comment 359 Triangle60};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 Types67 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 79class 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>82public:83 /**84 * @brief specify what animal the class is85 */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 friend90 Cat, ///< Man's other best friend91 Iguana ///< A lizard92 };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 Animals109// MD-ANIMAL: ## Enums110// 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 is116 117namespace Vehicles {118/**119 * @brief specify type of car120 */121enum 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 1126 SUV, ///< Comment 2127 Pickup, ///< Comment 3128 Hatchback ///< Comment 4129};130} // namespace Vehicles131 132// MD-VEHICLES: # namespace Vehicles133// MD-VEHICLES: ## Enums134// 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 car141 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 157enum 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