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.
This commit is contained in:
@@ -2037,7 +2037,7 @@ class TestGeneratedAbstractCases(unittest.TestCase):
|
|||||||
"""
|
"""
|
||||||
output = """
|
output = """
|
||||||
"""
|
"""
|
||||||
with self.assertRaisesRegex(AssertionError, "All abstract uops"):
|
with self.assertRaisesRegex(ValueError, "All abstract uops"):
|
||||||
self.run_cases_test(input, input2, output)
|
self.run_cases_test(input, input2, output)
|
||||||
|
|
||||||
def test_validate_uop_input_length_mismatch(self):
|
def test_validate_uop_input_length_mismatch(self):
|
||||||
|
|||||||
@@ -398,9 +398,9 @@ def generate_abstract_interpreter(
|
|||||||
out.emit("\n")
|
out.emit("\n")
|
||||||
base_uop_names = set([uop.name for uop in base.uops.values()])
|
base_uop_names = set([uop.name for uop in base.uops.values()])
|
||||||
for abstract_uop_name in abstract.uops:
|
for abstract_uop_name in abstract.uops:
|
||||||
assert (
|
if abstract_uop_name not in base_uop_names:
|
||||||
abstract_uop_name in base_uop_names
|
raise ValueError(f"All abstract uops should override base uops, "
|
||||||
), f"All abstract uops should override base uops, but {abstract_uop_name} is not."
|
"but {abstract_uop_name} is not.")
|
||||||
|
|
||||||
for uop in base.uops.values():
|
for uop in base.uops.values():
|
||||||
override: Uop | None = None
|
override: Uop | None = None
|
||||||
|
|||||||
Reference in New Issue
Block a user