summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorhathach <[email protected]>2023-11-28 18:27:40 +0700
committerhathach <[email protected]>2023-11-28 18:28:45 +0700
commit0a4d92a71e8b25daedc8cf4a388dd9abd2539419 (patch)
tree9a0e3f12b78f4f0045ba2ddf73f00769ba4a5fd9 /test
parent1eb6ce784ca9b8acbbe43dba9f1d9c26c2e80eb0 (diff)
update hil for pi4 to use new hil_test.py
Diffstat (limited to 'test')
-rw-r--r--test/hil/hil_pi4.json11
-rw-r--r--test/hil/hil_test.py40
2 files changed, 43 insertions, 8 deletions
diff --git a/test/hil/hil_pi4.json b/test/hil/hil_pi4.json
new file mode 100644
index 000000000..86bae3154
--- /dev/null
+++ b/test/hil/hil_pi4.json
@@ -0,0 +1,11 @@
+{
+ "boards": [
+ {
+ "name": "raspberry_pi_pico",
+ "uid": "E6614864D35DAE36",
+ "debugger": "openocd",
+ "debugger_sn": "E6614103E78E8324",
+ "debugger_args": "-f interface/cmsis-dap.cfg -f target/rp2040.cfg -c \"adapter speed 5000\""
+ }
+ ]
+}
diff --git a/test/hil/hil_test.py b/test/hil/hil_test.py
index 6bcde36c6..06640a470 100644
--- a/test/hil/hil_test.py
+++ b/test/hil/hil_test.py
@@ -38,6 +38,7 @@ def get_serial_dev(id, product, ifnum):
return f'/dev/serial/by-id/usb-TinyUSB_{product}_{id}-if{ifnum:02d}'
+# Currently not used, left as reference
def get_disk_dev(id, lun):
# get usb disk by id
return f'/dev/disk/by-id/usb-TinyUSB_Mass_Storage_{id}-0:{lun}'
@@ -59,10 +60,22 @@ def flash_jlink(sn, dev, firmware):
assert ret.returncode == 0, 'Flash failed\n' + stdout
+def flash_openocd(sn, args, firmware):
+
+ ret = subprocess.run(f'openocd {args} -c "program {firmware} reset exit"',
+ shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+ stdout = ret.stdout.decode()
+ assert ret.returncode == 0, 'Flash failed\n' + stdout
+
+
+# -------------------------------------------------------------
+# Tests
+# -------------------------------------------------------------
def test_board_test(id):
# Dummy test
pass
+
def test_cdc_dual_ports(id):
port1 = get_serial_dev(id, "TinyUSB_Device", 0)
port2 = get_serial_dev(id, "TinyUSB_Device", 2)
@@ -99,12 +112,22 @@ def test_cdc_dual_ports(id):
def test_cdc_msc(id):
port = get_serial_dev(id, "TinyUSB_Device", 0)
- file = f'/media/blkUSB_{id[-8:]}.02/README.TXT'
+ file_list = [f'/media/blkUSB_{id[-8:]}.02/README.TXT', f'/media/{os.getenv("USER")}/TinyUSB MSC/README.TXT']
# Wait device enum
timeout = 10
while timeout:
- if os.path.exists(port) and os.path.isfile(file):
+ f_found = False
+ if os.path.exists(port):
+ for file in file_list:
+ if os.path.isfile(file):
+ f_found = True
+ f = open(file, 'rb')
+ data = f.read()
+ break
+
+ if f_found:
break
+
time.sleep(1)
timeout = timeout - 1
@@ -112,7 +135,6 @@ def test_cdc_msc(id):
# Echo test
ser1 = serial.Serial(port)
-
ser1.timeout = 1
str = b"test_str"
@@ -121,9 +143,6 @@ def test_cdc_msc(id):
assert ser1.read(100) == str, 'CDC wrong data'
# Block test
- f = open(file, 'rb')
- data = f.read()
-
readme = \
b"This is tinyusb's MassStorage Class demo.\r\n\r\n\
If you find any bugs or get any questions, feel free to file an\r\n\
@@ -131,6 +150,7 @@ issue at github.com/hathach/tinyusb"
assert data == readme, 'MSC wrong data'
+
def test_dfu(id):
# Wait device enum
timeout = 10
@@ -211,11 +231,13 @@ if __name__ == '__main__':
# all possible tests, board_test is last to disable board's usb
all_tests = [
- 'cdc_dual_ports', 'cdc_msc', 'dfu', 'dfu_runtime', 'hid_boot_interface', 'board_test'
+ 'cdc_dual_ports', 'cdc_msc', 'dfu', 'dfu_runtime', 'hid_boot_interface',
+ 'board_test'
]
for board in config['boards']:
print(f'Testing board:{board["name"]}')
+ debugger = board['debugger'].lower()
# default to all tests
if 'tests' in board:
@@ -240,8 +262,10 @@ if __name__ == '__main__':
print(f'Cannot find firmware file for {test}')
sys.exit(-1)
- if board['debugger'].lower() == 'jlink':
+ if debugger == 'jlink':
flash_jlink(board['debugger_sn'], board['cpu'], elf)
+ elif debugger == 'openocd':
+ flash_openocd(board['debugger_sn'], board['debugger_args'], elf)
else:
# ToDo
pass