Skip to content

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

@swoisz

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions