xref: /llvm-project/clang-tools-extra/test/clang-doc/enum.cpp (revision eab37384c151c7eabbffb65e5a053b58f88c8b5d)
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>