def test_find_different_struct_types(shmem): create_struct_with_offset_ptr_in_shared_memory(shmem, unique_instance, 10) create_struct_with_double_in_shared_memory(shmem, unique_instance) f1 = shmem.find(struct_with_offset_ptr, unique_instance) f2 = shmem.find(struct_with_double, unique_instance) assert type(f2) == struct_with_double assert type(f1) == struct_with_offset_ptr
def test_find_with_struct_using_pointer(shmem): original_struct = create_struct_with_offset_ptr_in_shared_memory(shmem, unique_instance, 10) original_arr = np.frombuffer(original_struct.ptr.asbuffer(8), dtype=np.float64) original_arr.fill(-1.0) find_struct = shmem.find(struct_with_offset_ptr, unique_instance) find_arr = np.frombuffer(find_struct.ptr.asbuffer(8), dtype=np.float64) assert find_arr[0] == original_arr[0] == -1.0
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