[llvm-branch-commits] [clang-tools-extra] [clang-doc] Try to make testing more uniform (PR #205586)

via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Wed Jun 24 09:04:00 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clang-tools-extra

Author: Paul Kirth (ilovepi)

<details>
<summary>Changes</summary>



---

Patch is 270.62 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/205586.diff


95 Files Affected:

- (added) clang-tools-extra/test/clang-doc/Inputs/DR-141990.cpp () 
- (modified) clang-tools-extra/test/clang-doc/Inputs/basic-project/src/Calculator.cpp (+4-13) 
- (modified) clang-tools-extra/test/clang-doc/Inputs/basic-project/src/Circle.cpp (+2-6) 
- (modified) clang-tools-extra/test/clang-doc/Inputs/basic-project/src/Rectangle.cpp (+2-6) 
- (added) clang-tools-extra/test/clang-doc/Inputs/builtin_types.cpp (+8) 
- (modified) clang-tools-extra/test/clang-doc/Inputs/class-partial-specialization.cpp (+2-2) 
- (added) clang-tools-extra/test/clang-doc/Inputs/class-requires.cpp (+8) 
- (added) clang-tools-extra/test/clang-doc/Inputs/class-specialization.cpp (+3) 
- (added) clang-tools-extra/test/clang-doc/Inputs/class-template.cpp (+4) 
- (added) clang-tools-extra/test/clang-doc/Inputs/class.cpp (+31) 
- (added) clang-tools-extra/test/clang-doc/Inputs/comments-in-macros.cpp (+10) 
- (added) clang-tools-extra/test/clang-doc/Inputs/compact.cpp (+1) 
- (added) clang-tools-extra/test/clang-doc/Inputs/compound-constraints.cpp (+40) 
- (added) clang-tools-extra/test/clang-doc/Inputs/concept.cpp (+6) 
- (added) clang-tools-extra/test/clang-doc/Inputs/conversion_function.cpp (+3) 
- (modified) clang-tools-extra/test/clang-doc/Inputs/enum.cpp (+6-6) 
- (added) clang-tools-extra/test/clang-doc/Inputs/function-requires.cpp (+11) 
- (added) clang-tools-extra/test/clang-doc/Inputs/function-specifiers.cpp (+9) 
- (added) clang-tools-extra/test/clang-doc/Inputs/index.cpp (+5) 
- (added) clang-tools-extra/test/clang-doc/Inputs/inheritance.cpp (+7) 
- (added) clang-tools-extra/test/clang-doc/Inputs/long-name.cpp (+8) 
- (added) clang-tools-extra/test/clang-doc/Inputs/method-template.cpp (+3) 
- (added) clang-tools-extra/test/clang-doc/Inputs/multiple-namespaces.cpp (+11) 
- (added) clang-tools-extra/test/clang-doc/Inputs/mustache-index.cpp (+3) 
- (added) clang-tools-extra/test/clang-doc/Inputs/mustache-separate-namespace.cpp (+3) 
- (added) clang-tools-extra/test/clang-doc/Inputs/namespace-html-md.cpp (+29) 
- (added) clang-tools-extra/test/clang-doc/Inputs/namespace.cpp (+11) 
- (added) clang-tools-extra/test/clang-doc/Inputs/nested-namespace.cpp (+7) 
- (modified) clang-tools-extra/test/clang-doc/Inputs/nested-pointer-qualifiers.cpp (+1-1) 
- (added) clang-tools-extra/test/clang-doc/Inputs/single-file-public.cpp (+11) 
- (added) clang-tools-extra/test/clang-doc/Inputs/single-file.cpp (+3) 
- (added) clang-tools-extra/test/clang-doc/Inputs/templates.cpp (+20) 
- (added) clang-tools-extra/test/clang-doc/Inputs/typedef-alias.cpp (+14) 
- (modified) clang-tools-extra/test/clang-doc/basic-project.mustache.test (+5-5) 
- (modified) clang-tools-extra/test/clang-doc/basic-project.test (+5-6) 
- (removed) clang-tools-extra/test/clang-doc/class-partial-specialization.cpp (-13) 
- (removed) clang-tools-extra/test/clang-doc/comments-in-macros.cpp (-43) 
- (removed) clang-tools-extra/test/clang-doc/enum.cpp (-839) 
- (added) clang-tools-extra/test/clang-doc/html/array-type.cpp (+6) 
- (added) clang-tools-extra/test/clang-doc/html/class-partial-specialization.cpp (+7) 
- (added) clang-tools-extra/test/clang-doc/html/class-specialization.cpp (+19) 
- (added) clang-tools-extra/test/clang-doc/html/class.cpp (+59) 
- (added) clang-tools-extra/test/clang-doc/html/comments-in-macros.cpp (+12) 
- (added) clang-tools-extra/test/clang-doc/html/compound-constraints.cpp (+83) 
- (renamed) clang-tools-extra/test/clang-doc/html/conversion_function.cpp (+1-11) 
- (added) clang-tools-extra/test/clang-doc/html/enum.cpp (+368) 
- (added) clang-tools-extra/test/clang-doc/html/function-pointer-type.cpp (+6) 
- (renamed) clang-tools-extra/test/clang-doc/html/index.cpp (+1-25) 
- (added) clang-tools-extra/test/clang-doc/html/long-name.cpp (+6) 
- (added) clang-tools-extra/test/clang-doc/html/member-function-pointer-type.cpp (+6) 
- (renamed) clang-tools-extra/test/clang-doc/html/mustache-index.cpp (+2-10) 
- (renamed) clang-tools-extra/test/clang-doc/html/mustache-separate-namespace.cpp (+1-6) 
- (added) clang-tools-extra/test/clang-doc/html/namespace.cpp (+148) 
- (added) clang-tools-extra/test/clang-doc/html/nested-pointer-qualifiers.cpp (+6) 
- (added) clang-tools-extra/test/clang-doc/html/templates.cpp (+73) 
- (renamed) clang-tools-extra/test/clang-doc/html/typedef-alias.cpp (+6-23) 
- (modified) clang-tools-extra/test/clang-doc/json/class-partial-specialization.cpp (+1-1) 
- (modified) clang-tools-extra/test/clang-doc/json/class-requires.cpp (+1-10) 
- (modified) clang-tools-extra/test/clang-doc/json/class-specialization.cpp (+1-22) 
- (modified) clang-tools-extra/test/clang-doc/json/class-template.cpp (+1-6) 
- (modified) clang-tools-extra/test/clang-doc/json/class.cpp (+4-95) 
- (renamed) clang-tools-extra/test/clang-doc/json/compact.cpp (+2-4) 
- (modified) clang-tools-extra/test/clang-doc/json/compound-constraints.cpp (+1-118) 
- (modified) clang-tools-extra/test/clang-doc/json/concept.cpp (+2-9) 
- (added) clang-tools-extra/test/clang-doc/json/conversion_function.cpp (+5) 
- (added) clang-tools-extra/test/clang-doc/json/enum.cpp (+377) 
- (modified) clang-tools-extra/test/clang-doc/json/function-requires.cpp (+1-11) 
- (modified) clang-tools-extra/test/clang-doc/json/function-specifiers.cpp (+1-11) 
- (added) clang-tools-extra/test/clang-doc/json/index.cpp (+18) 
- (modified) clang-tools-extra/test/clang-doc/json/inheritance.cpp (+1-9) 
- (added) clang-tools-extra/test/clang-doc/json/long-name.cpp (+7) 
- (modified) clang-tools-extra/test/clang-doc/json/method-template.cpp (+2-7) 
- (modified) clang-tools-extra/test/clang-doc/json/multiple-namespaces.cpp (+1-13) 
- (modified) clang-tools-extra/test/clang-doc/json/namespace.cpp (+4-32) 
- (modified) clang-tools-extra/test/clang-doc/json/nested-namespace.cpp (+3-11) 
- (added) clang-tools-extra/test/clang-doc/json/templates.cpp (+196) 
- (removed) clang-tools-extra/test/clang-doc/long-name.cpp (-16) 
- (renamed) clang-tools-extra/test/clang-doc/md/array-type.cpp (+2-6) 
- (added) clang-tools-extra/test/clang-doc/md/builtin_types.cpp (+60) 
- (added) clang-tools-extra/test/clang-doc/md/class-partial-specialization.cpp (+8) 
- (added) clang-tools-extra/test/clang-doc/md/comments-in-macros.cpp (+18) 
- (added) clang-tools-extra/test/clang-doc/md/enum.cpp (+120) 
- (renamed) clang-tools-extra/test/clang-doc/md/function-pointer-type.cpp (+2-6) 
- (renamed) clang-tools-extra/test/clang-doc/md/member-function-pointer-type.cpp (+2-6) 
- (added) clang-tools-extra/test/clang-doc/md/namespace.cpp (+194) 
- (renamed) clang-tools-extra/test/clang-doc/md/nested-pointer-qualifiers.cpp (+2-6) 
- (added) clang-tools-extra/test/clang-doc/md/templates.cpp (+49) 
- (removed) clang-tools-extra/test/clang-doc/namespace.cpp (-380) 
- (removed) clang-tools-extra/test/clang-doc/single-file-public.cpp (-62) 
- (removed) clang-tools-extra/test/clang-doc/templates.cpp (-491) 
- (renamed) clang-tools-extra/test/clang-doc/yaml/builtin_types.cpp (+9-86) 
- (added) clang-tools-extra/test/clang-doc/yaml/conversion_function.cpp (+7) 
- (added) clang-tools-extra/test/clang-doc/yaml/single-file-public.cpp (+6) 
- (renamed) clang-tools-extra/test/clang-doc/yaml/single-file.cpp (+3-7) 
- (added) clang-tools-extra/test/clang-doc/yaml/templates.cpp (+148) 


``````````diff
diff --git a/clang-tools-extra/test/clang-doc/Inputs/DR-141990.cpp b/clang-tools-extra/test/clang-doc/Inputs/DR-141990.cpp
new file mode 100644
index 00000000000000..e69de29bb2d1d6
diff --git a/clang-tools-extra/test/clang-doc/Inputs/basic-project/src/Calculator.cpp b/clang-tools-extra/test/clang-doc/Inputs/basic-project/src/Calculator.cpp
index 483d050e3225ae..aac9b2f48a8261 100644
--- a/clang-tools-extra/test/clang-doc/Inputs/basic-project/src/Calculator.cpp
+++ b/clang-tools-extra/test/clang-doc/Inputs/basic-project/src/Calculator.cpp
@@ -1,18 +1,9 @@
 #include "Calculator.h"
 
-int Calculator::add(int a, int b) {
-  return a + b;
-}
+int Calculator::add(int a, int b) { return a + b; }
 
-int Calculator::subtract(int a, int b) {
-  return a - b;
-}
+int Calculator::subtract(int a, int b) { return a - b; }
 
-int Calculator::multiply(int a, int b) {
-  return a * b;
-}
-
-double Calculator::divide(int a, int b) {
-  return static_cast<double>(a) / b;
-}
+int Calculator::multiply(int a, int b) { return a * b; }
 
+double Calculator::divide(int a, int b) { return static_cast<double>(a) / b; }
diff --git a/clang-tools-extra/test/clang-doc/Inputs/basic-project/src/Circle.cpp b/clang-tools-extra/test/clang-doc/Inputs/basic-project/src/Circle.cpp
index 811aac4989bd09..c43299e809ba44 100644
--- a/clang-tools-extra/test/clang-doc/Inputs/basic-project/src/Circle.cpp
+++ b/clang-tools-extra/test/clang-doc/Inputs/basic-project/src/Circle.cpp
@@ -2,10 +2,6 @@
 
 Circle::Circle(double radius) : radius_(radius) {}
 
-double Circle::area() const {
-  return 3.141 * radius_ * radius_;
-}
+double Circle::area() const { return 3.141 * radius_ * radius_; }
 
-double Circle::perimeter() const {
-  return 3.141 * radius_;
-}
+double Circle::perimeter() const { return 3.141 * radius_; }
diff --git a/clang-tools-extra/test/clang-doc/Inputs/basic-project/src/Rectangle.cpp b/clang-tools-extra/test/clang-doc/Inputs/basic-project/src/Rectangle.cpp
index a2b253b750aa85..7b0fb2aa1c024c 100644
--- a/clang-tools-extra/test/clang-doc/Inputs/basic-project/src/Rectangle.cpp
+++ b/clang-tools-extra/test/clang-doc/Inputs/basic-project/src/Rectangle.cpp
@@ -3,10 +3,6 @@
 Rectangle::Rectangle(double width, double height)
     : width_(width), height_(height) {}
 
-double Rectangle::area() const {
-  return width_ * height_;
-}
+double Rectangle::area() const { return width_ * height_; }
 
-double Rectangle::perimeter() const {
-  return 2 * (width_ + height_);
-}
\ No newline at end of file
+double Rectangle::perimeter() const { return 2 * (width_ + height_); }
\ No newline at end of file
diff --git a/clang-tools-extra/test/clang-doc/Inputs/builtin_types.cpp b/clang-tools-extra/test/clang-doc/Inputs/builtin_types.cpp
new file mode 100644
index 00000000000000..c792bffd8f9f65
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/builtin_types.cpp
@@ -0,0 +1,8 @@
+extern bool b();
+char c();
+double d();
+float f();
+int i();
+long l();
+long long ll();
+short s();
diff --git a/clang-tools-extra/test/clang-doc/Inputs/class-partial-specialization.cpp b/clang-tools-extra/test/clang-doc/Inputs/class-partial-specialization.cpp
index f36b3201386911..d27e275ce180e8 100644
--- a/clang-tools-extra/test/clang-doc/Inputs/class-partial-specialization.cpp
+++ b/clang-tools-extra/test/clang-doc/Inputs/class-partial-specialization.cpp
@@ -1,2 +1,2 @@
-template<typename T> struct MyClass {};
-template<typename T> struct MyClass<T*> {};
+template <typename T> struct MyClass {};
+template <typename T> struct MyClass<T *> {};
diff --git a/clang-tools-extra/test/clang-doc/Inputs/class-requires.cpp b/clang-tools-extra/test/clang-doc/Inputs/class-requires.cpp
new file mode 100644
index 00000000000000..b3eeb0c43994d4
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/class-requires.cpp
@@ -0,0 +1,8 @@
+template <typename T>
+concept Addable = requires(T a, T b) {
+  { a + b };
+};
+
+template <typename T>
+  requires Addable<T>
+struct MyClass;
diff --git a/clang-tools-extra/test/clang-doc/Inputs/class-specialization.cpp b/clang-tools-extra/test/clang-doc/Inputs/class-specialization.cpp
new file mode 100644
index 00000000000000..482c533cd4f357
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/class-specialization.cpp
@@ -0,0 +1,3 @@
+template <typename T> struct MyClass {};
+
+template <> struct MyClass<int> {};
diff --git a/clang-tools-extra/test/clang-doc/Inputs/class-template.cpp b/clang-tools-extra/test/clang-doc/Inputs/class-template.cpp
new file mode 100644
index 00000000000000..6ed0eb353acc23
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/class-template.cpp
@@ -0,0 +1,4 @@
+template <typename T> struct MyClass {
+  T MemberTemplate;
+  T method(T Param);
+};
diff --git a/clang-tools-extra/test/clang-doc/Inputs/class.cpp b/clang-tools-extra/test/clang-doc/Inputs/class.cpp
new file mode 100644
index 00000000000000..07869652522b56
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/class.cpp
@@ -0,0 +1,31 @@
+/// This is a struct friend.
+struct Foo;
+
+// This is a nice class.
+// It has some nice methods and fields.
+// @brief This is a brief description.
+struct MyClass {
+  int PublicField;
+
+  int myMethod(int MyParam);
+  static void staticMethod();
+  const int &getConst();
+
+  enum Color { RED, GREEN, BLUE = 5 };
+
+  typedef int MyTypedef;
+
+  class NestedClass;
+
+  friend struct Foo;
+  /// This is a function template friend.
+  template <typename T> friend void friendFunction(int);
+
+protected:
+  int protectedMethod();
+
+  int ProtectedField;
+
+private:
+  int PrivateField;
+};
diff --git a/clang-tools-extra/test/clang-doc/Inputs/comments-in-macros.cpp b/clang-tools-extra/test/clang-doc/Inputs/comments-in-macros.cpp
new file mode 100644
index 00000000000000..783956d3d99fb0
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/comments-in-macros.cpp
@@ -0,0 +1,10 @@
+#define DECLARE_METHODS                                                        \
+  /**                                                                          \
+   * @brief Declare a method to calculate the sum of two numbers               \
+   */                                                                          \
+  int Add(int a, int b) { return a + b; }
+
+class MyClass {
+public:
+  DECLARE_METHODS
+};
diff --git a/clang-tools-extra/test/clang-doc/Inputs/compact.cpp b/clang-tools-extra/test/clang-doc/Inputs/compact.cpp
new file mode 100644
index 00000000000000..6247fa0e739118
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/compact.cpp
@@ -0,0 +1 @@
+class Foo {};
diff --git a/clang-tools-extra/test/clang-doc/Inputs/compound-constraints.cpp b/clang-tools-extra/test/clang-doc/Inputs/compound-constraints.cpp
new file mode 100644
index 00000000000000..f8aa2955314c5e
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/compound-constraints.cpp
@@ -0,0 +1,40 @@
+/// \brief Concept for an incrementable value
+///
+/// \tparam T A value that can be incremented.
+template <typename T>
+concept Incrementable = requires(T a) { a++; };
+
+/// \brief Concept for a decrementable value
+///
+/// \tparam T A value that can be decremented
+template <typename T>
+concept Decrementable = requires(T a) { a--; };
+
+/// \brief Concept for a pre-incrementable value
+///
+/// \tparam T A value that can be pre-incremented
+template <typename T>
+concept PreIncrementable = requires(T a) { ++a; };
+
+/// \brief Concept for a -pre-decrementable value
+///
+/// \tparam T A value that can be pre-decremented
+template <typename T>
+concept PreDecrementable = requires(T a) { --a; };
+
+template <typename T>
+  requires Incrementable<T> && Decrementable<T>
+void One();
+
+template <typename T>
+  requires(Incrementable<T> && Decrementable<T>)
+void Two();
+
+template <typename T>
+  requires(Incrementable<T> && Decrementable<T>) ||
+          (PreIncrementable<T> && PreDecrementable<T>)
+void Three();
+
+template <typename T>
+  requires(Incrementable<T> && Decrementable<T>) || PreIncrementable<T>
+void Four();
diff --git a/clang-tools-extra/test/clang-doc/Inputs/concept.cpp b/clang-tools-extra/test/clang-doc/Inputs/concept.cpp
new file mode 100644
index 00000000000000..b230b9aa4f5bc6
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/concept.cpp
@@ -0,0 +1,6 @@
+// Requires that T suports post and pre-incrementing.
+template <typename T>
+concept Incrementable = requires(T x) {
+  ++x;
+  x++;
+};
diff --git a/clang-tools-extra/test/clang-doc/Inputs/conversion_function.cpp b/clang-tools-extra/test/clang-doc/Inputs/conversion_function.cpp
new file mode 100644
index 00000000000000..ee6a21f9108daa
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/conversion_function.cpp
@@ -0,0 +1,3 @@
+template <typename T> struct MyStruct {
+  operator T();
+};
diff --git a/clang-tools-extra/test/clang-doc/Inputs/enum.cpp b/clang-tools-extra/test/clang-doc/Inputs/enum.cpp
index 04291865a3c09f..1a376fb232184c 100644
--- a/clang-tools-extra/test/clang-doc/Inputs/enum.cpp
+++ b/clang-tools-extra/test/clang-doc/Inputs/enum.cpp
@@ -41,7 +41,7 @@ enum Size : uint8_t {
  * @brief Very long number
  */
 enum : long long {
-  BigVal = 999999999999   ///< A very large value
+  BigVal = 999999999999 ///< A very large value
 };
 
 enum ColorUserSpecified {
@@ -56,9 +56,9 @@ class FilePermissions {
    * @brief File permission flags
    */
   enum {
-    Read    = 1,     ///< Permission to READ r
-    Write   = 2,     ///< Permission to WRITE w
-    Execute = 4      ///< Permission to EXECUTE x
+    Read = 1,   ///< Permission to READ r
+    Write = 2,  ///< Permission to WRITE w
+    Execute = 4 ///< Permission to EXECUTE x
   };
 };
 
@@ -80,8 +80,8 @@ namespace Vehicles {
  * @brief specify type of car
  */
 enum Car {
-  Sedan,    ///< Comment 1
-  SUV,      ///< Comment 2
+  Sedan, ///< Comment 1
+  SUV,   ///< Comment 2
   Pickup,
   Hatchback ///< Comment 4
 };
diff --git a/clang-tools-extra/test/clang-doc/Inputs/function-requires.cpp b/clang-tools-extra/test/clang-doc/Inputs/function-requires.cpp
new file mode 100644
index 00000000000000..3a6b4f85b2f561
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/function-requires.cpp
@@ -0,0 +1,11 @@
+template <typename T>
+concept Incrementable = requires(T x) {
+  ++x;
+  x++;
+};
+
+template <typename T>
+void increment(T t)
+  requires Incrementable<T>;
+
+template <Incrementable T> Incrementable auto incrementTwo(T t);
diff --git a/clang-tools-extra/test/clang-doc/Inputs/function-specifiers.cpp b/clang-tools-extra/test/clang-doc/Inputs/function-specifiers.cpp
new file mode 100644
index 00000000000000..77bdbebef879c8
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/function-specifiers.cpp
@@ -0,0 +1,9 @@
+static void myFunction() {}
+
+void noExceptFunction() noexcept {}
+
+inline void inlineFunction() {}
+
+extern void externFunction() {}
+
+constexpr void constexprFunction() {}
diff --git a/clang-tools-extra/test/clang-doc/Inputs/index.cpp b/clang-tools-extra/test/clang-doc/Inputs/index.cpp
new file mode 100644
index 00000000000000..535f5f3cd88375
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/index.cpp
@@ -0,0 +1,5 @@
+class Foo {};
+
+namespace inner {
+class Bar {};
+} // namespace inner
diff --git a/clang-tools-extra/test/clang-doc/Inputs/inheritance.cpp b/clang-tools-extra/test/clang-doc/Inputs/inheritance.cpp
new file mode 100644
index 00000000000000..0b486cc3705cb5
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/inheritance.cpp
@@ -0,0 +1,7 @@
+class Virtual {};
+class Foo : virtual Virtual {};
+class Bar : Foo {};
+class Fizz : virtual Virtual {};
+class Buzz : Fizz {};
+
+class MyClass : Bar, Buzz {};
diff --git a/clang-tools-extra/test/clang-doc/Inputs/long-name.cpp b/clang-tools-extra/test/clang-doc/Inputs/long-name.cpp
new file mode 100644
index 00000000000000..7050fdf8a6c7a1
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/long-name.cpp
@@ -0,0 +1,8 @@
+struct
+    ThisStructHasANameThatResultsInAMangledNameThatIsExactly250CharactersLongThatIsSupposedToTestTheFilenameLengthLimitsWithinClangDocInOrdertoSeeifclangdocwillcrashornotdependingonthelengthofthestructIfTheLengthIsTooLongThenClangDocWillCrashAnd12 {
+};
+
+// This name is 1 character over the limit, so it will be serialized as a USR.
+struct
+    ThisStructHasANameThatResultsInAMangledNameThatIsExactly251CharactersLongThatIsSupposedToTestTheFilenameLengthLimitsWithinClangDocInOrdertoSeeifclangdocwillcrashornotdependingonthelengthofthestructIfTheLengthIsTooLongThenClangDocWillCrashAnd123 {
+};
diff --git a/clang-tools-extra/test/clang-doc/Inputs/method-template.cpp b/clang-tools-extra/test/clang-doc/Inputs/method-template.cpp
new file mode 100644
index 00000000000000..d489ae24b2b6d2
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/method-template.cpp
@@ -0,0 +1,3 @@
+struct MyClass {
+  template <class T> T methodTemplate(T param) {}
+};
diff --git a/clang-tools-extra/test/clang-doc/Inputs/multiple-namespaces.cpp b/clang-tools-extra/test/clang-doc/Inputs/multiple-namespaces.cpp
new file mode 100644
index 00000000000000..de7830b7ea2577
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/multiple-namespaces.cpp
@@ -0,0 +1,11 @@
+namespace foo {
+namespace tools {
+class FooTools {};
+} // namespace tools
+} // namespace foo
+
+namespace bar {
+namespace tools {
+class BarTools {};
+} // namespace tools
+} // namespace bar
diff --git a/clang-tools-extra/test/clang-doc/Inputs/mustache-index.cpp b/clang-tools-extra/test/clang-doc/Inputs/mustache-index.cpp
new file mode 100644
index 00000000000000..a4662f7b6a2844
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/mustache-index.cpp
@@ -0,0 +1,3 @@
+enum Color { RED, BLUE, GREEN };
+
+class Foo;
diff --git a/clang-tools-extra/test/clang-doc/Inputs/mustache-separate-namespace.cpp b/clang-tools-extra/test/clang-doc/Inputs/mustache-separate-namespace.cpp
new file mode 100644
index 00000000000000..66686162ea5b86
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/mustache-separate-namespace.cpp
@@ -0,0 +1,3 @@
+namespace MyNamespace {
+class Foo;
+}
diff --git a/clang-tools-extra/test/clang-doc/Inputs/namespace-html-md.cpp b/clang-tools-extra/test/clang-doc/Inputs/namespace-html-md.cpp
new file mode 100644
index 00000000000000..20897fa335c799
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/namespace-html-md.cpp
@@ -0,0 +1,29 @@
+// Anonymous Namespace
+namespace {
+void anonFunction() {}
+class AnonClass {};
+} // namespace
+
+// Primary Namespace
+namespace PrimaryNamespace {
+// Function in PrimaryNamespace
+void functionInPrimaryNamespace() {}
+// Class in PrimaryNamespace
+class ClassInPrimaryNamespace {};
+
+// Nested namespace
+namespace NestedNamespace {
+// Function in NestedNamespace
+void functionInNestedNamespace() {}
+// Class in NestedNamespace
+class ClassInNestedNamespace {};
+} // namespace NestedNamespace
+} // namespace PrimaryNamespace
+
+// AnotherNamespace
+namespace AnotherNamespace {
+// Function in AnotherNamespace
+void functionInAnotherNamespace() {}
+// Class in AnotherNamespace
+class ClassInAnotherNamespace {};
+} // namespace AnotherNamespace
diff --git a/clang-tools-extra/test/clang-doc/Inputs/namespace.cpp b/clang-tools-extra/test/clang-doc/Inputs/namespace.cpp
new file mode 100644
index 00000000000000..05f69924d7c732
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/namespace.cpp
@@ -0,0 +1,11 @@
+class MyClass {};
+
+void myFunction(int Param);
+
+namespace NestedNamespace {} // namespace NestedNamespace
+
+static int Global;
+
+enum Color { RED, GREEN, BLUE = 5 };
+
+typedef int MyTypedef;
diff --git a/clang-tools-extra/test/clang-doc/Inputs/nested-namespace.cpp b/clang-tools-extra/test/clang-doc/Inputs/nested-namespace.cpp
new file mode 100644
index 00000000000000..a3f51010e95b68
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/nested-namespace.cpp
@@ -0,0 +1,7 @@
+namespace nested {
+int Global;
+namespace inner {
+int InnerGlobal;
+namespace inner_inner {}
+} // namespace inner
+} // namespace nested
diff --git a/clang-tools-extra/test/clang-doc/Inputs/nested-pointer-qualifiers.cpp b/clang-tools-extra/test/clang-doc/Inputs/nested-pointer-qualifiers.cpp
index 49cfb4c8567f4e..9f787685b014e5 100644
--- a/clang-tools-extra/test/clang-doc/Inputs/nested-pointer-qualifiers.cpp
+++ b/clang-tools-extra/test/clang-doc/Inputs/nested-pointer-qualifiers.cpp
@@ -1 +1 @@
-void foo(const int * const * ptr);
+void foo(const int *const *ptr);
diff --git a/clang-tools-extra/test/clang-doc/Inputs/single-file-public.cpp b/clang-tools-extra/test/clang-doc/Inputs/single-file-public.cpp
new file mode 100644
index 00000000000000..c809a248aa93ed
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/single-file-public.cpp
@@ -0,0 +1,11 @@
+class Record {
+private:
+  void function_private();
+
+public:
+  void function_public();
+};
+
+void Record::function_private() {}
+
+void Record::function_public() {}
diff --git a/clang-tools-extra/test/clang-doc/Inputs/single-file.cpp b/clang-tools-extra/test/clang-doc/Inputs/single-file.cpp
new file mode 100644
index 00000000000000..05b05085152584
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/single-file.cpp
@@ -0,0 +1,3 @@
+void function(int x);
+
+void function(int x) {}
diff --git a/clang-tools-extra/test/clang-doc/Inputs/templates.cpp b/clang-tools-extra/test/clang-doc/Inputs/templates.cpp
new file mode 100644
index 00000000000000..5fb8255b438720
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/templates.cpp
@@ -0,0 +1,20 @@
+template <class... T> void ParamPackFunction(T... args);
+
+template <typename T, int U = 1> void function(T x) {}
+
+template <typename A, typename B, typename C, typename D, typename E>
+void longFunction(A a, B b, C c, D d, E e) {}
+
+template <> void function<bool, 0>(bool x) {}
+
+/// A Tuple type
+///
+/// Does Tuple things.
+template <typename... Tys> struct tuple {};
+
+/// A function with a tuple parameter
+///
+/// \param t The input to func_with_tuple_param
+tuple<int, int, bool> func_with_tuple_param(tuple<int, int, bool> t) {
+  return t;
+}
diff --git a/clang-tools-extra/test/clang-doc/Inputs/typedef-alias.cpp b/clang-tools-extra/test/clang-doc/Inputs/typedef-alias.cpp
new file mode 100644
index 00000000000000..0ad69a97421a1b
--- /dev/null
+++ b/clang-tools-extra/test/clang-doc/Inputs/typedef-alias.cpp
@@ -0,0 +1,14 @@
+/// \brief This is u_long
+using u_long = unsigned long;
+
+/// \brief This is IntPtr
+typedef int *IntPtr;
+
+template <typename T> class Vector {
+  /// \brief This is a Ptr
+  using Ptr = IntPtr;
+};
+
+template <typename T> using Vec = Vector<T>;
+
+using IntVec = Vector<int>;
diff --git a/clang-tools-extra/test/clang-doc/basic-project.mustache.test b/clang-tools-extra/test/clang-doc/basic-project.mustache.test
index 0b190caeed8f5a..63c6d30fff8952 100644
--- a/clang-tools-extra/test/clang-doc/basic-project.mustache.test
+++ b/clang-tools-extra/test/clang-doc/basic-project.mustache.test
@@ -554,21 +554,21 @@ MD-CALC: **b** Second integer.
 MD-CALC: **return** int The sum of a and b.
 MD-CALC: ### subtract
 MD-CALC: *public int subtract(int a, int b)*
-MD-CALC: *Defined at .{{[\/]}}src{{[\/]}}Calculator.cpp#7*
+MD-CALC: *Defined at .{{[\/]}}src{{[\/]}}Calculator.cpp#5*
 MD-CALC: **brief** Subtracts the second integer from the first.
 MD-CALC: **a** First integer.
 MD-CALC: **b** Second integer.
 MD-CALC: **return** int The result of a - b.
 MD-CALC: ### multiply
 MD-CALC: *public int multiply(int a, int b)*
-MD-CALC: *Defined at .{{[\/]}}src{{[\/]}}Calculator.cpp#11*
+MD-CALC: *Defined at .{{[\/]}}src{{[\/]}}Calculator.cpp#7*
 MD-CALC: **brief** Multiplies two integers.
 MD-CALC: **a** First integer.
 MD-CALC: **b** Second integer.
 MD-CALC: **return** int The product of a and b.
 MD-CALC: ### divide
 MD-CALC: *public double divide(int a, int b)*
-MD-CALC: *Defined at .{{[\/]}}src{{[\/]}}Calculator.cpp#15*
+MD-CALC: *Defined at .{{[\/]}}src{{[\/]}}Calculator.cpp#9*
 MD-CALC: **brief** Divides the first integer by the second.
 MD-CALC: **a** First integer.
 MD-CALC: **b** Second integer.
@@ -602,7 +602,7 @@ MD-CIRCLE: **brief** Calculates the area of the circle.
 MD-CIRCLE: **return** double The area of the circle.
 MD-CIRCLE: ### perimeter
 MD-CIRCLE: *public double perimeter()*
-MD-CIRCLE: *Defined at .{{[\/]}}src{{[\/]}}Circle.cpp#9*
+MD-CIRCLE: *Defined at .{{[\/]}}src{{[\/]}}Circle.cpp#7*
...
[truncated]

``````````

</details>


https://github.com/llvm/llvm-project/pull/205586


More information about the llvm-branch-commits mailing list