<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tinyusb.git/test, branch claude/adoring-pasteur-kbaFa</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.</subtitle>
<id>http://cgit.235523.xyz/tinyusb.git/atom/test?h=claude%2Fadoring-pasteur-kbaFa</id>
<link rel='self' href='http://cgit.235523.xyz/tinyusb.git/atom/test?h=claude%2Fadoring-pasteur-kbaFa'/>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/'/>
<updated>2026-06-11T01:16:43Z</updated>
<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>Merge pull request #3690 from hathach/claude/board-test-idle-park</title>
<updated>2026-06-10T11:04:54Z</updated>
<author>
<name>Ha Thach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-10T11:04:54Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=575a8fbcd0e5880791ea5f834649149a8f787d95'/>
<id>urn:sha1:575a8fbcd0e5880791ea5f834649149a8f787d95</id>
<content type='text'>
hil: park boards with idle board_test instead of erasing flash</content>
</entry>
<entry>
<title>test/hil: erase MCU after tests; show throughput speeds in report</title>
<updated>2026-06-09T04:44:06Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-09T04:44:06Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=8219efdc6c5a9dd6a8768453050c1e7c62f04363'/>
<id>urn:sha1:8219efdc6c5a9dd6a8768453050c1e7c62f04363</id>
<content type='text'>
Teardown: instead of flashing device/board_test (a USB-less blink loop that
keeps the MCU busy-looping), erase the first flash sector (vector table) so the
board faults to idle after its tests — no USB, lower power, faster. Per-flasher
erase_&lt;name&gt;: openocd/openocd_adi `flash erase_sector 0 0 0`; stlink `--erase
0`; jlink erases the sector at the flash origin read from the ELF (pure-Python,
new elf_flash_origin); esptool `erase_region 0x0 0x4000`; lm4flash writes a 4 KB
all-0xFF blank image (lm4flash erases before programming, so the first sector
ends up blank). device/board_test flash remains a fallback for flashers with no
erase_ function. The teardown is no longer a report column (it's cleanup).

Report: cdc_msc_throughput and msc_file_explorer[_freertos] now return a compact
read/write speed shown in their report cell instead of the pass tick (e.g.
"C 652k/422k M 1.1M/783k", "rd 1.2MB/s"). test_example returns an optional
metric; render_matrix shows it verbatim. Firmware lookup factored into
find_firmware (reused by the erase teardown).

Verified on the rig (stm32f723disco, jlink): erase disables the board in 0.8 s
and it disappears from the bus; the throughput cell shows live speeds.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>test/hil: use ⚪ for skipped in HIL report</title>
<updated>2026-06-08T10:49:07Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-08T10:42:11Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=1b3627d2b6a22e0f8f1a5dcd161121a63b238092'/>
<id>urn:sha1:1b3627d2b6a22e0f8f1a5dcd161121a63b238092</id>
<content type='text'>
Neutral white circle for skipped, giving a ✅/❌/⚪ pass/fail/skip set.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>test/hil: use ✅/❌ emoji for HIL report pass/fail</title>
<updated>2026-06-08T10:17:26Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-08T10:17:26Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=3875e9cde897392255e2bd1a70de3231ec69d482'/>
<id>urn:sha1:3875e9cde897392255e2bd1a70de3231ec69d482</id>
<content type='text'>
Colored emoji render green/red in the GitHub PR comment, far more visible than
the monochrome ✔/✖ dingbats. Skip stays ➖.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>test/hil: clear HIL report up front on a fresh run</title>
<updated>2026-06-08T09:18:04Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-08T09:18:04Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=7b60e3951e800bcdc5e1e015ca078d4f3cd6080e'/>
<id>urn:sha1:7b60e3951e800bcdc5e1e015ca078d4f3cd6080e</id>
<content type='text'>
The report sidecar lives in a persistent dir (it survives the CI workspace
clean so accumulation works across run attempts). A full run is "fresh" and
must not merge prior state, but previously fresh only avoided *loading* the
json at merge time — if a fresh run crashed before writing the report, the
stale json/md from an earlier run lingered and a retry (fresh=False) could
merge it, or the always() upload could post it. Delete hil_report.json/.md at
the start of a fresh run so prior results can never leak.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>test/hil: accumulate HIL report across re-runs; post as sticky PR comment</title>
<updated>2026-06-08T09:11:13Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-08T09:11:13Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=fba8d257846ab9149f9db5443827d741492f837d'/>
<id>urn:sha1:fba8d257846ab9149f9db5443827d741492f837d</id>
<content type='text'>
hil_test.py persists results in a hil_report.json sidecar and regenerates
hil_report.md from it. A full run starts fresh; a re-run (--skip-board / -bt,
i.e. the .skip file) merges into the existing report so already-passed
boards/tests are preserved while only re-run cells update. The report dir is
configurable via HIL_REPORT_DIR.

build.yml: each HIL rig writes the report to a workspace-sibling dir that
survives the per-attempt workspace clean, and uploads it as an artifact. A new
hil-report job merges the rigs' reports into one sticky PR comment (marocchino)
with one table per rig.

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>presets,hil: keep Ninja Multi-Config; make HIL find its output</title>
<updated>2026-06-08T08:42:00Z</updated>
<author>
<name>hathach</name>
<email>thach@tinyusb.org</email>
</author>
<published>2026-06-08T08:42:00Z</published>
<link rel='alternate' type='text/html' href='http://cgit.235523.xyz/tinyusb.git/commit/?id=46aded44af947e1be32426edcd6ff2c0596f1765'/>
<id>urn:sha1:46aded44af947e1be32426edcd6ff2c0596f1765</id>
<content type='text'>
Per review (HiFiPhile): Ninja Multi-Config is needed for IAR, otherwise the
optimization level can't be lowered to none for debug. Revert gen_presets.py
back to Ninja Multi-Config (keeping only the cmake-build-&lt;board&gt; binaryDir
change), and instead teach hil_test.py to locate &lt;ex&gt;.elf whether it sits
directly in the example dir (single-config) or under a per-config subdir like
RelWithDebInfo/ (multi-config).

Verified: stm32u083nucleo passes 13/13 remote HIL with a multi-config preset
build (rsync preserves the RelWithDebInfo/ subdir; the resolver finds it).

Co-Authored-By: Claude Opus 4.8 (1M context) &lt;noreply@anthropic.com&gt;
</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>
</feed>
