Closed locnnil closed 3 weeks ago
Tested on a Pi5, works well:
$ REMOTE_SNAP_PATH=matter-pi-gpio-commander_44.snap REMOTE_GPIO_CHIP="4" REMOTE_GPIO_LINE="4" LOCAL_INFRA_IF="enp2s0" REMOTE_INFRA_IF="eth0" REMOTE_USER="****" REMOTE_PASSWORD="****" REMOTE_HOST="192.168.1.24" go test -v -failfast -count 1 ./thread_tests/
=== RUN TestThread
snap.go:62: [exec] sudo snap remove --purge chip-tool
exec.go:140: [stderr] snap "chip-tool" is not installed
2024/06/10 17:20:58 [exec] sudo snap install chip-tool --channel=latest/edge
2024/06/10 17:21:03 [stdout] chip-tool (edge) 5ee4ef6f+snap from Canonical IoT Labs installed
snap.go:81: [exec] sudo snap connect chip-tool:avahi-observe
snap.go:81: [exec] sudo snap connect chip-tool:bluez
snap.go:81: [exec] sudo snap connect chip-tool:process-control
snap.go:62: [exec] sudo snap remove --purge openthread-border-router
exec.go:140: [stderr] snap "openthread-border-router" is not installed
snap.go:28: [exec] sudo snap install openthread-border-router --channel=latest/edge
exec.go:140: [stdout] openthread-border-router (edge) thread-reference-20230710+snap from Canonical IoT Labs installed
2024/06/10 17:21:10 [exec] sudo snap connect openthread-border-router:avahi-control
2024/06/10 17:21:11 [exec] sudo snap connect openthread-border-router:firewall-control
2024/06/10 17:21:11 [exec] sudo snap connect openthread-border-router:raw-usb
2024/06/10 17:21:12 [exec] sudo snap connect openthread-border-router:network-control
2024/06/10 17:21:13 [exec] sudo snap connect openthread-border-router:bluetooth-control
2024/06/10 17:21:14 [exec] sudo snap connect openthread-border-router:bluez
2024/06/10 17:21:15 [exec] sudo snap set openthread-border-router infra-if='enp2s0'
snap.go:161: [exec] sudo snap start --enable openthread-border-router
exec.go:140: [stdout] Started.
local.go:105: Retry 1/10: Waiting for expected content in logs: Start Thread Border Agent: OK
snap.go:138: [exec] sudo journalctl --since "2024-06-10 17:21:15" --no-pager | grep "openthread-border-router"|| true
local.go:109: Found expected content in logs: Start Thread Border Agent: OK
local.go:57: [exec] sudo openthread-border-router.ot-ctl dataset init new
local.go:58: [exec] sudo openthread-border-router.ot-ctl dataset commit active
local.go:59: [exec] sudo openthread-border-router.ot-ctl ifconfig up
local.go:60: [exec] sudo openthread-border-router.ot-ctl thread start
config.go:59: Retry 1/10: Waiting for expected content in logs: Thread Network
snap.go:138: [exec] sudo journalctl --since "2024-06-10 17:21:15" --no-pager | grep "openthread-border-router"|| true
config.go:59: Retry 2/10: Waiting for expected content in logs: Thread Network
snap.go:138: [exec] sudo journalctl --since "2024-06-10 17:21:15" --no-pager | grep "openthread-border-router"|| true
config.go:59: Retry 3/10: Waiting for expected content in logs: Thread Network
snap.go:138: [exec] sudo journalctl --since "2024-06-10 17:21:15" --no-pager | grep "openthread-border-router"|| true
config.go:59: Retry 4/10: Waiting for expected content in logs: Thread Network
snap.go:138: [exec] sudo journalctl --since "2024-06-10 17:21:15" --no-pager | grep "openthread-border-router"|| true
config.go:59: Retry 5/10: Waiting for expected content in logs: Thread Network
snap.go:138: [exec] sudo journalctl --since "2024-06-10 17:21:15" --no-pager | grep "openthread-border-router"|| true
config.go:59: Retry 6/10: Waiting for expected content in logs: Thread Network
snap.go:138: [exec] sudo journalctl --since "2024-06-10 17:21:15" --no-pager | grep "openthread-border-router"|| true
config.go:59: Retry 7/10: Waiting for expected content in logs: Thread Network
snap.go:138: [exec] sudo journalctl --since "2024-06-10 17:21:15" --no-pager | grep "openthread-border-router"|| true
config.go:59: Retry 8/10: Waiting for expected content in logs: Thread Network
snap.go:138: [exec] sudo journalctl --since "2024-06-10 17:21:15" --no-pager | grep "openthread-border-router"|| true
config.go:59: Retry 9/10: Waiting for expected content in logs: Thread Network
snap.go:138: [exec] sudo journalctl --since "2024-06-10 17:21:15" --no-pager | grep "openthread-border-router"|| true
config.go:63: Found expected content in logs: Thread Network
local.go:65: [exec] sudo openthread-border-router.ot-ctl dataset active -x | awk '{print $NF}' | grep --invert-match "Done"
remote.go:102: SSH: connected to 192.168.1.24
remote.go:127: [exec-ssh] sudo snap remove --purge openthread-border-router
remote.go:127: [exec-ssh] sudo snap install openthread-border-router --edge
remote.go:127: [exec-ssh] sudo snap set openthread-border-router infra-if='eth0'
remote.go:127: [exec-ssh] sudo snap set openthread-border-router webgui-port=31190
remote.go:127: [exec-ssh] sudo snap connect openthread-border-router:firewall-control
remote.go:127: [exec-ssh] sudo snap connect openthread-border-router:raw-usb
remote.go:127: [exec-ssh] sudo snap connect openthread-border-router:network-control
remote.go:127: [exec-ssh] sudo snap start openthread-border-router
remote.go:130: Retry 1/10: Waiting for expected content in logs: 'Start Thread Border Agent: OK'
remote.go:130: [exec-ssh] sudo journalctl --utc --since "2024-06-10 15:21:27" --no-pager | grep "openthread-border-router"|| true
remote.go:130: Found expected content in logs: 'Start Thread Border Agent: OK'
remote.go:131: OTBR on remote device is ready
remote.go:161: [exec-ssh] sudo snap remove --purge matter-pi-gpio-commander
remote.go:162:
remote.go:161: [exec-ssh] sudo snap install --dangerous matter-pi-gpio-commander_44.snap
remote.go:162: matter-pi-gpio-commander 2.0.0 installed
remote.go:161: [exec-ssh] sudo snap connect matter-pi-gpio-commander:custom-gpio matter-pi-gpio-commander:custom-gpio-dev
remote.go:162:
remote.go:161: [exec-ssh] sudo snap set matter-pi-gpio-commander args="--thread"
remote.go:162:
remote.go:161: [exec-ssh] sudo snap set matter-pi-gpio-commander gpiochip="4"
remote.go:162:
remote.go:161: [exec-ssh] sudo snap set matter-pi-gpio-commander gpio="4"
remote.go:162:
remote.go:161: [exec-ssh] sudo snap connect matter-pi-gpio-commander:avahi-control
remote.go:162:
remote.go:161: [exec-ssh] sudo snap connect matter-pi-gpio-commander:otbr-dbus-wpan0 openthread-border-router:dbus-wpan0
remote.go:162:
remote.go:161: [exec-ssh] sudo snap start matter-pi-gpio-commander
remote.go:162: Started.
remote.go:165: Retry 1/10: Waiting for expected content in logs: 'CHIP:IN: TransportMgr initialized'
remote.go:165: [exec-ssh] sudo journalctl --utc --since "2024-06-10 15:21:50" --no-pager | grep "matter-pi-gpio-commander"|| true
remote.go:165: Found expected content in logs: 'CHIP:IN: TransportMgr initialized'
remote.go:166: Matter PI GPIO Commander on remote device is ready
=== RUN TestThread/Commission
thread_test.go:20: [exec] sudo chip-tool pairing code-thread 110 hex:0e080000000000010000000300001735060004001fffe0020844028cd07f34eba70708fd6b075fa3828463051017c6f1448c20e44b8ff83b06102e089d030f4f70656e5468726561642d633662380102c6b80410f600e926c698f13516e845026b654e5f0c0402a0f7f8 34970112332 2>&1
=== RUN TestThread/Control
thread_test.go:28: [exec] sudo chip-tool onoff toggle 110 1 2>&1
thread_test.go:33: Retry 1/10: Waiting for expected content in logs: 'CHIP:ZCL: Toggle ep1 on/off'
thread_test.go:33: [exec-ssh] sudo journalctl --utc --since "2024-06-10 15:22:13" --no-pager | grep "matter-pi-gpio-commander"|| true
thread_test.go:33: Found expected content in logs: 'CHIP:ZCL: Toggle ep1 on/off'
=== NAME TestThread
thread_test.go:37: [exec] sudo chip-tool onoff off 110 1 2>&1
remote.go:137: [exec-ssh] sudo snap remove --purge matter-pi-gpio-commander
remote.go:108: [exec-ssh] sudo snap remove --purge openthread-border-router
snap.go:62: [exec] sudo snap remove --purge openthread-border-router
exec.go:140: [stdout] openthread-border-router removed
snap.go:62: [exec] sudo snap remove --purge chip-tool
exec.go:140: [stdout] chip-tool removed
--- PASS: TestThread (113.26s)
--- PASS: TestThread/Commission (1.00s)
--- PASS: TestThread/Control (1.46s)
PASS
ok matter-pi-gpio-commander-tests/thread_tests 113.269s
I had to make sure the snap exists on the remote side, maybe something to document?
This is how I downloaded the revision on latest/edge on the Pi before running the tests:
$ snap download matter-pi-gpio-commander --edge
Fetching snap "matter-pi-gpio-commander"
Fetching assertions for "matter-pi-gpio-commander"
Install the snap with:
snap ack matter-pi-gpio-commander_44.assert
snap install matter-pi-gpio-commander_44.snap