test
2.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#!/usr/bin/env python3
import os
import sys
import time
import subprocess
import serial.tools.list_ports
from test_common import (
DeviceUnderTestAeadUARTP,
FileMutex,
eprint,
run_nist_lws_aead_test,
)
def get_serial():
import serial.tools.list_ports
ports = serial.tools.list_ports.comports()
ports = [
c
for c in ports
if c.product == 'Sipeed-Debug'
]
ports.sort(key=lambda d: d.location)
return ports[0].device
class Maixduino(DeviceUnderTestAeadUARTP):
def __init__(self, build_dir):
DeviceUnderTestAeadUARTP.__init__(self)
self.uart_device = get_serial()
devname = os.path.basename(self.uart_device)
self.lock = FileMutex('/var/lock/lwc-compare.%s.lock' % devname)
self.build_dir = build_dir
self.template_path = os.path.dirname(sys.argv[0])
self.firmware_path = os.path.join(
build_dir, 'firmware.bin')
def firmware_size(self):
return os.stat(self.firmware_path).st_size
def reset(self):
if self.ser is not None:
self.ser.close()
self.ser = serial.Serial(
self.uart_device,
baudrate=1500000,
timeout=5)
self.ser.setRTS(True)
time.sleep(0.1)
self.ser.setRTS(False)
time.sleep(0.1)
self.ser.setRTS(True)
time.sleep(1)
def flash(self):
pio_packages_path = "/home/tester/.platformio/packages/"
kflash_path = os.path.join(
pio_packages_path, "tool-kflash-kendryte210/kflash.py")
cmd = ['python3', kflash_path]
cmd += ['-b', '750000']
cmd += ['-p', self.uart_device]
cmd += ['-B', 'maixduino']
cmd += [self.firmware_path]
subprocess.check_call(cmd)
eprint("Firmware flashed.")
self.reset()
self.reset()
def dump_ram(self):
return None
def main(argv):
if len(argv) != 2:
print("Usage: test build_dir")
return 1
build_dir = argv[1]
kat_path = os.path.join(build_dir, 'LWC_AEAD_KAT.txt')
dut = Maixduino(build_dir)
run_nist_lws_aead_test(dut, kat_path, build_dir, 0x0080)
return 0
if __name__ == "__main__":
sys.exit(main(sys.argv))