diff --git a/test/dynamo/cpython/3_13/test_int.diff b/test/dynamo/cpython/3_13/test_int.diff index 257cbbd3768..a9e4880015e 100644 --- a/test/dynamo/cpython/3_13/test_int.diff +++ b/test/dynamo/cpython/3_13/test_int.diff @@ -1,5 +1,5 @@ diff --git a/test/dynamo/cpython/3_13/test_int.py b/test/dynamo/cpython/3_13/test_int.py -index 48825f46911..4ab200372ea 100644 +index 48825f46911..ac7aeacbc01 100644 --- a/test/dynamo/cpython/3_13/test_int.py +++ b/test/dynamo/cpython/3_13/test_int.py @@ -1,13 +1,137 @@ @@ -153,15 +153,7 @@ index 48825f46911..4ab200372ea 100644 def test_basic(self): self.assertEqual(int(314), 314) -@@ -566,6 +690,7 @@ class IntTestCases(unittest.TestCase): - self.assertEqual(n, 1) - self.assertIs(type(n), IntSubclass) - -+ @skipIfTorchDynamo("flaky under dynamo") - def test_error_message(self): - def check(s, base=None): - with self.assertRaises(ValueError, -@@ -607,7 +732,7 @@ class IntTestCases(unittest.TestCase): +@@ -607,7 +731,7 @@ class IntTestCases(unittest.TestCase): self.assertEqual(int('1_2_3_4_5_6_7', 32), 1144132807) @@ -170,7 +162,7 @@ index 48825f46911..4ab200372ea 100644 int_class = int # Override this in subclasses to reuse the suite. -@@ -818,7 +943,7 @@ class IntSubclassStrDigitLimitsTests(IntStrDigitLimitsTests): +@@ -818,7 +942,7 @@ class IntSubclassStrDigitLimitsTests(IntStrDigitLimitsTests): int_class = IntSubclass @@ -179,7 +171,7 @@ index 48825f46911..4ab200372ea 100644 # Tests of the functions in _pylong.py. Those get used when the # number of digits in the input values are large enough. -@@ -922,4 +1047,4 @@ class PyLongModuleTests(unittest.TestCase): +@@ -922,4 +1046,4 @@ class PyLongModuleTests(unittest.TestCase): bits <<= 1 if __name__ == "__main__": diff --git a/test/dynamo/cpython/3_13/test_int.py b/test/dynamo/cpython/3_13/test_int.py index 4ab200372ea..072c591e073 100644 --- a/test/dynamo/cpython/3_13/test_int.py +++ b/test/dynamo/cpython/3_13/test_int.py @@ -9,7 +9,7 @@ import torch import torch._dynamo.test_case import unittest from torch._dynamo.test_case import CPythonTestCase -from torch.testing._internal.common_utils import run_tests, skipIfTorchDynamo +from torch.testing._internal.common_utils import run_tests __TestCase = CPythonTestCase @@ -690,7 +690,6 @@ class IntTestCases(__TestCase): self.assertEqual(n, 1) self.assertIs(type(n), IntSubclass) - @skipIfTorchDynamo("flaky under dynamo") def test_error_message(self): def check(s, base=None): with self.assertRaises(ValueError, diff --git a/test/dynamo_expected_failures/CPython313-test_complex-ComplexTest.test_truediv_zero_division b/test/dynamo_expected_failures/CPython313-test_complex-ComplexTest.test_truediv_zero_division new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_dict-DictTest.test_empty_presized_dict_in_freelist b/test/dynamo_expected_failures/CPython313-test_dict-DictTest.test_empty_presized_dict_in_freelist new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_dict-DictTest.test_reverse_iterator_for_empty_dict b/test/dynamo_expected_failures/CPython313-test_dict-DictTest.test_reverse_iterator_for_empty_dict new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_float-GeneralFloatCases.test_float_ceil b/test/dynamo_expected_failures/CPython313-test_float-GeneralFloatCases.test_float_ceil new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_float-GeneralFloatCases.test_float_floor b/test/dynamo_expected_failures/CPython313-test_float-GeneralFloatCases.test_float_floor new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_float-GeneralFloatCases.test_float_mod b/test/dynamo_expected_failures/CPython313-test_float-GeneralFloatCases.test_float_mod new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_float-GeneralFloatCases.test_float_pow b/test/dynamo_expected_failures/CPython313-test_float-GeneralFloatCases.test_float_pow new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_float-InfNanTest.test_inf_from_str b/test/dynamo_expected_failures/CPython313-test_float-InfNanTest.test_inf_from_str new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_float-InfNanTest.test_nan_from_str b/test/dynamo_expected_failures/CPython313-test_float-InfNanTest.test_nan_from_str new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_float-RoundTestCase.test_inf_nan b/test/dynamo_expected_failures/CPython313-test_float-RoundTestCase.test_inf_nan new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_float-RoundTestCase.test_overflow b/test/dynamo_expected_failures/CPython313-test_float-RoundTestCase.test_overflow new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_int-IntStrDigitLimitsTests.test_max_str_digits b/test/dynamo_expected_failures/CPython313-test_int-IntStrDigitLimitsTests.test_max_str_digits new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_int-IntStrDigitLimitsTests.test_max_str_digits_edge_cases b/test/dynamo_expected_failures/CPython313-test_int-IntStrDigitLimitsTests.test_max_str_digits_edge_cases new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_int-IntStrDigitLimitsTests.test_sign_not_counted b/test/dynamo_expected_failures/CPython313-test_int-IntStrDigitLimitsTests.test_sign_not_counted new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_int-IntStrDigitLimitsTests.test_underscores_ignored b/test/dynamo_expected_failures/CPython313-test_int-IntStrDigitLimitsTests.test_underscores_ignored new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_int-IntTestCases.test_basic b/test/dynamo_expected_failures/CPython313-test_int-IntTestCases.test_basic new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_int-IntTestCases.test_int_base_limits b/test/dynamo_expected_failures/CPython313-test_int-IntTestCases.test_int_base_limits new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_int-IntTestCases.test_invalid_signs b/test/dynamo_expected_failures/CPython313-test_int-IntTestCases.test_invalid_signs new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_int-IntTestCases.test_string_float b/test/dynamo_expected_failures/CPython313-test_int-IntTestCases.test_string_float new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_int-PyLongModuleTests.test_pylong_str_to_int b/test/dynamo_expected_failures/CPython313-test_int-PyLongModuleTests.test_pylong_str_to_int new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_iter-TestCase.test_iter_independence b/test/dynamo_expected_failures/CPython313-test_iter-TestCase.test_iter_independence new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_iter-TestCase.test_nested_comprehensions_for b/test/dynamo_expected_failures/CPython313-test_iter-TestCase.test_nested_comprehensions_for new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_iter-TestCase.test_nested_comprehensions_iter b/test/dynamo_expected_failures/CPython313-test_iter-TestCase.test_nested_comprehensions_iter new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_iter-TestCase.test_sinkstate_enumerate b/test/dynamo_expected_failures/CPython313-test_iter-TestCase.test_sinkstate_enumerate new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_iter-TestCase.test_sinkstate_yield b/test/dynamo_expected_failures/CPython313-test_iter-TestCase.test_sinkstate_yield new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_list-ListTest.test_basic b/test/dynamo_expected_failures/CPython313-test_list-ListTest.test_basic new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_list-ListTest.test_empty_slice b/test/dynamo_expected_failures/CPython313-test_list-ListTest.test_empty_slice new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_list-ListTest.test_getslice b/test/dynamo_expected_failures/CPython313-test_list-ListTest.test_getslice new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_list-ListTest.test_slice b/test/dynamo_expected_failures/CPython313-test_list-ListTest.test_slice new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_list-ListTest.test_slice_assign_iterator b/test/dynamo_expected_failures/CPython313-test_list-ListTest.test_slice_assign_iterator new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_list-ListTest.test_step_overflow b/test/dynamo_expected_failures/CPython313-test_list-ListTest.test_step_overflow new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_list-ListTest.test_tier2_invalidates_iterator b/test/dynamo_expected_failures/CPython313-test_list-ListTest.test_tier2_invalidates_iterator new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_math-MathTests.test_ulp b/test/dynamo_expected_failures/CPython313-test_math-MathTests.test_ulp new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_ordered_dict-CPythonBuiltinDictTests.test_reinsert b/test/dynamo_expected_failures/CPython313-test_ordered_dict-CPythonBuiltinDictTests.test_reinsert new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_ordered_dict-CPythonBuiltinDictTests.test_setitem b/test/dynamo_expected_failures/CPython313-test_ordered_dict-CPythonBuiltinDictTests.test_setitem new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_ordered_dict-CPythonOrderedDictSubclassTests.test_iterators_empty b/test/dynamo_expected_failures/CPython313-test_ordered_dict-CPythonOrderedDictSubclassTests.test_iterators_empty new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_ordered_dict-CPythonOrderedDictSubclassTests.test_reinsert b/test/dynamo_expected_failures/CPython313-test_ordered_dict-CPythonOrderedDictSubclassTests.test_reinsert new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_ordered_dict-CPythonOrderedDictSubclassTests.test_setitem b/test/dynamo_expected_failures/CPython313-test_ordered_dict-CPythonOrderedDictSubclassTests.test_setitem new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_ordered_dict-CPythonOrderedDictTests.test_fromkeys b/test/dynamo_expected_failures/CPython313-test_ordered_dict-CPythonOrderedDictTests.test_fromkeys new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_ordered_dict-CPythonOrderedDictTests.test_iterators_empty b/test/dynamo_expected_failures/CPython313-test_ordered_dict-CPythonOrderedDictTests.test_iterators_empty new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_ordered_dict-CPythonOrderedDictTests.test_reinsert b/test/dynamo_expected_failures/CPython313-test_ordered_dict-CPythonOrderedDictTests.test_reinsert new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_ordered_dict-CPythonOrderedDictTests.test_setitem b/test/dynamo_expected_failures/CPython313-test_ordered_dict-CPythonOrderedDictTests.test_setitem new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_set-TestSet.test_remove_keyerror_unpacking b/test/dynamo_expected_failures/CPython313-test_set-TestSet.test_remove_keyerror_unpacking new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_set-TestSet.test_set_literal_evaluation_order b/test/dynamo_expected_failures/CPython313-test_set-TestSet.test_set_literal_evaluation_order new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_set-TestSetSubclass.test_set_literal_evaluation_order b/test/dynamo_expected_failures/CPython313-test_set-TestSetSubclass.test_set_literal_evaluation_order new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_sort-TestDecorateSortUndecorate.test_key_with_exception b/test/dynamo_expected_failures/CPython313-test_sort-TestDecorateSortUndecorate.test_key_with_exception new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_sort-TestOptimizedCompares.test_none_in_tuples b/test/dynamo_expected_failures/CPython313-test_sort-TestOptimizedCompares.test_none_in_tuples new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_tuple-TupleTest.test_getslice b/test/dynamo_expected_failures/CPython313-test_tuple-TupleTest.test_getslice new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_tuple-TupleTest.test_iadd b/test/dynamo_expected_failures/CPython313-test_tuple-TupleTest.test_iadd new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_tuple-TupleTest.test_imul b/test/dynamo_expected_failures/CPython313-test_tuple-TupleTest.test_imul new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/CPython313-test_tuple-TupleTest.test_tupleresizebug b/test/dynamo_expected_failures/CPython313-test_tuple-TupleTest.test_tupleresizebug new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/dynamo_expected_failures/TestVmapAPI.test_fallback_warns_when_warnings_are_enabled b/test/dynamo_expected_failures/TestVmapAPI.test_fallback_warns_when_warnings_are_enabled new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/functorch/test_vmap.py b/test/functorch/test_vmap.py index 1c248149985..1222e890597 100644 --- a/test/functorch/test_vmap.py +++ b/test/functorch/test_vmap.py @@ -734,7 +734,6 @@ class TestVmapAPI(TestCase): # warning, not a warning from the vmap fallback path. self.assertEqual(len(wa), 1) - @skipIfTorchDynamo("Flaky test") @unittest.expectedFailure def test_fallback_warns_when_warnings_are_enabled(self): # NB: One day we will implement a batching rule for torch.atan2. diff --git a/torch/_dynamo/exc.py b/torch/_dynamo/exc.py index 84241eb1683..6287ba85797 100644 --- a/torch/_dynamo/exc.py +++ b/torch/_dynamo/exc.py @@ -374,7 +374,7 @@ def raise_observed_exception( # stack and raise the exception. exception_vt = BuiltinVariable(exc_type).call_function(tx, args or [], kwargs or {}) # type: ignore[arg-type] tx.exn_vt_stack.set_current_exception(exception_vt) - raise get_dynamo_observed_exception(exc_type) + raise observed_exception_map[exc_type] def handle_observed_exception(tx: Any) -> None: diff --git a/torch/_dynamo/polyfills/__init__.py b/torch/_dynamo/polyfills/__init__.py index 4b3d911e202..c0722999fbe 100644 --- a/torch/_dynamo/polyfills/__init__.py +++ b/torch/_dynamo/polyfills/__init__.py @@ -186,15 +186,6 @@ def set_difference_update(set1, *others): set1.update(result) -def assert_multi_line_equal(self_, first, second, msg=None): - return self_.assertTrue(first == second, msg) - - -# The original impl. uses difflib -def assert_sequence_equal(self_, seq1, seq2, msg=None, seq_type=None): - return self_.assertTrue(seq1 == seq2, msg) - - def getattr_and_trace(*args, **kwargs): wrapper_obj = args[0] attr_name = args[1] diff --git a/torch/_dynamo/polyfills/sys.py b/torch/_dynamo/polyfills/sys.py index b7f6b5eff3b..2504d2b6fca 100644 --- a/torch/_dynamo/polyfills/sys.py +++ b/torch/_dynamo/polyfills/sys.py @@ -23,8 +23,3 @@ def intern(string: str, /) -> str: @substitute_in_graph(sys.getrecursionlimit, can_constant_fold_through=True) def getrecursionlimit() -> int: return sys.getrecursionlimit() - - -@substitute_in_graph(sys.get_int_max_str_digits, can_constant_fold_through=True) -def get_int_max_str_digits() -> int: - return sys.get_int_max_str_digits() diff --git a/torch/_dynamo/test_case.py b/torch/_dynamo/test_case.py index dc7a4468405..7cd5dbc90d6 100644 --- a/torch/_dynamo/test_case.py +++ b/torch/_dynamo/test_case.py @@ -22,7 +22,6 @@ from typing import Union import torch import torch.testing -from torch._dynamo import polyfills from torch._logging._internal import trace_log from torch.testing._internal.common_utils import ( # type: ignore[attr-defined] IS_WINDOWS, @@ -137,8 +136,8 @@ class CPythonTestCase(TestCase): assertRegex = unittest.TestCase.assertRegex assertNotRegex = unittest.TestCase.assertNotRegex assertCountEqual = unittest.TestCase.assertCountEqual - assertMultiLineEqual = polyfills.assert_multi_line_equal - assertSequenceEqual = polyfills.assert_sequence_equal + assertMultiLineEqual = unittest.TestCase.assertMultiLineEqual + assertSequenceEqual = unittest.TestCase.assertSequenceEqual assertListEqual = unittest.TestCase.assertListEqual assertTupleEqual = unittest.TestCase.assertTupleEqual assertSetEqual = unittest.TestCase.assertSetEqual diff --git a/torch/_dynamo/variables/builtin.py b/torch/_dynamo/variables/builtin.py index 67fc6dc2524..2b12f25dd72 100644 --- a/torch/_dynamo/variables/builtin.py +++ b/torch/_dynamo/variables/builtin.py @@ -1277,12 +1277,6 @@ class BuiltinVariable(VariableTracker): if isinstance(args[0], ConstantVariable): return args[0].call_method(tx, name, args[1:], kwargs) - if self.fn is float and len(args) >= 1: - if isinstance(args[0], ConstantVariable): - return ConstantVariable.create( - getattr(float, name)(args[0].as_python_constant()) - ) - return super().call_method(tx, name, args, kwargs) def _call_int_float(self, tx: "InstructionTranslator", arg): @@ -2068,6 +2062,7 @@ class BuiltinVariable(VariableTracker): "assertNotWarns", "assertWarnsRegex", "assertDictEqual", + "assertSequenceEqual", "assertWarns", ) ): diff --git a/torch/_dynamo/variables/constant.py b/torch/_dynamo/variables/constant.py index ce375975bed..8f3bd9d3965 100644 --- a/torch/_dynamo/variables/constant.py +++ b/torch/_dynamo/variables/constant.py @@ -173,14 +173,7 @@ its type to `common_constant_types`. raise_observed_exception(type(e), tx) elif isinstance(self.value, (float, int)): if not (args or kwargs): - try: - return ConstantVariable.create(getattr(self.value, name)()) - except (OverflowError, ValueError) as exc: - raise_observed_exception( - type(exc), - tx, - args=list(map(ConstantVariable.create, exc.args)), - ) + return ConstantVariable.create(getattr(self.value, name)()) if ( hasattr(operator, name) and len(args) == 1 @@ -210,14 +203,9 @@ its type to `common_constant_types`. if name == "__len__" and not (args or kwargs): return ConstantVariable.create(len(self.value)) elif name == "__round__" and len(args) == 1 and args[0].is_python_constant(): - try: - return ConstantVariable.create( - round(self.value, args[0].as_python_constant()) - ) - except Exception as e: - raise_observed_exception( - type(e), tx, args=list(map(ConstantVariable.create, e.args)) - ) + return ConstantVariable.create( + round(self.value, args[0].as_python_constant()) + ) elif name == "__contains__" and len(args) == 1 and args[0].is_python_constant(): assert not kwargs search = args[0].as_python_constant()