Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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()
Ejemplo n.º 4
0
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'