summaryrefslogtreecommitdiff
path: root/test/hil/sysview_ci.py
AgeCommit message (Collapse)Author
16 hourssysview: fix cycle-3 review findingshathach
- kill_traffic(): stop the recording at --duration-ms exactly, then reap the workload, instead of waiting on it (up to 60s) before -stop - sysview_report.py: key open_calls by (func id, context) so interleaved callers of the same function don't cross-pair CALL/RET - build.yml: intersect the sysview dep-fetch board list with the PR's own HIL selection (tinyusb.json vs hfp.json), and skip entirely when HIL is not running for this PR - nrf54h20dk: shrink SYSVIEW_BUFFER_SIZE_DEFAULT to 4096 -- .data/.bss sit in the 32 KiB primary RAM, so the family's 65536 default fails to link - tusb_sysview.c: copy pcTaskName into a local buffer at snapshot time so a task deleted mid-lap can't leave SendTaskInfo() dereferencing a freed TCB - sysview_ci.py: drop a comparison against a baseline whose capture config (example/workload/duration_s) changed, and fail cdc_burst when the link stays enumerated but echoes nothing back - SKILL.md: document the WCH post-mortem dump path (OpenOCD, no J-Link)
17 hourssysview: fix cycle-2 review findingshathach
- sysview_ci.py: wait() after kill() on the OpenOCD/nc grace-period timeout, so a still-exiting process can't hold the probe when the recovery flash starts - SKILL.md: point the OpenOCD and post-mortem recipes at examples/device/cdc_msc_freertos, where build-sv actually lands - stm32f401blackpill: override SYSVIEW_BUFFER_SIZE_DEFAULT to 4096; the 64 KiB part overflows RAM by 12952 bytes at the family's 65536 default under SYSVIEW=4 - get_deps.py: align the SystemView entry's continuation lines
18 hourshil: sysview CI - rig capture subcommands and report generatorhathach
sysview_ci.py builds, flashes and captures the sysview-flagged boards (stm32f407disco and raspberry_pi_pico in tinyusb.json) on the rig, taking each board's flock via hil_lock and restoring park firmware afterwards. Hard-won correctness baked in from the dogfood runs: firmware paths carry the flasher's extension via FLASHER_SUFFIX (JLinkExe and OpenOCD infer the image format from it, and the RTT control block still comes from the ELF, which is not always the flashed image); WCH boards are detected by their wch-riscv target config (is_wch_board(), the plain "openocd" flasher name since #3804 folded openocd_wch/openocd_adi away); build and flash failures are excerpted from BOTH ends (cmake prints the diagnosis first and the call stack last, ninja the reverse) and flash failures include the flasher's own output so rc=124 can distinguish a wedged probe from a dead target; a bad ELF no longer aborts the whole multi-board run; the enumeration wait sits after the capture session's own reset; each capture picks a free RTT server port. session_resets()/sysview.attach_only skips the in-session reset for boards that never come back from it (metro_m4_express: both campaign captures died with 'No control block found' while attach-without-reset streamed immediately) - the flasher's post-flash reset already supplied the fresh boot. The suites join the pre-commit hil-test hook and master's test/hil/test/ carve-out pin.