Skip to content

test: finish the QEMU (esp32s3) test runner #32

Description

@swoisz

A QEMU runner prototype exists (test/scripts/qemu_test.sh + test/sdkconfig.defaults.qemu, 2026-05-18): Espressif qemu-xtensa runs the ESP32-S3 test firmware headless and validates the majority of the suite without hardware.

Known QEMU limitation: systimer alarm interrupts don't fire, so esp_timer callbacks never execute. FreeRTOS ticks (Timer Group 0) work — sleep, semaphore timeouts, and thread scheduling all pass.

Remaining work:

  • CONFIG_BOREAS_TEST_ESP_TIMER Kconfig (default y; n in sdkconfig.defaults.qemu) to compile out esp_timer-dependent tests, matching the CONFIG_IDF_TARGET_LINUX pattern
  • Gate test_k_timer_group(), delayable k_work tests, and test_thread_deferred_delay behind it
  • Outcome: QEMU suite completes with a Unity summary, no hangs
  • Candidate CI job: real Xtensa code paths without device-in-the-loop (complements the linux-target job)

Note: priority reduced since the linux runner (#17, #18) now covers timer/work/thread logic on host; QEMU's remaining value is Xtensa codegen/port coverage.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions