mirror of
https://github.com/ruvnet/RuView
synced 2026-07-17 16:33:18 +00:00
e574cbe129
CRITICAL: - inject_fault.py: make nvs_corrupt write actual bytes via --flash arg; heap_exhaust and corrupt_frame now pause VM with honest WARNING about GDB stub requirement for real memory writes - firmware-qemu.yml: remove github.run_id from cache key (was causing 100% cache miss rate, rebuilding QEMU every run) - mock_csi.c: change scenario_elapsed_ms() to int64_t (uint32 wrapped at ~49 days) HIGH: - qemu-mesh-test.sh: pass --results flag to validate_mesh_test.py (was passing positional arg to named-only parameter) - test/Makefile: separate corpus directories per fuzz target (corpus_serialize/, corpus_edge/, corpus_nvs/) - qemu-snapshot-test.sh: replace log truncation with tail-based extraction (truncation created sparse file while QEMU held fd) MEDIUM: - mock_csi.c: reset s_mac_filter_initialized in mock_csi_init() - mock_csi.c: fix LFSR polynomial comment (32,31,29,1 not 32,22,2,1) - sdkconfig.coverage: add FreeRTOS timer stack 4096 and WDT tuning - firmware-qemu.yml: replace continue-on-error with FUZZER_CRASH env - qemu-chaos-test.sh: rename heap_pressure to heap_exhaust for consistency - validate_qemu_output.py: fix docstring "14 checks" -> "16 checks" - generate_nvs_matrix.py: deduplicate temp file cleanup paths LOW: - mock_csi.c: remove M_PI float suffix, fix overflow burst flag - qemu-snapshot-test.sh: fix now_ms() for macOS date +%s%N - ADR-061: fix scenario 8 RSSI range to -90...-10 dBm - launch.json: remove contradictory compound debug config Co-Authored-By: claude-flow <ruv@ruv.net>
55 lines
2.3 KiB
Plaintext
55 lines
2.3 KiB
Plaintext
# sdkconfig.coverage -- ESP-IDF sdkconfig overlay for gcov/lcov code coverage
|
|
#
|
|
# This overlay enables GCC code coverage instrumentation (gcov) and the
|
|
# application-level trace (apptrace) channel required to extract .gcda
|
|
# files from the target via JTAG/QEMU GDB.
|
|
#
|
|
# Usage (combine with sdkconfig.defaults as the base):
|
|
#
|
|
# idf.py -D SDKCONFIG_DEFAULTS="sdkconfig.defaults;sdkconfig.coverage" build
|
|
#
|
|
# After running the firmware under QEMU, dump coverage data through GDB:
|
|
#
|
|
# (gdb) mon gcov dump
|
|
#
|
|
# Then process the .gcda files on the host with lcov/genhtml:
|
|
#
|
|
# lcov --capture --directory build --output-file coverage.info \
|
|
# --gcov-tool xtensa-esp-elf-gcov
|
|
# genhtml coverage.info --output-directory coverage_html
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Compiler: disable optimizations so every source line maps 1:1 to object code
|
|
# ---------------------------------------------------------------------------
|
|
CONFIG_COMPILER_OPTIMIZATION_NONE=y
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Application-level trace: enables the gcov data channel over JTAG
|
|
# ---------------------------------------------------------------------------
|
|
CONFIG_APPTRACE_ENABLE=y
|
|
CONFIG_APPTRACE_DEST_JTAG=y
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# CSI mock mode: identical to sdkconfig.qemu so coverage runs use the same
|
|
# deterministic mock data path (no real WiFi hardware needed)
|
|
# ---------------------------------------------------------------------------
|
|
CONFIG_CSI_MOCK_ENABLED=y
|
|
CONFIG_CSI_MOCK_SKIP_WIFI_CONNECT=y
|
|
CONFIG_CSI_MOCK_SCENARIO=255
|
|
CONFIG_CSI_TARGET_IP="10.0.2.2"
|
|
CONFIG_CSI_MOCK_SCENARIO_DURATION_MS=5000
|
|
CONFIG_CSI_MOCK_LOG_FRAMES=y
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# FreeRTOS and watchdog: match sdkconfig.qemu for QEMU timing tolerance
|
|
# ---------------------------------------------------------------------------
|
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=4096
|
|
CONFIG_ESP_TASK_WDT_TIMEOUT_S=30
|
|
CONFIG_ESP_INT_WDT_TIMEOUT_MS=800
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Logging and display
|
|
# ---------------------------------------------------------------------------
|
|
CONFIG_LOG_DEFAULT_LEVEL_INFO=y
|
|
CONFIG_DISPLAY_ENABLE=n
|