def check_md5_sums(core: Core, mode: CacheMode): if mode.lazy_write(): assert core.device.md5() != core.get_front_volume().md5(), \ "MD5 check: core device vs exported object without flush" core.cache.flush() assert core.device.md5() == core.get_front_volume().md5(), \ "MD5 check: core device vs exported object after flush" else: assert core.device.md5() == core.get_front_volume().md5(), \ "MD5 check: core device vs exported object"
def send_io(core: Core, data: Data, addr: int = 0, target_ioclass: int = 0): vol = core.get_front_volume() io = vol.new_io( core.cache.get_default_queue(), addr, data.size, IoDir.WRITE, target_ioclass, 0, ) io.set_data(data) completion = OcfCompletion([("err", c_int)]) io.callback = completion.callback io.submit() completion.wait() assert completion.results["err"] == 0, "IO to exported object completion"