Skip to content

Commit bfd0fbd

Browse files
authored
bpo-38169: Increase code coverage for SharedMemory and ShareableList (GH-16139)
1 parent 10e4664 commit bfd0fbd

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

Lib/test/_test_multiprocessing.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3768,6 +3768,18 @@ def test_shared_memory_basics(self):
37683768
self.assertGreaterEqual(sms.size, 512)
37693769
self.assertGreaterEqual(len(sms.buf), sms.size)
37703770

3771+
# Verify __repr__
3772+
self.assertIn(sms.name, str(sms))
3773+
self.assertIn(str(sms.size), str(sms))
3774+
3775+
# Test pickling
3776+
sms.buf[0:6] = b'pickle'
3777+
pickled_sms = pickle.dumps(sms)
3778+
sms2 = pickle.loads(pickled_sms)
3779+
self.assertEqual(sms.name, sms2.name)
3780+
self.assertEqual(sms.size, sms2.size)
3781+
self.assertEqual(bytes(sms.buf[0:6]), bytes(sms2.buf[0:6]), b'pickle')
3782+
37713783
# Modify contents of shared memory segment through memoryview.
37723784
sms.buf[0] = 42
37733785
self.assertEqual(sms.buf[0], 42)
@@ -3975,6 +3987,23 @@ def test_shared_memory_ShareableList_basics(self):
39753987
)
39763988
self.addCleanup(sl.shm.unlink)
39773989

3990+
# Verify __repr__
3991+
self.assertIn(sl.shm.name, str(sl))
3992+
self.assertIn(str(list(sl)), str(sl))
3993+
3994+
# Index Out of Range (get)
3995+
with self.assertRaises(IndexError):
3996+
sl[7]
3997+
3998+
# Index Out of Range (set)
3999+
with self.assertRaises(IndexError):
4000+
sl[7] = 2
4001+
4002+
# Assign value without format change (str -> str)
4003+
current_format = sl._get_packing_format(0)
4004+
sl[0] = 'howdy'
4005+
self.assertEqual(current_format, sl._get_packing_format(0))
4006+
39784007
# Verify attributes are readable.
39794008
self.assertEqual(sl.format, '8s8sdqxxxxxx?xxxxxxxx?q')
39804009

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Increase code coverage for SharedMemory and ShareableList

0 commit comments

Comments
 (0)