exclude clang18+debug from freestanding again

This commit is contained in:
Yves Delley
2024-11-12 21:48:59 +01:00
parent 5713243d07
commit ff118784fa
2 changed files with 18 additions and 3 deletions

View File

@ -119,7 +119,12 @@ def main():
rgen = random.Random(args.seed) rgen = random.Random(args.seed)
collector = CombinationCollector(full_matrix) collector = CombinationCollector(
full_matrix,
hard_excludes=lambda e: (
e.formatting == "std::format" and not e.config.std_format_support
),
)
match args.preset: match args.preset:
case None: case None:
pass pass
@ -143,7 +148,11 @@ def main():
case "clang-tidy": case "clang-tidy":
collector.all_combinations(config=configs["Clang-18 (x86-64)"]) collector.all_combinations(config=configs["Clang-18 (x86-64)"])
case "freestanding": case "freestanding":
# TODO For some reason Clang-18 Debug with -ffreestanding does not pass CMakeTestCXXCompiler
collector.all_combinations( collector.all_combinations(
filter=lambda e: not (
e.config.name.startswith("Clang-18") and e.build_type == "Debug"
),
config=[configs[c] for c in ["GCC-14", "Clang-18 (x86-64)"]], config=[configs[c] for c in ["GCC-14", "Clang-18 (x86-64)"]],
contracts="none", contracts="none",
std=23, std=23,

10
.github/job_matrix.py vendored
View File

@ -55,8 +55,14 @@ class MatrixElement:
class CombinationCollector: class CombinationCollector:
"""Incremental builder of MatrixElements, allowing successive selection of entries.""" """Incremental builder of MatrixElements, allowing successive selection of entries."""
def __init__(self, full_matrix: dict[str, list[typing.Any]]): def __init__(
self,
full_matrix: dict[str, list[typing.Any]],
*,
hard_excludes: typing.Callable[[MatrixElement], bool] | None = None,
):
self.full_matrix = full_matrix self.full_matrix = full_matrix
self.hard_excludes = hard_excludes
self.combinations: set[MatrixElement] = set() self.combinations: set[MatrixElement] = set()
self.per_value_counts: dict[tuple[str, typing.Any], int] = { self.per_value_counts: dict[tuple[str, typing.Any], int] = {
(k, v): 0 for k, options in full_matrix.items() for v in options (k, v): 0 for k, options in full_matrix.items() for v in options
@ -72,7 +78,7 @@ class CombinationCollector:
def _add_combination(self, e: MatrixElement): def _add_combination(self, e: MatrixElement):
if e in self.combinations or ( if e in self.combinations or (
e.formatting == "std::format" and not e.config.std_format_support self.hard_excludes is not None and self.hard_excludes(e)
): ):
return return
self.combinations.add(e) self.combinations.add(e)