mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
bpo-40330: Fix utf-8 size check in ShareableList (GH-19606)
The item size must be checked after encoding to bytes, not before. Automerge-Triggered-By: @pitrou
This commit is contained in:
parent
5dd21f5d1c
commit
eba9f6155d
3 changed files with 22 additions and 6 deletions
|
@ -3995,9 +3995,21 @@ class _TestSharedMemory(BaseTestCase):
|
|||
sl[4] = 'some' # Change type at a given position.
|
||||
self.assertEqual(sl[4], 'some')
|
||||
self.assertEqual(sl.format, '8s8sdq8sxxxxxxx?q')
|
||||
with self.assertRaises(ValueError):
|
||||
sl[4] = 'far too many' # Exceeds available storage.
|
||||
with self.assertRaisesRegex(ValueError,
|
||||
"exceeds available storage"):
|
||||
sl[4] = 'far too many'
|
||||
self.assertEqual(sl[4], 'some')
|
||||
sl[0] = 'encodés' # Exactly 8 bytes of UTF-8 data
|
||||
self.assertEqual(sl[0], 'encodés')
|
||||
self.assertEqual(sl[1], b'HoWdY') # no spillage
|
||||
with self.assertRaisesRegex(ValueError,
|
||||
"exceeds available storage"):
|
||||
sl[0] = 'encodées' # Exactly 9 bytes of UTF-8 data
|
||||
self.assertEqual(sl[1], b'HoWdY')
|
||||
with self.assertRaisesRegex(ValueError,
|
||||
"exceeds available storage"):
|
||||
sl[1] = b'123456789'
|
||||
self.assertEqual(sl[1], b'HoWdY')
|
||||
|
||||
# Exercise count().
|
||||
with warnings.catch_warnings():
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue