def test_zns_write_a_closed_zone(nvme0, nvme0n1, qpair, zone, buf, zone_size, num_of_zones): slba = zone_size*int(random.randrange(num_of_zones)) logging.info("Test zslba: 0x%x" % slba) zone = Zone(qpair, nvme0n1, slba) zone.reset() zone.write(qpair, buf, 0, 16).waitdone() zone.close() with pytest.warns(UserWarning, match="ERROR status: 01/bc"): zone.write(qpair, buf, 0x0, 8).waitdone() test_zns_management_receive(nvme0, nvme0n1, qpair, buf, zone_size, num_of_zones)
def test_zns_write_implicitly_open(nvme0, nvme0n1, qpair, slba, repeat): buf = Buffer(96*1024) z0 = Zone(qpair, nvme0n1, slba) #assert z0.state == 'Full' z0.reset() assert z0.state == 'Empty' assert z0.wpointer == slba z0.write(qpair, buf, 0, 16).waitdone() time.sleep(1) logging.info("Write pointer:0x%x" % z0.wpointer) assert z0.state == 'Implicitly Opened' assert z0.wpointer == slba+16 z0.close() #logging.info(z0) assert z0.state == 'Closed' assert z0.wpointer == slba+0x10 z0.finish() logging.info(z0) assert z0.state == 'Full' assert z0.wpointer == slba+0x10
def test_zns_state_machine_all(nvme0, nvme0n1, qpair, buf, zslba_list): for slba in zslba_list: z0 = Zone(qpair, nvme0n1, slba) logging.info("zslba:0x%x" % slba) z0.reset() assert z0.state == 'Empty' z0.open() assert z0.state == 'Explicitly Opened' z0.close() assert z0.state == 'Closed' z0.open() assert z0.state == 'Explicitly Opened' z0.close() assert z0.state == 'Closed' z0.finish() assert z0.state == 'Full' z0.reset() assert z0.state == 'Empty' z0.open() assert z0.state == 'Explicitly Opened' z0.reset() assert z0.state == 'Empty' z0.open() assert z0.state == 'Explicitly Opened' z0.close() assert z0.state == 'Closed' z0.reset() assert z0.state == 'Empty' z0.finish() assert z0.state == 'Full' z0.reset()
def test_zns_state_machine(nvme0, nvme0n1, qpair, buf, slba): z0 = Zone(qpair, nvme0n1, slba) z0.reset() assert z0.state == 'Empty' z0.open() assert z0.state == 'Explicitly Opened' z0.close() assert z0.state == 'Closed' z0.open() assert z0.state == 'Explicitly Opened' z0.close() assert z0.state == 'Closed' z0.finish() assert z0.state == 'Full' z0.reset() assert z0.state == 'Empty' z0.open() assert z0.state == 'Explicitly Opened' z0.reset() assert z0.state == 'Empty' z0.open() assert z0.state == 'Explicitly Opened' z0.close() assert z0.state == 'Closed' z0.finish() assert z0.state == 'Full' z0.reset() assert z0.state == 'Empty'