[libc++] Refactor the mandatory header inclusion tests to .gen.py

This allows removing a bunch of boilerplate from the test suite and
reducing the amount of manual stuff contributors have to do when they
add a new public header.

Differential Revision: https://reviews.llvm.org/D151830

GitOrigin-RevId: 45307f1b0d27831206b2e8d9bb95d0cd64f3a922
diff --git a/docs/Contributing.rst b/docs/Contributing.rst
index 159fa92..5e7f2aa 100644
--- a/docs/Contributing.rst
+++ b/docs/Contributing.rst
@@ -48,7 +48,7 @@
 
   - Did you add it to ``include/module.modulemap.in``?
   - Did you add it to ``include/CMakeLists.txt``?
-  - If it's a public header, did you update ``utils/generate_header_inclusion_tests.py``?
+  - If it's a public header, did you update ``utils/libcxx/test/header_information.py``?
 
 - Did you add the relevant feature test macro(s) for your feature? Did you update the ``generate_feature_test_macro_components.py`` script with it?
 - Did you run the ``libcxx-generate-files`` target and verify its output?
diff --git a/test/libcxx/header_inclusions.gen.py b/test/libcxx/header_inclusions.gen.py
new file mode 100644
index 0000000..3273f01
--- /dev/null
+++ b/test/libcxx/header_inclusions.gen.py
@@ -0,0 +1,47 @@
+#===----------------------------------------------------------------------===##
+#
+# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+# See https://llvm.org/LICENSE.txt for license information.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+#
+#===----------------------------------------------------------------------===##
+
+# Test that all headers include all the other headers they're supposed to, as
+# prescribed by the Standard.
+
+# RUN: %{python} %s %{libcxx}/utils
+
+import sys
+sys.path.append(sys.argv[1])
+from libcxx.test.header_information import header_restrictions, public_headers, mandatory_inclusions
+
+for header in public_headers:
+  test_condition_begin = '#if ' + header_restrictions[header] if header in header_restrictions else ''
+  test_condition_end = '#endif' if header in header_restrictions else ''
+
+  header_guard = lambda h: f"_LIBCPP_{h.upper().replace('.', '_').replace('/', '_')}"
+
+  # <cassert> has no header guards
+  if header == 'cassert':
+    checks = ''
+  else:
+    checks = f'''
+#ifndef {header_guard(header)}
+# error <{header}> was expected to define a header guard {header_guard(header)}
+#endif
+'''
+  for includee in mandatory_inclusions.get(header, []):
+    checks += f'''
+#ifndef {header_guard(includee)}
+# error <{header}> was expected to include <{includee}>
+#endif
+'''
+
+  print(f"""\
+//--- {header}.compile.pass.cpp
+#include <__config>
+{test_condition_begin}
+#include <{header}>
+{checks}
+{test_condition_end}
+""")
diff --git a/test/libcxx/inclusions/algorithm.inclusions.compile.pass.cpp b/test/libcxx/inclusions/algorithm.inclusions.compile.pass.cpp
deleted file mode 100644
index d2fde39..0000000
--- a/test/libcxx/inclusions/algorithm.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// <algorithm>
-
-// Test that <algorithm> includes all the other headers it's supposed to.
-
-#include <algorithm>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_ALGORITHM)
- #   error "<algorithm> was expected to define _LIBCPP_ALGORITHM"
-#endif
-#if TEST_STD_VER > 03 && !defined(_LIBCPP_INITIALIZER_LIST)
- #   error "<algorithm> should include <initializer_list> in C++11 and later"
-#endif
diff --git a/test/libcxx/inclusions/array.inclusions.compile.pass.cpp b/test/libcxx/inclusions/array.inclusions.compile.pass.cpp
deleted file mode 100644
index 7ec19fb..0000000
--- a/test/libcxx/inclusions/array.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// <array>
-
-// Test that <array> includes all the other headers it's supposed to.
-
-#include <array>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_ARRAY)
- #   error "<array> was expected to define _LIBCPP_ARRAY"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<array> should include <compare> in C++20 and later"
-#endif
-#if TEST_STD_VER > 03 && !defined(_LIBCPP_INITIALIZER_LIST)
- #   error "<array> should include <initializer_list> in C++11 and later"
-#endif
diff --git a/test/libcxx/inclusions/bitset.inclusions.compile.pass.cpp b/test/libcxx/inclusions/bitset.inclusions.compile.pass.cpp
deleted file mode 100644
index c8d413c..0000000
--- a/test/libcxx/inclusions/bitset.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// <bitset>
-
-// Test that <bitset> includes all the other headers it's supposed to.
-
-#include <bitset>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_BITSET)
- #   error "<bitset> was expected to define _LIBCPP_BITSET"
-#endif
-#if !defined(_LIBCPP_IOSFWD)
- #   error "<bitset> should include <iosfwd> in C++03 and later"
-#endif
-#if !defined(_LIBCPP_STRING)
- #   error "<bitset> should include <string> in C++03 and later"
-#endif
diff --git a/test/libcxx/inclusions/chrono.inclusions.compile.pass.cpp b/test/libcxx/inclusions/chrono.inclusions.compile.pass.cpp
deleted file mode 100644
index ffcaeed..0000000
--- a/test/libcxx/inclusions/chrono.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// UNSUPPORTED: c++03
-
-// <chrono>
-
-// Test that <chrono> includes all the other headers it's supposed to.
-
-#include <chrono>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_CHRONO)
- #   error "<chrono> was expected to define _LIBCPP_CHRONO"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<chrono> should include <compare> in C++20 and later"
-#endif
diff --git a/test/libcxx/inclusions/cinttypes.inclusions.compile.pass.cpp b/test/libcxx/inclusions/cinttypes.inclusions.compile.pass.cpp
deleted file mode 100644
index 61c0797..0000000
--- a/test/libcxx/inclusions/cinttypes.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// <cinttypes>
-
-// Test that <cinttypes> includes all the other headers it's supposed to.
-
-#include <cinttypes>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_CINTTYPES)
- #   error "<cinttypes> was expected to define _LIBCPP_CINTTYPES"
-#endif
-#if !defined(_LIBCPP_CSTDINT)
- #   error "<cinttypes> should include <cstdint> in C++03 and later"
-#endif
diff --git a/test/libcxx/inclusions/complex.h.inclusions.compile.pass.cpp b/test/libcxx/inclusions/complex.h.inclusions.compile.pass.cpp
deleted file mode 100644
index 5d2e943..0000000
--- a/test/libcxx/inclusions/complex.h.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// <complex.h>
-
-// Test that <complex.h> includes all the other headers it's supposed to.
-
-#include <complex.h>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_COMPLEX_H)
- #   error "<complex.h> was expected to define _LIBCPP_COMPLEX_H"
-#endif
-#if !defined(_LIBCPP_COMPLEX)
- #   error "<complex.h> should include <complex> in C++03 and later"
-#endif
diff --git a/test/libcxx/inclusions/coroutine.inclusions.compile.pass.cpp b/test/libcxx/inclusions/coroutine.inclusions.compile.pass.cpp
deleted file mode 100644
index d1ac6f3..0000000
--- a/test/libcxx/inclusions/coroutine.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// UNSUPPORTED: c++03, c++11, c++14, c++17
-
-// <coroutine>
-
-// Test that <coroutine> includes all the other headers it's supposed to.
-
-#include <coroutine>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_COROUTINE)
- #   error "<coroutine> was expected to define _LIBCPP_COROUTINE"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<coroutine> should include <compare> in C++20 and later"
-#endif
diff --git a/test/libcxx/inclusions/deque.inclusions.compile.pass.cpp b/test/libcxx/inclusions/deque.inclusions.compile.pass.cpp
deleted file mode 100644
index d1563de..0000000
--- a/test/libcxx/inclusions/deque.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// <deque>
-
-// Test that <deque> includes all the other headers it's supposed to.
-
-#include <deque>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_DEQUE)
- #   error "<deque> was expected to define _LIBCPP_DEQUE"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<deque> should include <compare> in C++20 and later"
-#endif
-#if TEST_STD_VER > 03 && !defined(_LIBCPP_INITIALIZER_LIST)
- #   error "<deque> should include <initializer_list> in C++11 and later"
-#endif
diff --git a/test/libcxx/inclusions/filesystem.inclusions.compile.pass.cpp b/test/libcxx/inclusions/filesystem.inclusions.compile.pass.cpp
deleted file mode 100644
index a726f3a..0000000
--- a/test/libcxx/inclusions/filesystem.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// UNSUPPORTED: c++03, c++11, c++14
-// UNSUPPORTED: no-filesystem
-
-// <filesystem>
-
-// Test that <filesystem> includes all the other headers it's supposed to.
-
-#include <filesystem>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_FILESYSTEM)
- #   error "<filesystem> was expected to define _LIBCPP_FILESYSTEM"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<filesystem> should include <compare> in C++20 and later"
-#endif
diff --git a/test/libcxx/inclusions/forward_list.inclusions.compile.pass.cpp b/test/libcxx/inclusions/forward_list.inclusions.compile.pass.cpp
deleted file mode 100644
index 62ea06e..0000000
--- a/test/libcxx/inclusions/forward_list.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// <forward_list>
-
-// Test that <forward_list> includes all the other headers it's supposed to.
-
-#include <forward_list>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_FORWARD_LIST)
- #   error "<forward_list> was expected to define _LIBCPP_FORWARD_LIST"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<forward_list> should include <compare> in C++20 and later"
-#endif
-#if TEST_STD_VER > 03 && !defined(_LIBCPP_INITIALIZER_LIST)
- #   error "<forward_list> should include <initializer_list> in C++11 and later"
-#endif
diff --git a/test/libcxx/inclusions/ios.inclusions.compile.pass.cpp b/test/libcxx/inclusions/ios.inclusions.compile.pass.cpp
deleted file mode 100644
index 560c819..0000000
--- a/test/libcxx/inclusions/ios.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// UNSUPPORTED: no-localization
-
-// <ios>
-
-// Test that <ios> includes all the other headers it's supposed to.
-
-#include <ios>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_IOS)
- #   error "<ios> was expected to define _LIBCPP_IOS"
-#endif
-#if !defined(_LIBCPP_IOSFWD)
- #   error "<ios> should include <iosfwd> in C++03 and later"
-#endif
diff --git a/test/libcxx/inclusions/iostream.inclusions.compile.pass.cpp b/test/libcxx/inclusions/iostream.inclusions.compile.pass.cpp
deleted file mode 100644
index a8f223a..0000000
--- a/test/libcxx/inclusions/iostream.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// UNSUPPORTED: no-localization
-
-// <iostream>
-
-// Test that <iostream> includes all the other headers it's supposed to.
-
-#include <iostream>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_IOSTREAM)
- #   error "<iostream> was expected to define _LIBCPP_IOSTREAM"
-#endif
-#if !defined(_LIBCPP_IOS)
- #   error "<iostream> should include <ios> in C++03 and later"
-#endif
-#if !defined(_LIBCPP_ISTREAM)
- #   error "<iostream> should include <istream> in C++03 and later"
-#endif
-#if !defined(_LIBCPP_OSTREAM)
- #   error "<iostream> should include <ostream> in C++03 and later"
-#endif
-#if !defined(_LIBCPP_STREAMBUF)
- #   error "<iostream> should include <streambuf> in C++03 and later"
-#endif
diff --git a/test/libcxx/inclusions/iterator.inclusions.compile.pass.cpp b/test/libcxx/inclusions/iterator.inclusions.compile.pass.cpp
deleted file mode 100644
index 11dfb74..0000000
--- a/test/libcxx/inclusions/iterator.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// <iterator>
-
-// Test that <iterator> includes all the other headers it's supposed to.
-
-#include <iterator>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_ITERATOR)
- #   error "<iterator> was expected to define _LIBCPP_ITERATOR"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<iterator> should include <compare> in C++20 and later"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_CONCEPTS)
- #   error "<iterator> should include <concepts> in C++20 and later"
-#endif
diff --git a/test/libcxx/inclusions/list.inclusions.compile.pass.cpp b/test/libcxx/inclusions/list.inclusions.compile.pass.cpp
deleted file mode 100644
index 76cb06d..0000000
--- a/test/libcxx/inclusions/list.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// <list>
-
-// Test that <list> includes all the other headers it's supposed to.
-
-#include <list>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_LIST)
- #   error "<list> was expected to define _LIBCPP_LIST"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<list> should include <compare> in C++20 and later"
-#endif
-#if TEST_STD_VER > 03 && !defined(_LIBCPP_INITIALIZER_LIST)
- #   error "<list> should include <initializer_list> in C++11 and later"
-#endif
diff --git a/test/libcxx/inclusions/map.inclusions.compile.pass.cpp b/test/libcxx/inclusions/map.inclusions.compile.pass.cpp
deleted file mode 100644
index 319ee46..0000000
--- a/test/libcxx/inclusions/map.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// <map>
-
-// Test that <map> includes all the other headers it's supposed to.
-
-#include <map>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_MAP)
- #   error "<map> was expected to define _LIBCPP_MAP"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<map> should include <compare> in C++20 and later"
-#endif
-#if TEST_STD_VER > 03 && !defined(_LIBCPP_INITIALIZER_LIST)
- #   error "<map> should include <initializer_list> in C++11 and later"
-#endif
diff --git a/test/libcxx/inclusions/memory.inclusions.compile.pass.cpp b/test/libcxx/inclusions/memory.inclusions.compile.pass.cpp
deleted file mode 100644
index 6b1cd84..0000000
--- a/test/libcxx/inclusions/memory.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// <memory>
-
-// Test that <memory> includes all the other headers it's supposed to.
-
-#include <memory>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_MEMORY)
- #   error "<memory> was expected to define _LIBCPP_MEMORY"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<memory> should include <compare> in C++20 and later"
-#endif
diff --git a/test/libcxx/inclusions/optional.inclusions.compile.pass.cpp b/test/libcxx/inclusions/optional.inclusions.compile.pass.cpp
deleted file mode 100644
index 7a6ff34..0000000
--- a/test/libcxx/inclusions/optional.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// UNSUPPORTED: c++03, c++11, c++14
-
-// <optional>
-
-// Test that <optional> includes all the other headers it's supposed to.
-
-#include <optional>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_OPTIONAL)
- #   error "<optional> was expected to define _LIBCPP_OPTIONAL"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<optional> should include <compare> in C++20 and later"
-#endif
diff --git a/test/libcxx/inclusions/queue.inclusions.compile.pass.cpp b/test/libcxx/inclusions/queue.inclusions.compile.pass.cpp
deleted file mode 100644
index f0bf7fb..0000000
--- a/test/libcxx/inclusions/queue.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// <queue>
-
-// Test that <queue> includes all the other headers it's supposed to.
-
-#include <queue>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_QUEUE)
- #   error "<queue> was expected to define _LIBCPP_QUEUE"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<queue> should include <compare> in C++20 and later"
-#endif
-#if TEST_STD_VER > 03 && !defined(_LIBCPP_INITIALIZER_LIST)
- #   error "<queue> should include <initializer_list> in C++11 and later"
-#endif
diff --git a/test/libcxx/inclusions/random.inclusions.compile.pass.cpp b/test/libcxx/inclusions/random.inclusions.compile.pass.cpp
deleted file mode 100644
index 68da450..0000000
--- a/test/libcxx/inclusions/random.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// <random>
-
-// Test that <random> includes all the other headers it's supposed to.
-
-#include <random>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_RANDOM)
- #   error "<random> was expected to define _LIBCPP_RANDOM"
-#endif
-#if TEST_STD_VER > 03 && !defined(_LIBCPP_INITIALIZER_LIST)
- #   error "<random> should include <initializer_list> in C++11 and later"
-#endif
diff --git a/test/libcxx/inclusions/ranges.inclusions.compile.pass.cpp b/test/libcxx/inclusions/ranges.inclusions.compile.pass.cpp
deleted file mode 100644
index 316d141..0000000
--- a/test/libcxx/inclusions/ranges.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,34 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// UNSUPPORTED: c++03, c++11, c++14, c++17
-
-// <ranges>
-
-// Test that <ranges> includes all the other headers it's supposed to.
-
-#include <ranges>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_RANGES)
- #   error "<ranges> was expected to define _LIBCPP_RANGES"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<ranges> should include <compare> in C++20 and later"
-#endif
-#if TEST_STD_VER > 03 && !defined(_LIBCPP_INITIALIZER_LIST)
- #   error "<ranges> should include <initializer_list> in C++20 and later"
-#endif
-#if !defined(_LIBCPP_ITERATOR)
- #   error "<ranges> should include <iterator> in C++20 and later"
-#endif
diff --git a/test/libcxx/inclusions/regex.inclusions.compile.pass.cpp b/test/libcxx/inclusions/regex.inclusions.compile.pass.cpp
deleted file mode 100644
index f7cf8b9..0000000
--- a/test/libcxx/inclusions/regex.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// UNSUPPORTED: no-localization
-
-// <regex>
-
-// Test that <regex> includes all the other headers it's supposed to.
-
-#include <regex>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_REGEX)
- #   error "<regex> was expected to define _LIBCPP_REGEX"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<regex> should include <compare> in C++20 and later"
-#endif
-#if TEST_STD_VER > 03 && !defined(_LIBCPP_INITIALIZER_LIST)
- #   error "<regex> should include <initializer_list> in C++11 and later"
-#endif
diff --git a/test/libcxx/inclusions/set.inclusions.compile.pass.cpp b/test/libcxx/inclusions/set.inclusions.compile.pass.cpp
deleted file mode 100644
index 68350f5..0000000
--- a/test/libcxx/inclusions/set.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// <set>
-
-// Test that <set> includes all the other headers it's supposed to.
-
-#include <set>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_SET)
- #   error "<set> was expected to define _LIBCPP_SET"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<set> should include <compare> in C++20 and later"
-#endif
-#if TEST_STD_VER > 03 && !defined(_LIBCPP_INITIALIZER_LIST)
- #   error "<set> should include <initializer_list> in C++11 and later"
-#endif
diff --git a/test/libcxx/inclusions/stack.inclusions.compile.pass.cpp b/test/libcxx/inclusions/stack.inclusions.compile.pass.cpp
deleted file mode 100644
index 323abc2..0000000
--- a/test/libcxx/inclusions/stack.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// <stack>
-
-// Test that <stack> includes all the other headers it's supposed to.
-
-#include <stack>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_STACK)
- #   error "<stack> was expected to define _LIBCPP_STACK"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<stack> should include <compare> in C++20 and later"
-#endif
-#if TEST_STD_VER > 03 && !defined(_LIBCPP_INITIALIZER_LIST)
- #   error "<stack> should include <initializer_list> in C++11 and later"
-#endif
diff --git a/test/libcxx/inclusions/string.inclusions.compile.pass.cpp b/test/libcxx/inclusions/string.inclusions.compile.pass.cpp
deleted file mode 100644
index d77ee0e..0000000
--- a/test/libcxx/inclusions/string.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// <string>
-
-// Test that <string> includes all the other headers it's supposed to.
-
-#include <string>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_STRING)
- #   error "<string> was expected to define _LIBCPP_STRING"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<string> should include <compare> in C++20 and later"
-#endif
-#if TEST_STD_VER > 03 && !defined(_LIBCPP_INITIALIZER_LIST)
- #   error "<string> should include <initializer_list> in C++11 and later"
-#endif
diff --git a/test/libcxx/inclusions/string_view.inclusions.compile.pass.cpp b/test/libcxx/inclusions/string_view.inclusions.compile.pass.cpp
deleted file mode 100644
index a4b999e..0000000
--- a/test/libcxx/inclusions/string_view.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// UNSUPPORTED: c++03, c++11, c++14
-
-// <string_view>
-
-// Test that <string_view> includes all the other headers it's supposed to.
-
-#include <string_view>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_STRING_VIEW)
- #   error "<string_view> was expected to define _LIBCPP_STRING_VIEW"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<string_view> should include <compare> in C++20 and later"
-#endif
diff --git a/test/libcxx/inclusions/system_error.inclusions.compile.pass.cpp b/test/libcxx/inclusions/system_error.inclusions.compile.pass.cpp
deleted file mode 100644
index 5c7f485..0000000
--- a/test/libcxx/inclusions/system_error.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// UNSUPPORTED: c++03
-
-// <system_error>
-
-// Test that <system_error> includes all the other headers it's supposed to.
-
-#include <system_error>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_SYSTEM_ERROR)
- #   error "<system_error> was expected to define _LIBCPP_SYSTEM_ERROR"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<system_error> should include <compare> in C++20 and later"
-#endif
diff --git a/test/libcxx/inclusions/tgmath.h.inclusions.compile.pass.cpp b/test/libcxx/inclusions/tgmath.h.inclusions.compile.pass.cpp
deleted file mode 100644
index 25bc00d..0000000
--- a/test/libcxx/inclusions/tgmath.h.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// <tgmath.h>
-
-// Test that <tgmath.h> includes all the other headers it's supposed to.
-
-#include <tgmath.h>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_TGMATH_H)
- #   error "<tgmath.h> was expected to define _LIBCPP_TGMATH_H"
-#endif
-#if !defined(_LIBCPP_CMATH)
- #   error "<tgmath.h> should include <cmath> in C++03 and later"
-#endif
-#if !defined(_LIBCPP_COMPLEX)
- #   error "<tgmath.h> should include <complex> in C++03 and later"
-#endif
diff --git a/test/libcxx/inclusions/thread.inclusions.compile.pass.cpp b/test/libcxx/inclusions/thread.inclusions.compile.pass.cpp
deleted file mode 100644
index 5e5ad7e..0000000
--- a/test/libcxx/inclusions/thread.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// UNSUPPORTED: c++03
-// UNSUPPORTED: no-threads
-
-// <thread>
-
-// Test that <thread> includes all the other headers it's supposed to.
-
-#include <thread>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_THREAD)
- #   error "<thread> was expected to define _LIBCPP_THREAD"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<thread> should include <compare> in C++20 and later"
-#endif
diff --git a/test/libcxx/inclusions/tuple.inclusions.compile.pass.cpp b/test/libcxx/inclusions/tuple.inclusions.compile.pass.cpp
deleted file mode 100644
index 58f05b1..0000000
--- a/test/libcxx/inclusions/tuple.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// UNSUPPORTED: c++03
-
-// <tuple>
-
-// Test that <tuple> includes all the other headers it's supposed to.
-
-#include <tuple>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_TUPLE)
- #   error "<tuple> was expected to define _LIBCPP_TUPLE"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<tuple> should include <compare> in C++20 and later"
-#endif
diff --git a/test/libcxx/inclusions/typeindex.inclusions.compile.pass.cpp b/test/libcxx/inclusions/typeindex.inclusions.compile.pass.cpp
deleted file mode 100644
index 1cecb54..0000000
--- a/test/libcxx/inclusions/typeindex.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// <typeindex>
-
-// Test that <typeindex> includes all the other headers it's supposed to.
-
-#include <typeindex>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_TYPEINDEX)
- #   error "<typeindex> was expected to define _LIBCPP_TYPEINDEX"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<typeindex> should include <compare> in C++20 and later"
-#endif
diff --git a/test/libcxx/inclusions/unordered_map.inclusions.compile.pass.cpp b/test/libcxx/inclusions/unordered_map.inclusions.compile.pass.cpp
deleted file mode 100644
index 2abddcf..0000000
--- a/test/libcxx/inclusions/unordered_map.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// UNSUPPORTED: c++03
-
-// <unordered_map>
-
-// Test that <unordered_map> includes all the other headers it's supposed to.
-
-#include <unordered_map>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_UNORDERED_MAP)
- #   error "<unordered_map> was expected to define _LIBCPP_UNORDERED_MAP"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<unordered_map> should include <compare> in C++20 and later"
-#endif
-#if TEST_STD_VER > 03 && !defined(_LIBCPP_INITIALIZER_LIST)
- #   error "<unordered_map> should include <initializer_list> in C++11 and later"
-#endif
diff --git a/test/libcxx/inclusions/unordered_set.inclusions.compile.pass.cpp b/test/libcxx/inclusions/unordered_set.inclusions.compile.pass.cpp
deleted file mode 100644
index 58bf215..0000000
--- a/test/libcxx/inclusions/unordered_set.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,31 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// UNSUPPORTED: c++03
-
-// <unordered_set>
-
-// Test that <unordered_set> includes all the other headers it's supposed to.
-
-#include <unordered_set>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_UNORDERED_SET)
- #   error "<unordered_set> was expected to define _LIBCPP_UNORDERED_SET"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<unordered_set> should include <compare> in C++20 and later"
-#endif
-#if TEST_STD_VER > 03 && !defined(_LIBCPP_INITIALIZER_LIST)
- #   error "<unordered_set> should include <initializer_list> in C++11 and later"
-#endif
diff --git a/test/libcxx/inclusions/utility.inclusions.compile.pass.cpp b/test/libcxx/inclusions/utility.inclusions.compile.pass.cpp
deleted file mode 100644
index b0e2163..0000000
--- a/test/libcxx/inclusions/utility.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// <utility>
-
-// Test that <utility> includes all the other headers it's supposed to.
-
-#include <utility>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_UTILITY)
- #   error "<utility> was expected to define _LIBCPP_UTILITY"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<utility> should include <compare> in C++20 and later"
-#endif
-#if TEST_STD_VER > 03 && !defined(_LIBCPP_INITIALIZER_LIST)
- #   error "<utility> should include <initializer_list> in C++11 and later"
-#endif
diff --git a/test/libcxx/inclusions/valarray.inclusions.compile.pass.cpp b/test/libcxx/inclusions/valarray.inclusions.compile.pass.cpp
deleted file mode 100644
index 3d3bf91..0000000
--- a/test/libcxx/inclusions/valarray.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,26 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// <valarray>
-
-// Test that <valarray> includes all the other headers it's supposed to.
-
-#include <valarray>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_VALARRAY)
- #   error "<valarray> was expected to define _LIBCPP_VALARRAY"
-#endif
-#if TEST_STD_VER > 03 && !defined(_LIBCPP_INITIALIZER_LIST)
- #   error "<valarray> should include <initializer_list> in C++11 and later"
-#endif
diff --git a/test/libcxx/inclusions/variant.inclusions.compile.pass.cpp b/test/libcxx/inclusions/variant.inclusions.compile.pass.cpp
deleted file mode 100644
index 96adb19..0000000
--- a/test/libcxx/inclusions/variant.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// UNSUPPORTED: c++03, c++11, c++14
-
-// <variant>
-
-// Test that <variant> includes all the other headers it's supposed to.
-
-#include <variant>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_VARIANT)
- #   error "<variant> was expected to define _LIBCPP_VARIANT"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<variant> should include <compare> in C++20 and later"
-#endif
diff --git a/test/libcxx/inclusions/vector.inclusions.compile.pass.cpp b/test/libcxx/inclusions/vector.inclusions.compile.pass.cpp
deleted file mode 100644
index 2e6b36e..0000000
--- a/test/libcxx/inclusions/vector.inclusions.compile.pass.cpp
+++ /dev/null
@@ -1,29 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by generate_header_inclusion_tests.py
-// and should not be edited manually.
-//
-// clang-format off
-
-// <vector>
-
-// Test that <vector> includes all the other headers it's supposed to.
-
-#include <vector>
-#include "test_macros.h"
-
-#if !defined(_LIBCPP_VECTOR)
- #   error "<vector> was expected to define _LIBCPP_VECTOR"
-#endif
-#if TEST_STD_VER > 17 && !defined(_LIBCPP_COMPARE)
- #   error "<vector> should include <compare> in C++20 and later"
-#endif
-#if TEST_STD_VER > 03 && !defined(_LIBCPP_INITIALIZER_LIST)
- #   error "<vector> should include <initializer_list> in C++11 and later"
-#endif
diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt
index a009245..6c24d2b 100644
--- a/utils/CMakeLists.txt
+++ b/utils/CMakeLists.txt
@@ -1,8 +1,3 @@
-
-add_custom_target(libcxx-generate-public-header-transitive-inclusion-tests
-    COMMAND "${Python3_EXECUTABLE}" "${LIBCXX_SOURCE_DIR}/utils/generate_header_inclusion_tests.py"
-    COMMENT "Generate tests checking for mandated transitive includes in public headers.")
-
 add_custom_target(libcxx-generate-public-header-tests
     COMMAND "${Python3_EXECUTABLE}" "${LIBCXX_SOURCE_DIR}/utils/generate_header_tests.py"
     COMMENT "Generate tests for including public headers.")
@@ -46,8 +41,7 @@
     COMMENT "Generate the mapping file for include-what-you-use")
 
 add_custom_target(libcxx-generate-files
-    DEPENDS libcxx-generate-public-header-transitive-inclusion-tests
-            libcxx-generate-public-header-tests
+    DEPENDS libcxx-generate-public-header-tests
             libcxx-generate-feature-test-macros
             libcxx-generate-extended-grapheme-cluster-tables
             libcxx-generate-extended-grapheme-cluster-tests
diff --git a/utils/generate_header_inclusion_tests.py b/utils/generate_header_inclusion_tests.py
deleted file mode 100755
index c5797c4..0000000
--- a/utils/generate_header_inclusion_tests.py
+++ /dev/null
@@ -1,215 +0,0 @@
-#!/usr/bin/env python
-
-import os
-
-
-def get_libcxx_paths():
-    utils_path = os.path.dirname(os.path.abspath(__file__))
-    script_name = os.path.basename(__file__)
-    assert os.path.exists(utils_path)
-    src_root = os.path.dirname(utils_path)
-    test_path = os.path.join(src_root, "test", "libcxx", "inclusions")
-    assert os.path.exists(test_path)
-    assert os.path.exists(
-        os.path.join(test_path, "algorithm.inclusions.compile.pass.cpp")
-    )
-    return script_name, src_root, test_path
-
-
-script_name, source_root, test_path = get_libcxx_paths()
-
-
-# This table was produced manually, by grepping the TeX source of the Standard's
-# library clauses for the string "#include". Each header's synopsis contains
-# explicit "#include" directives for its mandatory inclusions.
-# For example, [algorithm.syn] contains "#include <initializer_list>".
-#
-mandatory_inclusions = {
-    "algorithm": ["initializer_list"],
-    "array": ["compare", "initializer_list"],
-    "bitset": ["iosfwd", "string"],
-    "chrono": ["compare"],
-    "cinttypes": ["cstdint"],
-    "complex.h": ["complex"],
-    "coroutine": ["compare"],
-    "deque": ["compare", "initializer_list"],
-    "filesystem": ["compare"],
-    "forward_list": ["compare", "initializer_list"],
-    "ios": ["iosfwd"],
-    "iostream": ["ios", "istream", "ostream", "streambuf"],
-    "iterator": ["compare", "concepts"],
-    "list": ["compare", "initializer_list"],
-    "map": ["compare", "initializer_list"],
-    "memory": ["compare"],
-    "optional": ["compare"],
-    "queue": ["compare", "initializer_list"],
-    "random": ["initializer_list"],
-    "ranges": ["compare", "initializer_list", "iterator"],
-    "regex": ["compare", "initializer_list"],
-    "set": ["compare", "initializer_list"],
-    "stack": ["compare", "initializer_list"],
-    "string_view": ["compare"],
-    "string": ["compare", "initializer_list"],
-    # TODO "syncstream": ["ostream"],
-    "system_error": ["compare"],
-    "tgmath.h": ["cmath", "complex"],
-    "thread": ["compare"],
-    "tuple": ["compare"],
-    "typeindex": ["compare"],
-    "unordered_map": ["compare", "initializer_list"],
-    "unordered_set": ["compare", "initializer_list"],
-    "utility": ["compare", "initializer_list"],
-    "valarray": ["initializer_list"],
-    "variant": ["compare"],
-    "vector": ["compare", "initializer_list"],
-}
-
-new_in_version = {
-    "chrono": "11",
-    "compare": "20",
-    "concepts": "20",
-    "coroutine": "20",
-    "cuchar": "11",
-    "expected": "23",
-    "filesystem": "17",
-    "initializer_list": "11",
-    "optional": "17",
-    "ranges": "20",
-    "string_view": "17",
-    "syncstream": "20",
-    "system_error": "11",
-    "thread": "11",
-    "tuple": "11",
-    "uchar.h": "11",
-    "unordered_map": "11",
-    "unordered_set": "11",
-    "variant": "17",
-}
-
-assert all(v == sorted(v) for k, v in mandatory_inclusions.items())
-
-# Map from each header to the Lit annotations that should be used for
-# tests that include that header.
-#
-# For example, when threads are not supported, any test that includes
-# <thread> should be marked as UNSUPPORTED, because including <thread>
-# is a hard error in that case.
-lit_markup = {
-    "barrier": ["UNSUPPORTED: no-threads"],
-    "filesystem": ["UNSUPPORTED: no-filesystem"],
-    "iomanip": ["UNSUPPORTED: no-localization"],
-    "ios": ["UNSUPPORTED: no-localization"],
-    "iostream": ["UNSUPPORTED: no-localization"],
-    "istream": ["UNSUPPORTED: no-localization"],
-    "latch": ["UNSUPPORTED: no-threads"],
-    "locale": ["UNSUPPORTED: no-localization"],
-    "mutex": ["UNSUPPORTED: no-threads"],
-    "ostream": ["UNSUPPORTED: no-localization"],
-    "regex": ["UNSUPPORTED: no-localization"],
-    "semaphore": ["UNSUPPORTED: no-threads"],
-    "shared_mutex": ["UNSUPPORTED: no-threads"],
-    "thread": ["UNSUPPORTED: no-threads"],
-}
-
-
-def get_std_ver_test(includee):
-    v = new_in_version.get(includee, "03")
-    if v == "03":
-        return ""
-    versions = ["03", "11", "14", "17", "20"]
-    return "TEST_STD_VER > {} && ".format(max(i for i in versions if i < v))
-
-
-def get_unsupported_line(includee):
-    v = new_in_version.get(includee, "03")
-    return {
-        "03": [],
-        "11": ["UNSUPPORTED: c++03"],
-        "14": ["UNSUPPORTED: c++03, c++11"],
-        "17": ["UNSUPPORTED: c++03, c++11, c++14"],
-        "20": ["UNSUPPORTED: c++03, c++11, c++14, c++17"],
-        "23": ["UNSUPPORTED: c++03, c++11, c++14, c++17, c++20"],
-        "26": ["UNSUPPORTED: c++03, c++11, c++14, c++17, c++20, c++23"],
-    }[v]
-
-
-def get_libcpp_header_symbol(header_name):
-    return "_LIBCPP_" + header_name.upper().replace(".", "_")
-
-
-def get_includer_symbol_test(includer):
-    symbol = get_libcpp_header_symbol(includer)
-    return """
-#if !defined({symbol})
- #   error "{message}"
-#endif
-    """.strip().format(
-        symbol=symbol,
-        message="<{}> was expected to define {}".format(includer, symbol),
-    )
-
-
-def get_ifdef(includer, includee):
-    version = max(new_in_version.get(h, "03") for h in [includer, includee])
-    symbol = get_libcpp_header_symbol(includee)
-    return """
-#if {includee_test}!defined({symbol})
- #   error "{message}"
-#endif
-    """.strip().format(
-        includee_test=get_std_ver_test(includee),
-        symbol=symbol,
-        message="<{}> should include <{}> in C++{} and later".format(
-            includer, includee, version
-        ),
-    )
-
-
-test_body_template = """
-//===----------------------------------------------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-//
-// WARNING: This test was generated by {script_name}
-// and should not be edited manually.
-//
-// clang-format off
-{markup}
-// <{header}>
-
-// Test that <{header}> includes all the other headers it's supposed to.
-
-#include <{header}>
-#include "test_macros.h"
-
-{test_includers_symbol}
-{test_per_includee}
-""".strip()
-
-
-def produce_tests():
-    for includer, includees in mandatory_inclusions.items():
-        markup_tags = get_unsupported_line(includer) + lit_markup.get(includer, [])
-        test_body = test_body_template.format(
-            script_name=script_name,
-            header=includer,
-            markup=("\n" + "\n".join("// " + m for m in markup_tags) + "\n")
-            if markup_tags
-            else "",
-            test_includers_symbol=get_includer_symbol_test(includer),
-            test_per_includee="\n".join(
-                get_ifdef(includer, includee) for includee in includees
-            ),
-        )
-        test_name = "{header}.inclusions.compile.pass.cpp".format(header=includer)
-        out_path = os.path.join(test_path, test_name)
-        with open(out_path, "w", newline="\n") as f:
-            f.write(test_body + "\n")
-
-
-if __name__ == "__main__":
-    produce_tests()
diff --git a/utils/libcxx/test/header_information.py b/utils/libcxx/test/header_information.py
index db4cf72..026ec6a 100644
--- a/utils/libcxx/test/header_information.py
+++ b/utils/libcxx/test/header_information.py
@@ -121,6 +121,50 @@
     "__verbose_abort",
 ]
 
+# This table was produced manually, by grepping the TeX source of the Standard's
+# library clauses for the string "#include". Each header's synopsis contains
+# explicit "#include" directives for its mandatory inclusions.
+# For example, [algorithm.syn] contains "#include <initializer_list>".
+mandatory_inclusions = {
+    "algorithm": ["initializer_list"],
+    "array": ["compare", "initializer_list"],
+    "bitset": ["iosfwd", "string"],
+    "chrono": ["compare"],
+    "cinttypes": ["cstdint"],
+    "complex.h": ["complex"],
+    "coroutine": ["compare"],
+    "deque": ["compare", "initializer_list"],
+    "filesystem": ["compare"],
+    "forward_list": ["compare", "initializer_list"],
+    "ios": ["iosfwd"],
+    "iostream": ["ios", "istream", "ostream", "streambuf"],
+    "iterator": ["compare", "concepts"],
+    "list": ["compare", "initializer_list"],
+    "map": ["compare", "initializer_list"],
+    "memory": ["compare"],
+    "optional": ["compare"],
+    "queue": ["compare", "initializer_list"],
+    "random": ["initializer_list"],
+    "ranges": ["compare", "initializer_list", "iterator"],
+    "regex": ["compare", "initializer_list"],
+    "set": ["compare", "initializer_list"],
+    "stack": ["compare", "initializer_list"],
+    "string_view": ["compare"],
+    "string": ["compare", "initializer_list"],
+    # TODO "syncstream": ["ostream"],
+    "system_error": ["compare"],
+    "tgmath.h": ["cmath", "complex"],
+    "thread": ["compare"],
+    "tuple": ["compare"],
+    "typeindex": ["compare"],
+    "unordered_map": ["compare", "initializer_list"],
+    "unordered_set": ["compare", "initializer_list"],
+    "utility": ["compare", "initializer_list"],
+    "valarray": ["initializer_list"],
+    "variant": ["compare"],
+    "vector": ["compare", "initializer_list"],
+}
+
 def is_header(file):
     """Returns whether the given file is a header (i.e. not a directory or the modulemap file)."""
     return (