def doit(data, pkt_len=2048): from hashlib import sha256 import os for pos in range(0, len(data), pkt_len): v = dev.send_recv( CCProtocolPacker.upload(pos, len(data), data[pos:pos + pkt_len])) assert v == pos chk = dev.send_recv(CCProtocolPacker.sha256()) assert chk == sha256(data[0:pos + pkt_len]).digest(), 'bad hash'
def test_upload_short(dev, data_len): # upload a few really short files from hashlib import sha256 data = b'a' * data_len v = dev.send_recv(CCProtocolPacker.upload(0, len(data), data)) assert v == 0 chk = dev.send_recv(CCProtocolPacker.sha256()) assert chk == sha256(data).digest(), 'bad hash' # clear screen / test a degerate case dev.send_recv(CCProtocolPacker.upload(256, 256, b''))
def test_upload_long(dev, pkt_len, count=5, data=None): # upload a larger "file" from hashlib import sha256 import os data = data or os.urandom(pkt_len * count) for pos in range(0, len(data), pkt_len): v = dev.send_recv(CCProtocolPacker.upload(pos, len(data), data[pos:pos+pkt_len])) assert v == pos chk = dev.send_recv(CCProtocolPacker.sha256()) assert chk == sha256(data[0:pos+pkt_len]).digest(), 'bad hash' # clear screen / test a degerate case dev.send_recv(CCProtocolPacker.upload(256, 256, b''))