From 326f8cdf787b473ee7756dd73324d2f0d3ebd3e1 Mon Sep 17 00:00:00 2001 From: mikecarper Date: Sat, 3 Oct 2026 19:55:57 -0700 Subject: [PATCH] Default optional debug flags safely in strict shells --- build_legacy.sh | 4 ++-- test/test_build_profiles.sh | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/build_legacy.sh b/build_legacy.sh index a6b3da9ec..12973fb34 100755 --- a/build_legacy.sh +++ b/build_legacy.sh @@ -2644,8 +2644,8 @@ disable_debug_flags() { usb_logging_undefs="" fi - if [ "$DISABLE_DEBUG" == "1" ]; then - export PLATFORMIO_BUILD_FLAGS="${PLATFORMIO_BUILD_FLAGS} ${usb_logging_undefs} -UBLE_DEBUG_LOGGING -UWIFI_DEBUG_LOGGING -UBRIDGE_DEBUG -UGPS_NMEA_DEBUG -UCORE_DEBUG_LEVEL -UESPNOW_DEBUG_LOGGING -UDEBUG_RP2040_WIRE -UDEBUG_RP2040_SPI -UDEBUG_RP2040_CORE -UDEBUG_RP2040_PORT -URADIOLIB_DEBUG_SPI -DCFG_DEBUG=0 -URADIOLIB_DEBUG_BASIC -URADIOLIB_DEBUG_PROTOCOL" + if [ "${DISABLE_DEBUG:-0}" == "1" ]; then + export PLATFORMIO_BUILD_FLAGS="${PLATFORMIO_BUILD_FLAGS:-} ${usb_logging_undefs} -UBLE_DEBUG_LOGGING -UWIFI_DEBUG_LOGGING -UBRIDGE_DEBUG -UGPS_NMEA_DEBUG -UCORE_DEBUG_LEVEL -UESPNOW_DEBUG_LOGGING -UDEBUG_RP2040_WIRE -UDEBUG_RP2040_SPI -UDEBUG_RP2040_CORE -UDEBUG_RP2040_PORT -URADIOLIB_DEBUG_SPI -DCFG_DEBUG=0 -URADIOLIB_DEBUG_BASIC -URADIOLIB_DEBUG_PROTOCOL" fi } diff --git a/test/test_build_profiles.sh b/test/test_build_profiles.sh index d7cdd87c0..f1135ef54 100644 --- a/test/test_build_profiles.sh +++ b/test/test_build_profiles.sh @@ -9,6 +9,31 @@ fail() { exit 1 } +# Optional debug settings must remain usable by strict shell callers before +# any PlatformIO flags have been initialized. +( + unset DISABLE_DEBUG PLATFORMIO_BUILD_FLAGS + disable_debug_flags + [ -z "${PLATFORMIO_BUILD_FLAGS+x}" ] \ + || fail "default debug policy unexpectedly set build flags" + DISABLE_DEBUG=0 + PLATFORMIO_BUILD_FLAGS=-DKEEP_CALLER_FLAG=1 + disable_debug_flags + [ "$PLATFORMIO_BUILD_FLAGS" = -DKEEP_CALLER_FLAG=1 ] \ + || fail "disabled debug override changed caller flags" + DISABLE_DEBUG=1 + unset PLATFORMIO_BUILD_FLAGS + disable_debug_flags + [[ "$PLATFORMIO_BUILD_FLAGS" == *"-UMESH_DEBUG -UMESH_PACKET_LOGGING"* ]] \ + || fail "explicit debug disable lost the USB debug undefines" + [[ "$PLATFORMIO_BUILD_FLAGS" == *"-DCFG_DEBUG=0"* ]] \ + || fail "explicit debug disable lost CFG_DEBUG" + PLATFORMIO_BUILD_FLAGS=-DKEEP_CALLER_FLAG=1 + disable_debug_flags + [[ "$PLATFORMIO_BUILD_FLAGS" == -DKEEP_CALLER_FLAG=1* ]] \ + || fail "explicit debug disable discarded caller flags" +) + [ "$OPTION3_BUILD_WORKERS" -eq 1 ] \ || fail "logging matrix permits concurrent PlatformIO target builds"