示例#1
0
def test_zns_write_full_zone(nvme0, nvme0n1, qpair, slba=0):
    buf = Buffer(96*1024)
    z0 = Zone(qpair, nvme0n1, slba)
    #with pytest.warns(UserWarning, match="ERROR status: 01/"):
    z0.write(qpair, buf, 0, 16).waitdone()

    z0.reset()
    z0.finish()
    assert z0.state == 'Full'
示例#2
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()
示例#3
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'
示例#4
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