Skip to content

Commit f6d03ac

Browse files
PeterChou1yuxuanchen1997
authored andcommitted
[clang-doc] add enum test (#97679)
Summary: This patch adds a test which test the enum generation for clang-doc. Test Plan: Reviewers: Subscribers: Tasks: Tags: Differential Revision: https://phabricator.intern.facebook.com/D60250871
1 parent e86a9c4 commit f6d03ac

File tree

1 file changed

+132
-0
lines changed
  • clang-tools-extra/test/clang-doc

1 file changed

+132
-0
lines changed
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
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>

0 commit comments

Comments
 (0)