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

Louis Dionne via libcxx-commits libcxx-commits at lists.llvm.org
Wed May 14 08:34:05 PDT 2025


================
@@ -2296,24 +2374,205 @@ def version_header(self) -> str:
             )
         )
 
+    def header_ftm_data(self, header: str) -> Dict[Std, List[Dict[Ftm, FtmHeaderTest]]]:
+        """Generates the FTM information for a `header`."""
+
+        result = dict()
+        for std in self.std_dialects:
+            result[get_std_number(std)] = list()
+
+        for ftm, values in self.standard_ftms.items():
+            if not header in self.ftm_metadata[ftm].headers:
+                continue
+
+            last_value = None
+            last_entry = None
+
+            for std in self.std_dialects:
+                if not std in values.keys():
+                    result[get_std_number(std)].append({ftm: None})
+                    continue
+
+                result[get_std_number(std)].append(
+                        {
+                            ftm: FtmHeaderTest(
+                                values[std],
+                                self.is_implemented(ftm, std),
+                                self.ftm_metadata[ftm].test_suite_guard,
+                            )
+                        }
+                )
+
+        return result
+
+
+    def generate_header_test_ftm(self, std: Std, ftm: Ftm, value: FtmHeaderTest) -> str:
----------------
ldionne wrote:

```suggestion
    def generate_ftm_test(self, std: Std, ftm: Ftm, value: FtmHeaderTest) -> str:
```

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


More information about the libcxx-commits mailing list