mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-02-17 01:52:02 +00:00
fix test_msg, rename to test_wire
This commit is contained in:
parent
154184e4e2
commit
9a30a13aff
@ -5,7 +5,7 @@ import unittest
|
|||||||
|
|
||||||
from trezor import loop
|
from trezor import loop
|
||||||
from trezor import msg
|
from trezor import msg
|
||||||
from trezor.msg import read_wire_msg, write_wire_msg
|
from trezor.wire import read_wire_msg, write_wire_msg
|
||||||
|
|
||||||
|
|
||||||
def chunks(l, n):
|
def chunks(l, n):
|
||||||
@ -13,33 +13,39 @@ def chunks(l, n):
|
|||||||
yield l[i:i + n]
|
yield l[i:i + n]
|
||||||
|
|
||||||
|
|
||||||
class TestMsg(unittest.TestCase):
|
class TestWire(unittest.TestCase):
|
||||||
|
|
||||||
def test_read_wire_msg(self):
|
def test_read_wire_msg(self):
|
||||||
|
|
||||||
|
# Reading empty message returns correct type and empty bytes
|
||||||
|
|
||||||
reader = read_wire_msg()
|
reader = read_wire_msg()
|
||||||
reader.send(None)
|
reader.send(None)
|
||||||
|
|
||||||
empty_message = b'\x3f##\xab\xcd\x00\x00\x00\x00' + b'\x00' * 55
|
empty_message = b'\x3f##\xab\xcd\x00\x00\x00\x00' + b'\x00' * 55
|
||||||
try:
|
try:
|
||||||
reader.send((loop.HID_READ, empty_message))
|
reader.send((empty_message,))
|
||||||
except StopIteration as e:
|
except StopIteration as e:
|
||||||
restype, resmsg = e.value
|
restype, resmsg = e.value
|
||||||
self.assertEqual(restype, int('0xabcd', 16))
|
self.assertEqual(restype, int('0xabcd', 16))
|
||||||
self.assertEqual(resmsg, b'')
|
self.assertEqual(resmsg, b'')
|
||||||
|
|
||||||
|
# Reading message from one report
|
||||||
|
|
||||||
reader = read_wire_msg()
|
reader = read_wire_msg()
|
||||||
reader.send(None)
|
reader.send(None)
|
||||||
|
|
||||||
content = bytes([x for x in range(0, 55)])
|
content = bytes([x for x in range(0, 55)])
|
||||||
message = b'\x3f##\xab\xcd\x00\x00\x00\x37' + content
|
message = b'\x3f##\xab\xcd\x00\x00\x00\x37' + content
|
||||||
try:
|
try:
|
||||||
reader.send((loop.HID_READ, message))
|
reader.send((message,))
|
||||||
except StopIteration as e:
|
except StopIteration as e:
|
||||||
restype, resmsg = e.value
|
restype, resmsg = e.value
|
||||||
self.assertEqual(restype, int('0xabcd', 16))
|
self.assertEqual(restype, int('0xabcd', 16))
|
||||||
self.assertEqual(resmsg, content)
|
self.assertEqual(resmsg, content)
|
||||||
|
|
||||||
|
# Reading message spanning multiple reports
|
||||||
|
|
||||||
reader = read_wire_msg()
|
reader = read_wire_msg()
|
||||||
reader.send(None)
|
reader.send(None)
|
||||||
|
|
||||||
@ -48,7 +54,7 @@ class TestMsg(unittest.TestCase):
|
|||||||
reports = [b'\x3f' + ch + '\x00' * (63 - len(ch)) for ch in chunks(message, 63)]
|
reports = [b'\x3f' + ch + '\x00' * (63 - len(ch)) for ch in chunks(message, 63)]
|
||||||
try:
|
try:
|
||||||
for report in reports:
|
for report in reports:
|
||||||
reader.send((loop.HID_READ, report))
|
reader.send((report,))
|
||||||
except StopIteration as e:
|
except StopIteration as e:
|
||||||
restype, resmsg = e.value
|
restype, resmsg = e.value
|
||||||
self.assertEqual(restype, int('0xabcd', 16))
|
self.assertEqual(restype, int('0xabcd', 16))
|
||||||
@ -56,8 +62,15 @@ class TestMsg(unittest.TestCase):
|
|||||||
|
|
||||||
def test_write_wire_msg(self):
|
def test_write_wire_msg(self):
|
||||||
|
|
||||||
|
# Writing message spanning multiple reports calls msg.send() with correct data
|
||||||
|
|
||||||
sent_reps = []
|
sent_reps = []
|
||||||
msg.send = lambda rep: sent_reps.append(bytes(rep))
|
|
||||||
|
def dummy_send(iface, rep):
|
||||||
|
sent_reps.append(bytes(rep))
|
||||||
|
return len(rep)
|
||||||
|
|
||||||
|
msg.send = dummy_send
|
||||||
|
|
||||||
content = bytes([x for x in range(0, 256)])
|
content = bytes([x for x in range(0, 256)])
|
||||||
message = b'##\xab\xcd\x00\x00\x01\00' + content
|
message = b'##\xab\xcd\x00\x00\x01\00' + content
|
Loading…
Reference in New Issue
Block a user