spaxel/firmware
jedarden 83250700ef
Some checks are pending
CI Benchmark - Fusion Loop Timing / Fusion Loop Timing Benchmark (push) Waiting to run
test: add firmware host harness failure recovery — jmp_buf + test_record_failure longjmp
bf-3id (child of bf-2i4). Adds the per-test failure-recovery machinery to
firmware/test/test_runner.c:

- static jmp_buf g_test_jmp at file scope — the live setjmp() target the
  header ASSERT_* macros longjmp into; declared at file scope so the main()
  landing in bf-bq9 can setjmp() it directly before each test.
- static int g_failure_count — a run-wide counter test_record_failure()
  bumps on each failure, so main() can return non-zero on any failure.
- test_record_failure(file, line, fmt, ...) — prints file:line plus the
  vfprintf-formatted detail to stderr, bumps the counter, and longjmp()s
  into g_test_jmp so the current test aborts but the runner continues.

main() (the setjmp caller + PASS/FAIL reporting + non-zero exit) is
intentionally absent — it lands in the sibling bead bf-bq9. Until then this
TU compiles to an object (gcc -std=c11 -Wall -Wextra -c) but has no live
setjmp target for the longjmp, and does not link into a runnable harness.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-03 09:51:43 -04:00
..
main fix(provision): re-broadcast SPAXEL READY every 1s during window 2026-06-05 18:23:25 -04:00
test test: add firmware host harness failure recovery — jmp_buf + test_record_failure longjmp 2026-07-03 09:51:43 -04:00
CMakeLists.txt feat(firmware): OTA SHA-256 verification and captive portal URL decoding 2026-03-28 19:56:11 -04:00
dependencies.lock Fix ESP-IDF 5.x firmware compilation for ESP32-S3 build 2026-04-14 15:35:03 -04:00
partitions.csv fix(firmware): redesign partition table for 4MB flash; fix flash size in esptool.js 2026-04-17 10:40:58 -04:00
sdkconfig.defaults fix(firmware): redesign partition table for 4MB flash; fix flash size in esptool.js 2026-04-17 10:40:58 -04:00