<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tinyusb.git/test/hil/hil_ci.sh, branch codex/class-reference-docs</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/tinyusb.git/atom/test/hil/hil_ci.sh?h=codex%2Fclass-reference-docs</id>
<link rel='self' href='http://cgit.235523.xyz/tinyusb.git/atom/test/hil/hil_ci.sh?h=codex%2Fclass-reference-docs'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/'/>
<updated>2026-07-29T19:29:32Z</updated>
<entry>
<title>hil, ci: scope HIL builds and tests to the boards a PR affects (#3797)</title>
<updated>2026-07-29T19:29:32Z</updated>
<author>
<name>Ha Thach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-07-29T19:29:32Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=eef5af86aa26fe3d72e41156a586a6ed3ffce9f8'/>
<id>urn:sha1:eef5af86aa26fe3d72e41156a586a6ed3ffce9f8</id>
<content type='text'>
hil, ci: scope HIL builds and tests to the boards a PR affects

Add test/hil/hil_select.py, a stdlib-only selector that maps a PR diff to the
rig boards, tests and BSP families a change can affect, and wire it into CI so
pull requests build and run only those. A port change picks its families' boards,
a class change picks the examples enabling that class, and device/host changes
prune the other role. Anything unclassified — infra, an unmapped port, a selector
error — falls back to the full matrix, and push/schedule runs are untouched.
Move the shared example lists to hil_examples.py; 54 hardware-free tests cover
the rules.</content>
</entry>
<entry>
<title>hil: split hil_test.py into hil_lock/hil_flash, add pool_check, update rig probes (#3794)</title>
<updated>2026-07-29T10:29:59Z</updated>
<author>
<name>Ha Thach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-07-29T10:29:59Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=e88fc441ddcaaa5abd4f4673ef2bf29499522dc0'/>
<id>urn:sha1:e88fc441ddcaaa5abd4f4673ef2bf29499522dc0</id>
<content type='text'>
test/hil: add board-pool health check, split hil_test into focused modules (#3794)

Add test/hil/hil_pool_check.py: per-board rig health scan — probe presence,
light-example flash (dfu_runtime; device_info + serial check for host-only
boards), uid re-enumeration, safe recovery (probe authorized-toggle, board
reset), verified board_test re-park, USB topology report, and a markdown
summary table. Missing firmware is built on the spot (tools/build.py, idf.py
for espressif, one get_deps retry); row statuses: ok, flash-failed, failed,
locked. Board locks are always respected, never bypassed.

Refactor hil_test.py into hil_lock.py (flock protocol, controller permits,
hold/release/status CLI; replaces board_lock.py) and hil_flash.py (flashers,
find_firmware, run_cmd). Update WCH probe uids and the board roster in
tinyusb.json; add the hil-pool-check skill.</content>
</entry>
<entry>
<title>HIL: replace build.flags_on with named build variants (#3687)</title>
<updated>2026-06-11T01:16:43Z</updated>
<author>
<name>Ha Thach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-11T01:16:43Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=6f35e76667f4015ef429ace5730e20cc0037e042'/>
<id>urn:sha1:6f35e76667f4015ef429ace5730e20cc0037e042</id>
<content type='text'>
* test/hil: replace build.flags_on with named variant schema

Boards declare build variants as `variant: [{name, flags}]` instead of
`build.flags_on`. The variant `name` is the build dir (cmake-build-&lt;name&gt;) and
the HIL report row; `flags` is the raw CFLAGS string (-D...=1) injected via
CFLAGS_CLI. No `variant` =&gt; a single build named after the board.

- build.py: --build-name &lt;name&gt; (dir) + --cflag=&lt;token&gt; (raw CFLAGS, repeatable,
  =form survives the matrix's shell word-splitting); drop -f1/CFLAGS wrapping.
- hil_ci_set_matrix.py: emit one build arg per variant.
- hil_test.py: iterate variants; report row + build dir = variant name.
- hil_ci.sh: copy all cmake-build-&lt;board&gt;* dirs for -b runs.
- get_deps.py: accept (ignore) --build-name/--cflag from matrix args.
- tinyusb.json: migrate all 6 flags_on boards to variant.

* board_test: park CI build with busy spin instead of wfe</content>
</entry>
<entry>
<title>test/hil: report board x test results as a markdown matrix</title>
<updated>2026-06-08T08:17:20Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-08T08:10:47Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=d38ba79ad4a9cd90589a422b6eebd90614af4008'/>
<id>urn:sha1:d38ba79ad4a9cd90589a422b6eebd90614af4008</id>
<content type='text'>
hil_test.py now writes hil_report.md and prints it to stdout: rows are
boards, columns are tests (bare example names), cells are pass/fail/skip.
test_example returns a per-test status, test_board collects a board x test
grid (one row per flags-on variant), and main() renders an aligned table.
A missing binary counts as skipped. hil_ci.sh copies the report back from
the remote after a run; hil_report.md is gitignored.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>test/hil: add stm32u083nucleo to pool and expose ~/bin on remote PATH</title>
<updated>2026-06-08T07:35:07Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-08T07:35:07Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=d2e7bbb0855a3ff3d6393c7d7edd755cfd3362df'/>
<id>urn:sha1:d2e7bbb0855a3ff3d6393c7d7edd755cfd3362df</id>
<content type='text'>
Add stm32u083nucleo to the active boards in tinyusb.json, flashed via the
stlink flasher (onboard ST-Link + STM32CubeProgrammer); ci's openocd build
has no STM32U0 flash driver. STM32_Programmer_CLI lives in ~/bin on ci,
which the remote `bash -s` shell in hil_ci.sh did not have on PATH, so add
$HOME/bin to its PATH export (matching the GHA runner .path). Verified
remote: 13/13 device tests pass on ci.lan.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>hil: replace pyfatfs with mtools, update host setup instructions</title>
<updated>2026-05-27T10:43:22Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-05-25T08:13:30Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=4a131e1562d8e388bb86592278324ab6bc9f215d'/>
<id>urn:sha1:4a131e1562d8e388bb86592278324ab6bc9f215d</id>
<content type='text'>
- Removed `pyfatfs` dependency in favor of `mtools` for reading FAT volumes, simplifying the block device read logic.
- Updated `requirements.txt` and added detailed host setup instructions for system packages.
- Switched to `cython-hidapi` for HID tests, replacing deprecated APIs with updated usage.
- Removed unnecessary warnings suppression and `fs` module.
</content>
</entry>
<entry>
<title>hil added hub + msc + cdc for host capable board</title>
<updated>2026-05-21T12:06:31Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-05-21T11:18:25Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=f4d0d09c8ee06a3531c39032cbe102976aeca349'/>
<id>urn:sha1:f4d0d09c8ee06a3531c39032cbe102976aeca349</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Improve remote execution in `hil_ci.sh`</title>
<updated>2026-04-29T05:32:25Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-04-29T04:56:37Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=f5d6c6ba91e7176ddf5965608c361ccf5d515bde'/>
<id>urn:sha1:f5d6c6ba91e7176ddf5965608c361ccf5d515bde</id>
<content type='text'>
</content>
</entry>
<entry>
<title>address review feedback for AGENTS.md and hil skill</title>
<updated>2026-04-29T04:09:48Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-04-29T04:09:48Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=47f2228cedfb216411c1ac50c4f10a30907cdb51'/>
<id>urn:sha1:47f2228cedfb216411c1ac50c4f10a30907cdb51</id>
<content type='text'>
AGENTS.md:
- fix build dir to cmake-build-&lt;board&gt; (matches hil_test.py expectation)
- reformat flash section to avoid shell-pipe ambiguity, use &lt;board&gt;
- mention board.mk for Make-based builds
- complete OpenOCD jlink interface example
- update stale "Build Option 2" references to "All examples for a board"
- split PVS-Studio command so it is copy-pasteable

.claude/skills/hil/SKILL.md:
- clarify local.json is user-supplied, not tracked in repo
- use python3 consistently
- add all-boards variant for remote execution
- delegate remote execution to test/hil/hil_ci.sh

test/hil/hil_ci.sh:
- portable shebang (/usr/bin/env bash)
- set -euo pipefail
- env overrides for REMOTE, REMOTE_DIR, CONFIG, ROOT_DIR
- --prune-empty-dirs on rsync to skip empty subdirs
- fail-fast sanity check on repo layout

Co-Authored-By: Claude Opus 4.7 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>add script and instruction to run remote hil on local ci server</title>
<updated>2026-04-03T09:42:18Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-04-03T09:42:18Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=3ed9d6517485611b040ecdc4e5d327b6e86f3dee'/>
<id>urn:sha1:3ed9d6517485611b040ecdc4e5d327b6e86f3dee</id>
<content type='text'>
</content>
</entry>
</feed>
