def test_find_with_struct_using_double(shmem): shmem = managed_shared_memory(open_or_create, 'MySharedMemory', 1024) original_struct = create_struct_with_double_in_shared_memory(shmem, unique_instance) original_struct.value = 1.5 find_struct = shmem.find(struct_with_double, unique_instance) assert find_struct.value == 1.5 original_struct.value = 2.5 assert find_struct.value == 2.5
def test_exports_buffer_interface(): import numpy as np shmem = managed_shared_memory(open_or_create, 'MySharedMemory', 1024) s = create_struct_with_offset_ptr_in_shared_memory(shmem, 'object name', 8) buf = s.ptr.asbuffer(8) arr = np.frombuffer(buf, dtype=np.float64) arr[0] = 42.0 assert np.frombuffer(buf, dtype=np.float64)[0] == 42.0
def test_constructor_open_only(): with pytest.raises(RuntimeError): managed_shared_memory(open_only, 'MySharedMemory') managed_shared_memory(create_only, 'MySharedMemory', 1024) managed_shared_memory(open_only, 'MySharedMemory')
def test_constructor_open_or_create(): managed_shared_memory(open_or_create, 'MySharedMemory', 1024) managed_shared_memory(open_or_create, 'MySharedMemory', 1024)
def shmem(): from pyboost_ipc import managed_shared_memory, open_or_create return managed_shared_memory(open_or_create, 'MySharedMemory', 8192)