velxio/test/backend/unit
David Montero Crespo cdc72fd4fa fix(compile): answer the Bluetooth error ourselves instead of pointing at an IDE menu
A sketch that includes BTstackLib on a CYW43 board fails with arduino-pico's
static_assert: "This library needs Bluetooth enabled. Use the 'Tools->IP/
Bluetooth Stack' menu in the IDE to enable it." There is no such menu here, so
it reads as a setting we forgot to expose. What is actually true is simpler:
the CYW43439's Bluetooth controller is not emulated — only its WiFi side is —
so there is nothing to switch on.

Appends that, leaving the compiler's own diagnostic intact above it because the
developer still needs the real text. Deliberately a separate helper from
humanize_cli_error, which REPLACES arduino-cli's own failures; this one only
adds context under a compiler message.

Worth knowing for whoever picks up the BT work: this is the honest-failure
milestone. Making a BT sketch compile at all means flipping this board's FQBN
to ipbtstack=ipv4btcble, which swaps liblwip.a for liblwip-bt.a and costs every
sketch on the board ~71 KB flash and ~18 KB RAM — and leaves it reaching
HCI_STATE_WORKING while advertising to nobody. The mechanism is mapped in
project/pimoroni-pico-plus-2w/STATUS.md.
2026-08-22 04:38:31 +02:00
..
__init__.py
…
test_arduino_cli_attinycore.py
…
test_arduino_cli_bt_note.py fix(compile): answer the Bluetooth error ourselves instead of pointing at an IDE menu 2026-08-22 04:38:31 +02:00
test_arduino_cli_error_messages.py fix(arduino-cli): library search/install failures become one actionable sentence 2026-08-18 00:28:07 +02:00
test_boot_images.py
…
test_compile_build_lock.py test(compile): the build-lock test still asserted the pre-82f25a03 contract 2026-08-20 07:49:09 +02:00
test_compile_dedup.py
…
test_dht22_worker.py
…
test_esp32_wifi_args.py fix(esp32): the emulated chip keeps its radio, whatever the scan thinks (#260) 2026-08-21 22:05:10 +02:00
test_esp32_wifi_webserver.py
…
test_esp32c3_wifi_args.py
…
test_espidf_compiler.py fix(espidf): one include root per library — kill the header-shadow class 2026-08-20 00:15:51 +02:00
test_espidf_core_first.py espidf: never resolve generic platform headers against user libraries 2026-08-04 05:23:42 +02:00
test_espidf_include_roots.py fix(espidf): one include root per library — kill the header-shadow class 2026-08-20 00:15:51 +02:00
test_espidf_include_scanner.py fix(espidf): unknown #if must not prune its #else in the include scanner 2026-08-15 04:14:00 +02:00
test_espidf_library_ranking.py feat(libraries): manifest auto-migration + name-affinity ranking + install-declares 2026-08-04 06:03:32 +02:00
test_espidf_pure_mode.py
…
test_espidf_real_paths.py
…
test_i2c_slaves.py
…
test_mcp_tools.py
…
test_micropython_libs.py feat(micropython): install libraries from the micropython-lib index (#214) 2026-08-18 21:50:10 +02:00
test_signal_router.py
…
test_uart_buffer_flush.py fix(micropython): release the raw REPL's answer instead of buffering it (#219) 2026-08-21 22:06:16 +02:00
test_wifi_detection_scope.py fix(esp32): the emulated chip keeps its radio, whatever the scan thinks (#260) 2026-08-21 22:05:10 +02:00
test_wifi_status_parser.py
…