def test_invalid_put_bytes(self):
     """
     Attempt to put bytes using an invalid input and verify that it fails.
     """
     manager = SharedMemoryManager()
     shared_mem_meta = manager.put_bytes(None)
     self.assertIsNone(shared_mem_meta)
 def test_invalid_put_allocated_mem_maps(self):
     """
     Verify that after an invalid put operation, no shared memory maps were
     added to the list of allocated/tracked shared memory maps.
     i.e. no resources were leaked for invalid operations.
     """
     manager = SharedMemoryManager()
     shared_mem_meta = manager.put_bytes(None)
     self.assertIsNone(shared_mem_meta)
     self.assertEqual(0, len(manager.allocated_mem_maps.keys()))
 def test_put_bytes(self):
     """
     Verify that the given input was successfully put into shared memory.
     The input is bytes.
     """
     manager = SharedMemoryManager()
     content_size = consts.MIN_BYTES_FOR_SHARED_MEM_TRANSFER + 10
     content = self.get_random_bytes(content_size)
     shared_mem_meta = manager.put_bytes(content)
     self.assertIsNotNone(shared_mem_meta)
     self.assertTrue(self.is_valid_uuid(shared_mem_meta.mem_map_name))
     self.assertEqual(content_size, shared_mem_meta.count_bytes)
     free_success = manager.free_mem_map(shared_mem_meta.mem_map_name)
     self.assertTrue(free_success)
 def test_get_bytes(self):
     """
     Verify that the output object was successfully gotten from shared
     memory.
     The output is bytes.
     """
     manager = SharedMemoryManager()
     content_size = consts.MIN_BYTES_FOR_SHARED_MEM_TRANSFER + 10
     content = self.get_random_bytes(content_size)
     shared_mem_meta = manager.put_bytes(content)
     mem_map_name = shared_mem_meta.mem_map_name
     num_bytes_written = shared_mem_meta.count_bytes
     read_content = manager.get_bytes(mem_map_name,
                                      offset=0,
                                      count=num_bytes_written)
     self.assertEqual(content, read_content)
     free_success = manager.free_mem_map(mem_map_name)
     self.assertTrue(free_success)
 def test_do_not_free_resources_on_dispose(self):
     """
     Verify that when the allocated shared memory maps are freed,
     their backing resources are not freed.
     Note: The shared memory map should no longer be tracked by the
     SharedMemoryManager, though.
     """
     manager = SharedMemoryManager()
     content_size = consts.MIN_BYTES_FOR_SHARED_MEM_TRANSFER + 10
     content = self.get_random_bytes(content_size)
     shared_mem_meta = manager.put_bytes(content)
     self.assertIsNotNone(shared_mem_meta)
     mem_map_name = shared_mem_meta.mem_map_name
     is_mem_map_found = mem_map_name in manager.allocated_mem_maps
     self.assertTrue(is_mem_map_found)
     self.assertEqual(1, len(manager.allocated_mem_maps.keys()))
     free_success = manager.free_mem_map(mem_map_name, False)
     self.assertTrue(free_success)
     is_mem_map_found = mem_map_name in manager.allocated_mem_maps
     self.assertFalse(is_mem_map_found)
     self.assertEqual(0, len(manager.allocated_mem_maps.keys()))
 def test_allocated_mem_maps(self):
     """
     Verify that the SharedMemoryManager is tracking the shared memory maps
     it has allocated after put operations.
     Verify that those shared memory maps are freed and no longer tracked
     after attempting to free them.
     """
     manager = SharedMemoryManager()
     content_size = consts.MIN_BYTES_FOR_SHARED_MEM_TRANSFER + 10
     content = self.get_random_bytes(content_size)
     shared_mem_meta = manager.put_bytes(content)
     self.assertIsNotNone(shared_mem_meta)
     mem_map_name = shared_mem_meta.mem_map_name
     is_mem_map_found = mem_map_name in manager.allocated_mem_maps
     self.assertTrue(is_mem_map_found)
     self.assertEqual(1, len(manager.allocated_mem_maps.keys()))
     free_success = manager.free_mem_map(mem_map_name)
     self.assertTrue(free_success)
     is_mem_map_found = mem_map_name in manager.allocated_mem_maps
     self.assertFalse(is_mem_map_found)
     self.assertEqual(0, len(manager.allocated_mem_maps.keys()))