[llvm-branch-commits] [libcxx] [libc++] Implements the new FTM header test generator. (PR #134542)

via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Sun Apr 6 08:06:24 PDT 2025


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {darker}-->


:warning: Python code formatter, darker found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
darker --check --diff -r HEAD~1...HEAD libcxx/test/libcxx/feature_test_macro/generate_header_test.sh.py libcxx/test/libcxx/feature_test_macro/implemented_standard_library_headers.sh.py libcxx/test/libcxx/feature_test_macro/standard_library_headers.sh.py libcxx/test/libcxx/feature_test_macro/ftm_metadata.sh.py libcxx/test/libcxx/feature_test_macro/implemented_ftms.sh.py libcxx/test/libcxx/feature_test_macro/standard_ftms.sh.py libcxx/test/libcxx/feature_test_macro/version_header.sh.py libcxx/test/libcxx/feature_test_macro/version_header_implementation.sh.py libcxx/utils/generate_feature_test_macro_components.py
``````````

</details>

<details>
<summary>
View the diff from darker here.
</summary>

``````````diff
--- utils/generate_feature_test_macro_components.py	2025-04-06 13:51:32.000000 +0000
+++ utils/generate_feature_test_macro_components.py	2025-04-06 15:05:58.615892 +0000
@@ -2075,10 +2075,11 @@
             )
         )
 
     return "\n\n".join(result)
 
+
 #
 # The templates used to create a FTM test file
 #
 
 
@@ -2342,16 +2343,17 @@
                         assert (
                             len(papers) > 0
                         ), f"{feature['name']}[{std}][{value}] has no entries"
                         for paper in papers:
                             if paper["implemented"]:
-                                for header in self.ftm_metadata[feature["name"]].headers:
+                                for header in self.ftm_metadata[
+                                    feature["name"]
+                                ].headers:
                                     result.add(header)
                                 break
 
         return result
-
 
     def is_implemented(self, ftm: Ftm, std: Std) -> bool:
         """Has the FTM `ftm` been implemented in the dialect `std`?"""
 
         # When a paper for C++20 has not been implemented in libc++, then there will be no
@@ -2473,11 +2475,10 @@
                     )
                 )
 
         return result
 
-
     def generate_header_test_ftm(self, std: Std, ftm: Ftm, value: FtmHeaderTest) -> str:
         """Adds a single `ftm` test for C++ `std` based on the status information in `value`.
 
         When std == None this test is generating the TEST_STD_VER < MIN. Where
         MIN is the minimum version that has a FTM defined. (In the real data
@@ -2512,11 +2513,11 @@
             self.generate_header_test_ftm(std, ftm, value)
             for element in data
             for ftm, value in element.items()
         )
 
-    def generate_lit_markup(self, header:str) -> str:
+    def generate_lit_markup(self, header: str) -> str:
         if not header in lit_markup.keys():
             return ""
 
         return "\n".join(f"// {markup}" for markup in lit_markup[header]) + "\n\n"
 

``````````

</details>


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


More information about the llvm-branch-commits mailing list