mirror of
https://github.com/python/cpython.git
synced 2025-09-26 10:19:53 +00:00
[3.12] gh-106263: Fix segfault in signaldict_repr
in _decimal
module (#… (#107491)
Co-authored-by: sunmy2019 <59365878+sunmy2019@users.noreply.github.com>
(cherry picked from commit 3979150a0d
)
This commit is contained in:
parent
8f080a290b
commit
99518bbbf4
4 changed files with 59 additions and 3 deletions
|
@ -5682,6 +5682,36 @@ class CWhitebox(unittest.TestCase):
|
|||
self.assertEqual(Decimal(400) ** -1, Decimal('0.0025'))
|
||||
|
||||
|
||||
def test_c_signaldict_segfault(self):
|
||||
# See gh-106263 for details.
|
||||
SignalDict = type(C.Context().flags)
|
||||
sd = SignalDict()
|
||||
err_msg = "invalid signal dict"
|
||||
|
||||
with self.assertRaisesRegex(ValueError, err_msg):
|
||||
len(sd)
|
||||
|
||||
with self.assertRaisesRegex(ValueError, err_msg):
|
||||
iter(sd)
|
||||
|
||||
with self.assertRaisesRegex(ValueError, err_msg):
|
||||
repr(sd)
|
||||
|
||||
with self.assertRaisesRegex(ValueError, err_msg):
|
||||
sd[C.InvalidOperation] = True
|
||||
|
||||
with self.assertRaisesRegex(ValueError, err_msg):
|
||||
sd[C.InvalidOperation]
|
||||
|
||||
with self.assertRaisesRegex(ValueError, err_msg):
|
||||
sd == C.Context().flags
|
||||
|
||||
with self.assertRaisesRegex(ValueError, err_msg):
|
||||
C.Context().flags == sd
|
||||
|
||||
with self.assertRaisesRegex(ValueError, err_msg):
|
||||
sd.copy()
|
||||
|
||||
@requires_docstrings
|
||||
@requires_cdecimal
|
||||
class SignatureTest(unittest.TestCase):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue