|
|
@ -3719,6 +3719,30 @@ class _TestSharedMemory(BaseTestCase): |
|
|
|
self.assertLess(same_sms.size, 20*sms.size) # Size was ignored. |
|
|
|
same_sms.close() |
|
|
|
|
|
|
|
# Creating Shared Memory Segment with -ve size |
|
|
|
with self.assertRaises(ValueError): |
|
|
|
shared_memory.SharedMemory(create=True, size=-2) |
|
|
|
|
|
|
|
# Attaching Shared Memory Segment without a name |
|
|
|
with self.assertRaises(ValueError): |
|
|
|
shared_memory.SharedMemory(create=False) |
|
|
|
|
|
|
|
# Test if shared memory segment is created properly, |
|
|
|
# when _make_filename returns an existing shared memory segment name |
|
|
|
with unittest.mock.patch( |
|
|
|
'multiprocessing.shared_memory._make_filename') as mock_make_filename: |
|
|
|
|
|
|
|
names = ['test01_fn', 'test02_fn'] |
|
|
|
mock_make_filename.side_effect = names |
|
|
|
shm1 = shared_memory.SharedMemory(create=True, size=1) |
|
|
|
self.addCleanup(shm1.unlink) |
|
|
|
self.assertEqual(shm1.name, names[0]) |
|
|
|
|
|
|
|
mock_make_filename.side_effect = names |
|
|
|
shm2 = shared_memory.SharedMemory(create=True, size=1) |
|
|
|
self.addCleanup(shm2.unlink) |
|
|
|
self.assertEqual(shm2.name, names[1]) |
|
|
|
|
|
|
|
if shared_memory._USE_POSIX: |
|
|
|
# Posix Shared Memory can only be unlinked once. Here we |
|
|
|
# test an implementation detail that is not observed across |
|
|
|