velxio/backend/tests
David Montero 7d63209d1e fix(espidf): ccache hash_dir=false so build variants share objects; log ninja/cmake timeouts
ESP-IDF compiles with -ggdb, and for debug builds ccache folds the cwd into
every cache key by default — CCACHE_BASEDIR does not exempt it (verified with
CCACHE_DEBUG on 4.11: 'Hashing CWD /var/lib/velxio-build/esp32s3/v_<hash>/
project/build'). Each build variant lives in its own dir, so every variant had
a private key space: eight esp32 variants of the SAME board each recompiled
all ~2100 IDF objects from scratch, the cache filled with dead per-directory
entries, and a cold Cardputer/S3 build (2263 steps) overran the 600s ninja
timeout on a busy box. CCACHE_NOHASHDIR=1 makes variants of the same
board/sdkconfig share objects; a cold variant becomes mostly cache hits. Only
DW_AT_comp_dir in .debug_info of a reused object can differ, which never
reaches the flashed .bin.

The timeout paths were silent server-side; they now log the build dir and how
many ninja steps completed, and the user-facing message says the partial
build is kept and a retry resumes.
2026-08-17 19:15:28 +02:00
..
__init__.py
…
test_compile_request_dedup.py
…
test_esp32_sd_slave.py
…
test_espidf_options.py fix(espidf): ccache hash_dir=false so build variants share objects; log ninja/cmake timeouts 2026-08-17 19:15:28 +02:00
test_ino_prototypes.py fix(espidf): generate .ino forward declarations + link the task-WDT API 2026-08-15 08:29:39 +02:00
test_pi_capacity.py feat(pi): techo de capacidad para los guests QEMU (multiusuario) 2026-07-29 21:15:04 +02:00
test_symbol_extract.py feat(intellisense): /type/ follows inheritance; extractor records bases and splits comma declarators 2026-08-17 19:08:57 +02:00