From 58d305cf387816c559602a95ba850856dc9b8129 Mon Sep 17 00:00:00 2001 From: Mikhail Efimov Date: Mon, 21 Jul 2025 15:25:25 +0300 Subject: [PATCH] gh-136438: Make sure `test_generated_cases` pass with all optimization levels (#136594) Fix the `test_generated_cases` to work with `-O` or `-OO` flags. Previously, `test_generated_cases` was catching an `AssertionError` while `Tools/cases_generator/optimizer_generator.py` used an `assert` statement. This approach semantically incorrect, no one should trying to catch an `AssertionError`! Now the `assert` statement has been replaced with an explicit `raise ValueError(...)` and the corresponding `self.assertRaisesRegex(AssertionError, ...)` has been updated to catch a `ValueError` instead. --- Lib/test/test_generated_cases.py | 2 +- Tools/cases_generator/optimizer_generator.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Lib/test/test_generated_cases.py b/Lib/test/test_generated_cases.py index 81d4e39f5be1..ec44a0f9ce3f 100644 --- a/Lib/test/test_generated_cases.py +++ b/Lib/test/test_generated_cases.py @@ -2037,7 +2037,7 @@ class TestGeneratedAbstractCases(unittest.TestCase): """ output = """ """ - with self.assertRaisesRegex(AssertionError, "All abstract uops"): + with self.assertRaisesRegex(ValueError, "All abstract uops"): self.run_cases_test(input, input2, output) def test_validate_uop_input_length_mismatch(self): diff --git a/Tools/cases_generator/optimizer_generator.py b/Tools/cases_generator/optimizer_generator.py index 81ae534bddae..ea9dd836d98e 100644 --- a/Tools/cases_generator/optimizer_generator.py +++ b/Tools/cases_generator/optimizer_generator.py @@ -398,9 +398,9 @@ def generate_abstract_interpreter( out.emit("\n") base_uop_names = set([uop.name for uop in base.uops.values()]) for abstract_uop_name in abstract.uops: - assert ( - abstract_uop_name in base_uop_names - ), f"All abstract uops should override base uops, but {abstract_uop_name} is not." + if abstract_uop_name not in base_uop_names: + raise ValueError(f"All abstract uops should override base uops, " + "but {abstract_uop_name} is not.") for uop in base.uops.values(): override: Uop | None = None -- 2.47.3