diff --git a/.github/workflows/test-firmware.yml b/.github/workflows/test-firmware.yml index 49f1cf5..85678a0 100644 --- a/.github/workflows/test-firmware.yml +++ b/.github/workflows/test-firmware.yml @@ -6,6 +6,8 @@ on: - main paths: - 'main/**' + - 'components/**' + - 'test/**' - 'CMakeLists.txt' - 'sdkconfig' workflow_dispatch: @@ -25,14 +27,6 @@ jobs: command: | idf.py build - - name: Install QEMU items - uses: espressif/esp-idf-ci-action@v1.2.0 - with: - esp_idf_version: 'release-v5.4' - command: | - . $IDF_PATH/export.sh - python $IDF_PATH/tools/idf_tools.py install qemu-xtensa - - name: Validate build artifacts run: | if [ ! -f build/remotehead.bin ]; then @@ -49,6 +43,37 @@ jobs: echo "⚠️ Warning: Firmware size is over 1MB" fi + unit-tests: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Install QEMU + run: | + echo "Installing QEMU..." + sudo apt-get update + sudo apt-get install -y qemu-system-arm qemu-user + echo "✅ QEMU installation completed" + + - name: Run Tests in QEMU + uses: espressif/esp-idf-ci-action@v1.2.0 + with: + esp_idf_version: 'release-v5.4' + command: | + cd test + idf.py build + PYTHONUNBUFFERED=1 timeout 30s idf.py qemu + echo "✅ Tests executed in QEMU" + + code-quality: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Run basic code quality checks run: | echo "🔍 Checking for basic code quality issues..." @@ -76,22 +101,15 @@ jobs: exit 1 fi + # Check test files exist + if [ ! -d "test/main" ]; then + echo "❌ Error: Unit test directory not found" + exit 1 + fi + + if [ ! -f "test/main/test_main.c" ]; then + echo "❌ Error: Main test file not found" + exit 1 + fi + echo "✅ Basic code quality checks completed" - - - name: Install QEMU - run: | - echo "Installing QEMU..." - sudo apt-get update - sudo apt-get install -y qemu-system-arm qemu-user - echo "✅ QEMU installation completed" - - - name: Run Tests in QEMU - uses: espressif/esp-idf-ci-action@v1.2.0 - with: - esp_idf_version: 'release-v5.4' - command: | - cd test - idf.py build - idf.py qemu - echo "✅ Tests executed in QEMU" - diff --git a/sdkconfig b/sdkconfig index 2f65c4e..9464433 100644 --- a/sdkconfig +++ b/sdkconfig @@ -1,10 +1,7 @@ # # Automatically generated file. DO NOT EDIT. -# Espressif IoT Development Framework (ESP-IDF) 5.1.6 Project Configuration +# Espressif IoT Development Framework (ESP-IDF) 5.4.2 Project Configuration # -CONFIG_SOC_BROWNOUT_RESET_SUPPORTED="Not determined" -CONFIG_SOC_TWAI_BRP_DIV_SUPPORTED="Not determined" -CONFIG_SOC_DPORT_WORKAROUND="Not determined" CONFIG_SOC_CAPS_ECO_VER_MAX=301 CONFIG_SOC_ADC_SUPPORTED=y CONFIG_SOC_DAC_SUPPORTED=y @@ -14,9 +11,11 @@ CONFIG_SOC_GPTIMER_SUPPORTED=y CONFIG_SOC_SDMMC_HOST_SUPPORTED=y CONFIG_SOC_BT_SUPPORTED=y CONFIG_SOC_PCNT_SUPPORTED=y +CONFIG_SOC_PHY_SUPPORTED=y CONFIG_SOC_WIFI_SUPPORTED=y CONFIG_SOC_SDIO_SLAVE_SUPPORTED=y CONFIG_SOC_TWAI_SUPPORTED=y +CONFIG_SOC_EFUSE_SUPPORTED=y CONFIG_SOC_EMAC_SUPPORTED=y CONFIG_SOC_ULP_SUPPORTED=y CONFIG_SOC_CCOMP_TIMER_SUPPORTED=y @@ -38,6 +37,15 @@ CONFIG_SOC_SECURE_BOOT_SUPPORTED=y CONFIG_SOC_TOUCH_SENSOR_SUPPORTED=y CONFIG_SOC_BOD_SUPPORTED=y CONFIG_SOC_ULP_FSM_SUPPORTED=y +CONFIG_SOC_CLK_TREE_SUPPORTED=y +CONFIG_SOC_MPU_SUPPORTED=y +CONFIG_SOC_WDT_SUPPORTED=y +CONFIG_SOC_SPI_FLASH_SUPPORTED=y +CONFIG_SOC_RNG_SUPPORTED=y +CONFIG_SOC_LIGHT_SLEEP_SUPPORTED=y +CONFIG_SOC_DEEP_SLEEP_SUPPORTED=y +CONFIG_SOC_LP_PERIPH_SHARE_INTERRUPT=y +CONFIG_SOC_PM_SUPPORTED=y CONFIG_SOC_DPORT_WORKAROUND_DIS_INTERRUPT_LVL=5 CONFIG_SOC_XTAL_SUPPORT_26M=y CONFIG_SOC_XTAL_SUPPORT_40M=y @@ -54,18 +62,22 @@ CONFIG_SOC_ADC_DIGI_MIN_BITWIDTH=9 CONFIG_SOC_ADC_DIGI_MAX_BITWIDTH=12 CONFIG_SOC_ADC_DIGI_RESULT_BYTES=2 CONFIG_SOC_ADC_DIGI_DATA_BYTES_PER_CONV=4 +CONFIG_SOC_ADC_DIGI_MONITOR_NUM=0 CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=2 CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=20 CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=9 CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12 +CONFIG_SOC_ADC_SHARED_POWER=y +CONFIG_SOC_BROWNOUT_RESET_SUPPORTED=y CONFIG_SOC_SHARED_IDCACHE_SUPPORTED=y CONFIG_SOC_IDCACHE_PER_CORE=y CONFIG_SOC_CPU_CORES_NUM=2 CONFIG_SOC_CPU_INTR_NUM=32 CONFIG_SOC_CPU_HAS_FPU=y +CONFIG_SOC_HP_CPU_HAS_MULTIPLE_CORES=y CONFIG_SOC_CPU_BREAKPOINTS_NUM=2 CONFIG_SOC_CPU_WATCHPOINTS_NUM=2 -CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=64 +CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=0x40 CONFIG_SOC_DAC_CHAN_NUM=2 CONFIG_SOC_DAC_RESOLUTION=8 CONFIG_SOC_DAC_DMA_16BIT_ALIGN=y @@ -75,11 +87,17 @@ CONFIG_SOC_GPIO_VALID_GPIO_MASK=0xFFFFFFFFFF CONFIG_SOC_GPIO_IN_RANGE_MAX=39 CONFIG_SOC_GPIO_OUT_RANGE_MAX=33 CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0xEF0FEA +CONFIG_SOC_GPIO_CLOCKOUT_BY_IO_MUX=y +CONFIG_SOC_GPIO_CLOCKOUT_CHANNEL_NUM=3 +CONFIG_SOC_GPIO_SUPPORT_HOLD_IO_IN_DSLP=y CONFIG_SOC_I2C_NUM=2 +CONFIG_SOC_HP_I2C_NUM=2 CONFIG_SOC_I2C_FIFO_LEN=32 CONFIG_SOC_I2C_CMD_REG_NUM=16 CONFIG_SOC_I2C_SUPPORT_SLAVE=y CONFIG_SOC_I2C_SUPPORT_APB=y +CONFIG_SOC_I2C_SUPPORT_10BIT_ADDR=y +CONFIG_SOC_I2C_STOP_INDEPENDENT=y CONFIG_SOC_I2S_NUM=2 CONFIG_SOC_I2S_HW_VERSION_1=y CONFIG_SOC_I2S_SUPPORTS_APLL=y @@ -93,6 +111,7 @@ CONFIG_SOC_I2S_SUPPORTS_ADC_DAC=y CONFIG_SOC_I2S_SUPPORTS_ADC=y CONFIG_SOC_I2S_SUPPORTS_DAC=y CONFIG_SOC_I2S_SUPPORTS_LCD_CAMERA=y +CONFIG_SOC_I2S_MAX_DATA_WIDTH=24 CONFIG_SOC_I2S_TRANS_SIZE_ALIGN_WORD=y CONFIG_SOC_I2S_LCD_I80_VARIANT=y CONFIG_SOC_LCD_I80_SUPPORTED=y @@ -102,6 +121,7 @@ CONFIG_SOC_LEDC_HAS_TIMER_SPECIFIC_MUX=y CONFIG_SOC_LEDC_SUPPORT_APB_CLOCK=y CONFIG_SOC_LEDC_SUPPORT_REF_TICK=y CONFIG_SOC_LEDC_SUPPORT_HS_MODE=y +CONFIG_SOC_LEDC_TIMER_NUM=4 CONFIG_SOC_LEDC_CHANNEL_NUM=8 CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=20 CONFIG_SOC_MCPWM_GROUPS=2 @@ -156,14 +176,15 @@ CONFIG_SOC_TIMER_GROUP_TOTAL_TIMERS=4 CONFIG_SOC_TIMER_GROUP_SUPPORT_APB=y CONFIG_SOC_LP_TIMER_BIT_WIDTH_LO=32 CONFIG_SOC_LP_TIMER_BIT_WIDTH_HI=16 -CONFIG_SOC_TOUCH_VERSION_1=y +CONFIG_SOC_TOUCH_SENSOR_VERSION=1 CONFIG_SOC_TOUCH_SENSOR_NUM=10 -CONFIG_SOC_TOUCH_PAD_MEASURE_WAIT_MAX=0xFF +CONFIG_SOC_TOUCH_SAMPLE_CFG_NUM=1 CONFIG_SOC_TWAI_CONTROLLER_NUM=1 CONFIG_SOC_TWAI_BRP_MIN=2 CONFIG_SOC_TWAI_CLK_SUPPORT_APB=y CONFIG_SOC_TWAI_SUPPORT_MULTI_ADDRESS_LAYOUT=y CONFIG_SOC_UART_NUM=3 +CONFIG_SOC_UART_HP_NUM=3 CONFIG_SOC_UART_SUPPORT_APB_CLK=y CONFIG_SOC_UART_SUPPORT_REF_TICK=y CONFIG_SOC_UART_FIFO_LEN=128 @@ -171,16 +192,19 @@ CONFIG_SOC_UART_BITRATE_MAX=5000000 CONFIG_SOC_SPIRAM_SUPPORTED=y CONFIG_SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE=y CONFIG_SOC_SHA_SUPPORT_PARALLEL_ENG=y +CONFIG_SOC_SHA_ENDIANNESS_BE=y CONFIG_SOC_SHA_SUPPORT_SHA1=y CONFIG_SOC_SHA_SUPPORT_SHA256=y CONFIG_SOC_SHA_SUPPORT_SHA384=y CONFIG_SOC_SHA_SUPPORT_SHA512=y +CONFIG_SOC_MPI_MEM_BLOCKS_NUM=4 +CONFIG_SOC_MPI_OPERATIONS_NUM=1 CONFIG_SOC_RSA_MAX_BIT_LEN=4096 CONFIG_SOC_AES_SUPPORT_AES_128=y CONFIG_SOC_AES_SUPPORT_AES_192=y CONFIG_SOC_AES_SUPPORT_AES_256=y CONFIG_SOC_SECURE_BOOT_V1=y -CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=y +CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=1 CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=32 CONFIG_SOC_PHY_DIG_REGS_MEM_SIZE=21 CONFIG_SOC_PM_SUPPORT_EXT0_WAKEUP=y @@ -194,11 +218,8 @@ CONFIG_SOC_PM_SUPPORT_RC_FAST_PD=y CONFIG_SOC_PM_SUPPORT_VDDSDIO_PD=y CONFIG_SOC_PM_SUPPORT_MODEM_PD=y CONFIG_SOC_CONFIGURABLE_VDDSDIO_SUPPORTED=y +CONFIG_SOC_PM_MODEM_PD_BY_SW=y CONFIG_SOC_CLK_APLL_SUPPORTED=y -CONFIG_SOC_APLL_MULTIPLIER_OUT_MIN_HZ=350000000 -CONFIG_SOC_APLL_MULTIPLIER_OUT_MAX_HZ=500000000 -CONFIG_SOC_APLL_MIN_HZ=5303031 -CONFIG_SOC_APLL_MAX_HZ=125000000 CONFIG_SOC_CLK_RC_FAST_D256_SUPPORTED=y CONFIG_SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256=y CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y @@ -214,12 +235,17 @@ CONFIG_SOC_BLE_SUPPORTED=y CONFIG_SOC_BLE_MESH_SUPPORTED=y CONFIG_SOC_BT_CLASSIC_SUPPORTED=y CONFIG_SOC_BLUFI_SUPPORTED=y +CONFIG_SOC_BT_H2C_ENC_KEY_CTRL_ENH_VSC_SUPPORTED=y CONFIG_SOC_ULP_HAS_ADC=y CONFIG_SOC_PHY_COMBO_MODULE=y +CONFIG_SOC_EMAC_RMII_CLK_OUT_INTERNAL_LOOPBACK=y CONFIG_IDF_CMAKE=y +CONFIG_IDF_TOOLCHAIN="gcc" +CONFIG_IDF_TOOLCHAIN_GCC=y CONFIG_IDF_TARGET_ARCH_XTENSA=y CONFIG_IDF_TARGET_ARCH="xtensa" CONFIG_IDF_TARGET="esp32" +CONFIG_IDF_INIT_VERSION="5.4.2" CONFIG_IDF_TARGET_ESP32=y CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000 @@ -240,11 +266,23 @@ CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y # # Bootloader config # + +# +# Bootloader manager +# +CONFIG_BOOTLOADER_COMPILE_TIME_DATE=y +CONFIG_BOOTLOADER_PROJECT_VER=1 +# end of Bootloader manager + CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x1000 CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set + +# +# Log +# # CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set # CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set # CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set @@ -253,6 +291,14 @@ CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y # CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set CONFIG_BOOTLOADER_LOG_LEVEL=3 +# +# Format +# +# CONFIG_BOOTLOADER_LOG_COLORS is not set +CONFIG_BOOTLOADER_LOG_TIMESTAMP_SOURCE_CPU_TICKS=y +# end of Format +# end of Log + # # Serial Flash Configurations # @@ -301,7 +347,14 @@ CONFIG_ESP_ROM_HAS_MZ_CRC32=y CONFIG_ESP_ROM_HAS_JPEG_DECODE=y CONFIG_ESP_ROM_HAS_UART_BUF_SWITCH=y CONFIG_ESP_ROM_NEEDS_SWSETUP_WORKAROUND=y +CONFIG_ESP_ROM_HAS_NEWLIB=y CONFIG_ESP_ROM_HAS_NEWLIB_NANO_FORMAT=y +CONFIG_ESP_ROM_HAS_NEWLIB_32BIT_TIME=y +CONFIG_ESP_ROM_HAS_SW_FLOAT=y +CONFIG_ESP_ROM_USB_OTG_NUM=-1 +CONFIG_ESP_ROM_USB_SERIAL_DEVICE_NUM=-1 +CONFIG_ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB=y +CONFIG_ESP_ROM_HAS_OUTPUT_PUTC_FUNC=y # # Serial flasher config @@ -343,6 +396,7 @@ CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 # CONFIG_PARTITION_TABLE_SINGLE_APP is not set # CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set # CONFIG_PARTITION_TABLE_TWO_OTA is not set +# CONFIG_PARTITION_TABLE_TWO_OTA_LARGE is not set CONFIG_PARTITION_TABLE_CUSTOM=y CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" CONFIG_PARTITION_TABLE_FILENAME="partitions.csv" @@ -353,13 +407,14 @@ CONFIG_PARTITION_TABLE_MD5=y # # Compiler options # -# CONFIG_COMPILER_OPTIMIZATION_DEFAULT is not set +# CONFIG_COMPILER_OPTIMIZATION_DEBUG is not set CONFIG_COMPILER_OPTIMIZATION_SIZE=y # CONFIG_COMPILER_OPTIMIZATION_PERF is not set # CONFIG_COMPILER_OPTIMIZATION_NONE is not set CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set +CONFIG_COMPILER_ASSERT_NDEBUG_EVALUATE=y CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB=y CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2 # CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set @@ -370,9 +425,18 @@ CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y # CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set # CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set # CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set +# CONFIG_COMPILER_NO_MERGE_CONSTANTS is not set # CONFIG_COMPILER_WARN_WRITE_STRINGS is not set +CONFIG_COMPILER_DISABLE_DEFAULT_ERRORS=y # CONFIG_COMPILER_DISABLE_GCC12_WARNINGS is not set +# CONFIG_COMPILER_DISABLE_GCC13_WARNINGS is not set +# CONFIG_COMPILER_DISABLE_GCC14_WARNINGS is not set # CONFIG_COMPILER_DUMP_RTL_FILES is not set +CONFIG_COMPILER_RT_LIB_GCCLIB=y +CONFIG_COMPILER_RT_LIB_NAME="gcc" +CONFIG_COMPILER_ORPHAN_SECTIONS_WARNING=y +# CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE is not set +# CONFIG_COMPILER_STATIC_ANALYZER is not set # end of Compiler options # @@ -410,18 +474,23 @@ CONFIG_BT_BLUEDROID_PINNED_TO_CORE_0=y CONFIG_BT_BLUEDROID_PINNED_TO_CORE=0 CONFIG_BT_BTU_TASK_STACK_SIZE=4352 # CONFIG_BT_BLUEDROID_MEM_DEBUG is not set +CONFIG_BT_BLUEDROID_ESP_COEX_VSC=y CONFIG_BT_CLASSIC_ENABLED=y +CONFIG_BT_ENC_KEY_SIZE_CTRL_VSC=y +# CONFIG_BT_ENC_KEY_SIZE_CTRL_NONE is not set # CONFIG_BT_CLASSIC_BQB_ENABLED is not set # CONFIG_BT_A2DP_ENABLE is not set # CONFIG_BT_SPP_ENABLED is not set # CONFIG_BT_L2CAP_ENABLED is not set +# CONFIG_BT_SDP_COMMON_ENABLED is not set +CONFIG_BT_SDP_PAD_LEN=300 +CONFIG_BT_SDP_ATTR_LEN=300 CONFIG_BT_HFP_ENABLE=y CONFIG_BT_HFP_CLIENT_ENABLE=y CONFIG_BT_HFP_AG_ENABLE=y CONFIG_BT_HFP_AUDIO_DATA_PATH_PCM=y # CONFIG_BT_HFP_AUDIO_DATA_PATH_HCI is not set # CONFIG_BT_HID_ENABLED is not set -CONFIG_BT_SSP_ENABLED=y CONFIG_BT_BLE_ENABLED=y CONFIG_BT_GATTS_ENABLE=y # CONFIG_BT_GATTS_PPCP_CHAR_GAP is not set @@ -439,10 +508,12 @@ CONFIG_BT_GATTC_MAX_CACHE_CHAR=40 CONFIG_BT_GATTC_NOTIF_REG_MAX=5 # CONFIG_BT_GATTC_CACHE_NVS_FLASH is not set CONFIG_BT_GATTC_CONNECT_RETRY_COUNT=3 +CONFIG_BT_BLE_ESTAB_LINK_CONN_TOUT=30 CONFIG_BT_BLE_SMP_ENABLE=y # CONFIG_BT_SMP_SLAVE_CON_PARAMS_UPD_ENABLE is not set # CONFIG_BT_BLE_SMP_ID_RESET_ENABLE is not set CONFIG_BT_BLE_SMP_BOND_NVS_FLASH=y +# CONFIG_BT_BLE_RPA_SUPPORTED is not set # CONFIG_BT_STACK_NO_LOG is not set # @@ -622,14 +693,15 @@ CONFIG_BT_ACL_CONNECTIONS=4 CONFIG_BT_MULTI_CONNECTION_ENBALE=y # CONFIG_BT_ALLOCATION_FROM_SPIRAM_FIRST is not set # CONFIG_BT_BLE_DYNAMIC_ENV_MEMORY is not set -# CONFIG_BT_BLE_HOST_QUEUE_CONG_CHECK is not set CONFIG_BT_SMP_ENABLE=y CONFIG_BT_SMP_MAX_BONDS=15 # CONFIG_BT_BLE_ACT_SCAN_REP_ADV_SCAN is not set -CONFIG_BT_BLE_ESTAB_LINK_CONN_TOUT=30 CONFIG_BT_MAX_DEVICE_NAME_LEN=32 -# CONFIG_BT_BLE_RPA_SUPPORTED is not set CONFIG_BT_BLE_RPA_TIMEOUT=900 +CONFIG_BT_BLE_42_FEATURES_SUPPORTED=y +CONFIG_BT_BLE_42_DTM_TEST_EN=y +CONFIG_BT_BLE_42_ADV_EN=y +CONFIG_BT_BLE_42_SCAN_EN=y # CONFIG_BT_BLE_HIGH_DUTY_ADV_INTERVAL is not set # CONFIG_BT_ABORT_WHEN_ALLOCATION_FAILS is not set # end of Bluedroid Options @@ -651,8 +723,12 @@ CONFIG_BTDM_CTRL_PCM_ROLE_MASTER=y # CONFIG_BTDM_CTRL_PCM_ROLE_SLAVE is not set CONFIG_BTDM_CTRL_PCM_POLAR_FALLING_EDGE=y # CONFIG_BTDM_CTRL_PCM_POLAR_RISING_EDGE is not set +CONFIG_BTDM_CTRL_PCM_FSYNCSHP_STEREO_MODE=y +# CONFIG_BTDM_CTRL_PCM_FSYNCSHP_MONO_MODE_LF is not set +# CONFIG_BTDM_CTRL_PCM_FSYNCSHP_MONO_MODE_FF is not set CONFIG_BTDM_CTRL_PCM_ROLE_EFF=0 CONFIG_BTDM_CTRL_PCM_POLAR_EFF=0 +CONFIG_BTDM_CTRL_PCM_FSYNCSHP_EFF=0 CONFIG_BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT=y CONFIG_BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT_EFF=y CONFIG_BTDM_CTRL_BLE_MAX_CONN_EFF=0 @@ -679,9 +755,9 @@ CONFIG_BTDM_BLE_SLEEP_CLOCK_ACCURACY_INDEX_EFF=1 # CONFIG_BTDM_CTRL_CHECK_CONNECT_IND_ACCESS_ADDRESS is not set # -# BLE disconnect when instant passed +# BLE disconnects when Instant Passed (0x28) occurs # -# end of BLE disconnect when instant passed +# end of BLE disconnects when Instant Passed (0x28) occurs # CONFIG_BTDM_CTRL_CONTROLLER_DEBUG_MODE_1 is not set CONFIG_BTDM_RESERVE_DRAM=0xdb5c @@ -701,33 +777,14 @@ CONFIG_BT_ALARM_MAX_NUM=50 # CONFIG_BLE_MESH is not set # -# Driver Configurations -# - -# -# Legacy ADC Configuration +# Console Library # -CONFIG_ADC_DISABLE_DAC=y -# CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_CONSOLE_SORTED_HELP is not set +# end of Console Library # -# Legacy ADC Calibration Configuration -# -CONFIG_ADC_CAL_EFUSE_TP_ENABLE=y -CONFIG_ADC_CAL_EFUSE_VREF_ENABLE=y -CONFIG_ADC_CAL_LUT_ENABLE=y -# CONFIG_ADC_CALI_SUPPRESS_DEPRECATE_WARN is not set -# end of Legacy ADC Calibration Configuration -# end of Legacy ADC Configuration - -# -# SPI Configuration +# Driver Configurations # -# CONFIG_SPI_MASTER_IN_IRAM is not set -CONFIG_SPI_MASTER_ISR_IN_IRAM=y -# CONFIG_SPI_SLAVE_IN_IRAM is not set -CONFIG_SPI_SLAVE_ISR_IN_IRAM=y -# end of SPI Configuration # # TWAI Configuration @@ -741,80 +798,76 @@ CONFIG_TWAI_ERRATA_FIX_LISTEN_ONLY_DOM=y # end of TWAI Configuration # -# UART Configuration +# Legacy ADC Driver Configuration # -# CONFIG_UART_ISR_IN_IRAM is not set -# end of UART Configuration +CONFIG_ADC_DISABLE_DAC=y +# CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_ADC_SKIP_LEGACY_CONFLICT_CHECK is not set # -# GPIO Configuration +# Legacy ADC Calibration Configuration # -# CONFIG_GPIO_ESP32_SUPPORT_SWITCH_SLP_PULL is not set -# CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set -# end of GPIO Configuration +CONFIG_ADC_CAL_EFUSE_TP_ENABLE=y +CONFIG_ADC_CAL_EFUSE_VREF_ENABLE=y +CONFIG_ADC_CAL_LUT_ENABLE=y +# CONFIG_ADC_CALI_SUPPRESS_DEPRECATE_WARN is not set +# end of Legacy ADC Calibration Configuration +# end of Legacy ADC Driver Configuration # -# Sigma Delta Modulator Configuration +# Legacy DAC Driver Configurations # -# CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set -# CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_SDM_ENABLE_DEBUG_LOG is not set -# end of Sigma Delta Modulator Configuration +# CONFIG_DAC_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_DAC_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy DAC Driver Configurations # -# GPTimer Configuration +# Legacy MCPWM Driver Configurations # -CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y -# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set -# CONFIG_GPTIMER_ISR_IRAM_SAFE is not set -# CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set -# end of GPTimer Configuration +# CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_MCPWM_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy MCPWM Driver Configurations # -# PCNT Configuration +# Legacy Timer Group Driver Configurations # -# CONFIG_PCNT_CTRL_FUNC_IN_IRAM is not set -# CONFIG_PCNT_ISR_IRAM_SAFE is not set -# CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_PCNT_ENABLE_DEBUG_LOG is not set -# end of PCNT Configuration +# CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_GPTIMER_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy Timer Group Driver Configurations # -# RMT Configuration +# Legacy RMT Driver Configurations # -# CONFIG_RMT_ISR_IRAM_SAFE is not set -# CONFIG_RMT_RECV_FUNC_IN_IRAM is not set # CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_RMT_ENABLE_DEBUG_LOG is not set -# end of RMT Configuration +# CONFIG_RMT_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy RMT Driver Configurations # -# MCPWM Configuration +# Legacy I2S Driver Configurations # -# CONFIG_MCPWM_ISR_IRAM_SAFE is not set -# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set -# CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set -# end of MCPWM Configuration +# CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_I2S_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy I2S Driver Configurations # -# I2S Configuration +# Legacy I2C Driver Configurations # -# CONFIG_I2S_ISR_IRAM_SAFE is not set -# CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_I2S_ENABLE_DEBUG_LOG is not set -# end of I2S Configuration +# CONFIG_I2C_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy I2C Driver Configurations # -# DAC Configuration +# Legacy PCNT Driver Configurations # -# CONFIG_DAC_CTRL_FUNC_IN_IRAM is not set -# CONFIG_DAC_ISR_IRAM_SAFE is not set -# CONFIG_DAC_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_DAC_ENABLE_DEBUG_LOG is not set -CONFIG_DAC_DMA_AUTO_16BIT_ALIGN=y -# end of DAC Configuration +# CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_PCNT_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy PCNT Driver Configurations + +# +# Legacy SDM Driver Configurations +# +# CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_SDM_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy SDM Driver Configurations # end of Driver Configurations # @@ -834,9 +887,12 @@ CONFIG_EFUSE_MAX_BLK_LEN=192 CONFIG_ESP_TLS_USING_MBEDTLS=y # CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set # CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set -# CONFIG_ESP_TLS_SERVER is not set +# CONFIG_ESP_TLS_SERVER_SESSION_TICKETS is not set +# CONFIG_ESP_TLS_SERVER_CERT_SELECT_HOOK is not set +# CONFIG_ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL is not set # CONFIG_ESP_TLS_PSK_VERIFICATION is not set # CONFIG_ESP_TLS_INSECURE is not set +CONFIG_ESP_TLS_DYN_BUF_STRATEGY_SUPPORTED=y # end of ESP-TLS # @@ -854,11 +910,13 @@ CONFIG_ADC_CALI_LUT_ENABLE=y # end of ADC Calibration Configurations CONFIG_ADC_DISABLE_DAC_OUTPUT=y +# CONFIG_ADC_ENABLE_DEBUG_LOG is not set # end of ADC and ADC Calibration # # Wireless Coexistence # +CONFIG_ESP_COEX_ENABLED=y CONFIG_ESP_COEX_SW_COEXIST_ENABLE=y # CONFIG_ESP_COEX_POWER_MANAGEMENT is not set # CONFIG_ESP_COEX_GPIO_DEBUG is not set @@ -870,6 +928,107 @@ CONFIG_ESP_COEX_SW_COEXIST_ENABLE=y CONFIG_ESP_ERR_TO_NAME_LOOKUP=y # end of Common ESP-related +# +# ESP-Driver:DAC Configurations +# +# CONFIG_DAC_CTRL_FUNC_IN_IRAM is not set +# CONFIG_DAC_ISR_IRAM_SAFE is not set +# CONFIG_DAC_ENABLE_DEBUG_LOG is not set +CONFIG_DAC_DMA_AUTO_16BIT_ALIGN=y +# end of ESP-Driver:DAC Configurations + +# +# ESP-Driver:GPIO Configurations +# +# CONFIG_GPIO_ESP32_SUPPORT_SWITCH_SLP_PULL is not set +# CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set +# end of ESP-Driver:GPIO Configurations + +# +# ESP-Driver:GPTimer Configurations +# +CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y +# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set +# CONFIG_GPTIMER_ISR_IRAM_SAFE is not set +CONFIG_GPTIMER_OBJ_CACHE_SAFE=y +# CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:GPTimer Configurations + +# +# ESP-Driver:I2C Configurations +# +# CONFIG_I2C_ISR_IRAM_SAFE is not set +# CONFIG_I2C_ENABLE_DEBUG_LOG is not set +# CONFIG_I2C_ENABLE_SLAVE_DRIVER_VERSION_2 is not set +# end of ESP-Driver:I2C Configurations + +# +# ESP-Driver:I2S Configurations +# +# CONFIG_I2S_ISR_IRAM_SAFE is not set +# CONFIG_I2S_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:I2S Configurations + +# +# ESP-Driver:LEDC Configurations +# +# CONFIG_LEDC_CTRL_FUNC_IN_IRAM is not set +# end of ESP-Driver:LEDC Configurations + +# +# ESP-Driver:MCPWM Configurations +# +# CONFIG_MCPWM_ISR_IRAM_SAFE is not set +# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set +# CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:MCPWM Configurations + +# +# ESP-Driver:PCNT Configurations +# +# CONFIG_PCNT_CTRL_FUNC_IN_IRAM is not set +# CONFIG_PCNT_ISR_IRAM_SAFE is not set +# CONFIG_PCNT_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:PCNT Configurations + +# +# ESP-Driver:RMT Configurations +# +# CONFIG_RMT_ISR_IRAM_SAFE is not set +# CONFIG_RMT_RECV_FUNC_IN_IRAM is not set +# CONFIG_RMT_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:RMT Configurations + +# +# ESP-Driver:Sigma Delta Modulator Configurations +# +# CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set +# CONFIG_SDM_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:Sigma Delta Modulator Configurations + +# +# ESP-Driver:SPI Configurations +# +# CONFIG_SPI_MASTER_IN_IRAM is not set +CONFIG_SPI_MASTER_ISR_IN_IRAM=y +# CONFIG_SPI_SLAVE_IN_IRAM is not set +CONFIG_SPI_SLAVE_ISR_IN_IRAM=y +# end of ESP-Driver:SPI Configurations + +# +# ESP-Driver:Touch Sensor Configurations +# +# CONFIG_TOUCH_CTRL_FUNC_IN_IRAM is not set +# CONFIG_TOUCH_ISR_IRAM_SAFE is not set +# CONFIG_TOUCH_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:Touch Sensor Configurations + +# +# ESP-Driver:UART Configurations +# +# CONFIG_UART_ISR_IN_IRAM is not set +# end of ESP-Driver:UART Configurations + # # Ethernet # @@ -902,6 +1061,10 @@ CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR=y # # GDB Stub # +CONFIG_ESP_GDBSTUB_ENABLED=y +# CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set +CONFIG_ESP_GDBSTUB_SUPPORT_TASKS=y +CONFIG_ESP_GDBSTUB_MAX_TASKS=32 # end of GDB Stub # @@ -917,6 +1080,8 @@ CONFIG_ESPHID_TASK_SIZE_BLE=4096 CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y # CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set # CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH is not set +# CONFIG_ESP_HTTP_CLIENT_ENABLE_CUSTOM_TRANSPORT is not set +CONFIG_ESP_HTTP_CLIENT_EVENT_POST_TIMEOUT=2000 # end of ESP HTTP client # @@ -929,6 +1094,7 @@ CONFIG_HTTPD_PURGE_BUF_LEN=32 # CONFIG_HTTPD_LOG_PURGE_DATA is not set # CONFIG_HTTPD_WS_SUPPORT is not set # CONFIG_HTTPD_QUEUE_WORK_BLOCKING is not set +CONFIG_HTTPD_SERVER_EVENT_POST_TIMEOUT=2000 # end of HTTP Server # @@ -936,12 +1102,14 @@ CONFIG_HTTPD_PURGE_BUF_LEN=32 # # CONFIG_ESP_HTTPS_OTA_DECRYPT_CB is not set # CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP is not set +CONFIG_ESP_HTTPS_OTA_EVENT_POST_TIMEOUT=2000 # end of ESP HTTPS OTA # # ESP HTTPS server # # CONFIG_ESP_HTTPS_SERVER_ENABLE is not set +CONFIG_ESP_HTTPS_SERVER_EVENT_POST_TIMEOUT=2000 # end of ESP HTTPS server # @@ -982,6 +1150,7 @@ CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES_FOUR=y +CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES=4 # CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR=y CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4 @@ -998,9 +1167,9 @@ CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND=y CONFIG_ESP_SLEEP_RTC_BUS_ISO_WORKAROUND=y # CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND is not set CONFIG_ESP_SLEEP_WAIT_FLASH_READY_EXTRA_DELAY=2000 +# CONFIG_ESP_SLEEP_CACHE_SAFE_ASSERTION is not set # CONFIG_ESP_SLEEP_DEBUG is not set CONFIG_ESP_SLEEP_GPIO_ENABLE_INTERNAL_RESISTORS=y -# CONFIG_ESP_SLEEP_CACHE_SAFE_ASSERTION is not set # end of Sleep Config # @@ -1023,38 +1192,39 @@ CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y # Main XTAL Config # # CONFIG_XTAL_FREQ_26 is not set +# CONFIG_XTAL_FREQ_32 is not set CONFIG_XTAL_FREQ_40=y # CONFIG_XTAL_FREQ_AUTO is not set CONFIG_XTAL_FREQ=40 # end of Main XTAL Config -# end of Hardware Settings -# -# LCD and Touch Panel -# +CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y +# end of Hardware Settings # -# LCD Touch Drivers are maintained in the IDF Component Registry +# ESP-Driver:LCD Controller Configurations # +# CONFIG_LCD_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:LCD Controller Configurations # -# LCD Peripheral Configuration +# ESP-MM: Memory Management Configurations # -CONFIG_LCD_PANEL_IO_FORMAT_BUF_SIZE=32 -# CONFIG_LCD_ENABLE_DEBUG_LOG is not set -# end of LCD Peripheral Configuration -# end of LCD and Touch Panel +# end of ESP-MM: Memory Management Configurations # # ESP NETIF Adapter # CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120 +# CONFIG_ESP_NETIF_PROVIDE_CUSTOM_IMPLEMENTATION is not set CONFIG_ESP_NETIF_TCPIP_LWIP=y # CONFIG_ESP_NETIF_LOOPBACK is not set CONFIG_ESP_NETIF_USES_TCPIP_WITH_BSD_API=y +CONFIG_ESP_NETIF_REPORT_DATA_TRAFFIC=y # CONFIG_ESP_NETIF_RECEIVE_REPORT_ERRORS is not set # CONFIG_ESP_NETIF_L2_TAP is not set # CONFIG_ESP_NETIF_BRIDGE_EN is not set +# CONFIG_ESP_NETIF_SET_DNS_PER_DEFAULT_NETIF is not set # end of ESP NETIF Adapter # @@ -1065,6 +1235,7 @@ CONFIG_ESP_NETIF_USES_TCPIP_WITH_BSD_API=y # # PHY # +CONFIG_ESP_PHY_ENABLED=y CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y # CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20 @@ -1076,6 +1247,7 @@ CONFIG_ESP_PHY_RF_CAL_PARTIAL=y # CONFIG_ESP_PHY_RF_CAL_FULL is not set CONFIG_ESP_PHY_CALIBRATION_MODE=0 # CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set +# CONFIG_ESP_PHY_RECORD_USED_TIME is not set # end of PHY # @@ -1097,6 +1269,11 @@ CONFIG_ESP_PHY_CALIBRATION_MODE=0 # CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH is not set # end of ESP Ringbuf +# +# ESP Security Specific +# +# end of ESP Security Specific + # # ESP System Settings # @@ -1128,7 +1305,6 @@ CONFIG_ESP32_TRACEMEM_RESERVE_DRAM=0x0 CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y # CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set # CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set -# CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set CONFIG_ESP_SYSTEM_PANIC_REBOOT_DELAY_SECONDS=0 # @@ -1148,8 +1324,8 @@ CONFIG_ESP_CONSOLE_UART_DEFAULT=y # CONFIG_ESP_CONSOLE_UART_CUSTOM is not set # CONFIG_ESP_CONSOLE_NONE is not set CONFIG_ESP_CONSOLE_UART=y -CONFIG_ESP_CONSOLE_MULTIPLE_UART=y CONFIG_ESP_CONSOLE_UART_NUM=0 +CONFIG_ESP_CONSOLE_ROM_SERIAL_PORT_NUM=0 CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 CONFIG_ESP_INT_WDT=y CONFIG_ESP_INT_WDT_TIMEOUT_MS=300 @@ -1193,7 +1369,7 @@ CONFIG_ESP_IPC_ISR_ENABLE=y # end of IPC (Inter-Processor Call) # -# High resolution timer (esp_timer) +# ESP Timer (High Resolution Timer) # # CONFIG_ESP_TIMER_PROFILING is not set CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y @@ -1203,11 +1379,10 @@ CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1 # CONFIG_ESP_TIMER_SHOW_EXPERIMENTAL is not set CONFIG_ESP_TIMER_TASK_AFFINITY=0x0 CONFIG_ESP_TIMER_TASK_AFFINITY_CPU0=y -CONFIG_ESP_TIMER_ISR_AFFINITY=0x1 CONFIG_ESP_TIMER_ISR_AFFINITY_CPU0=y # CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set CONFIG_ESP_TIMER_IMPL_TG0_LAC=y -# end of High resolution timer (esp_timer) +# end of ESP Timer (High Resolution Timer) # # Wi-Fi @@ -1316,7 +1491,21 @@ CONFIG_FATFS_FS_LOCK=0 CONFIG_FATFS_TIMEOUT_MS=10000 CONFIG_FATFS_PER_FILE_CACHE=y # CONFIG_FATFS_USE_FASTSEEK is not set +CONFIG_FATFS_USE_STRFUNC_NONE=y +# CONFIG_FATFS_USE_STRFUNC_WITHOUT_CRLF_CONV is not set +# CONFIG_FATFS_USE_STRFUNC_WITH_CRLF_CONV is not set CONFIG_FATFS_VFS_FSTAT_BLKSIZE=0 +# CONFIG_FATFS_IMMEDIATE_FSYNC is not set +# CONFIG_FATFS_USE_LABEL is not set +CONFIG_FATFS_LINK_LOCK=y +# CONFIG_FATFS_USE_DYN_BUFFERS is not set + +# +# File system free space calculation behavior +# +CONFIG_FATFS_DONT_TRUST_FREE_CLUSTER_CNT=0 +CONFIG_FATFS_DONT_TRUST_LAST_ALLOC=0 +# end of File system free space calculation behavior # end of FAT Filesystem support # @@ -1338,13 +1527,21 @@ CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536 # CONFIG_FREERTOS_USE_TICK_HOOK is not set CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 # CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set +CONFIG_FREERTOS_USE_TIMERS=y +CONFIG_FREERTOS_TIMER_SERVICE_TASK_NAME="Tmr Svc" +# CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU0 is not set +# CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU1 is not set +CONFIG_FREERTOS_TIMER_TASK_NO_AFFINITY=y +CONFIG_FREERTOS_TIMER_SERVICE_TASK_CORE_AFFINITY=0x7FFFFFFF CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1 # CONFIG_FREERTOS_USE_TRACE_FACILITY is not set +# CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES is not set # CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set +# CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG is not set # end of Kernel # @@ -1352,6 +1549,7 @@ CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1 # # CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y +# CONFIG_FREERTOS_TASK_PRE_DELETION_HOOK is not set # CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y CONFIG_FREERTOS_ISR_STACKSIZE=1536 @@ -1362,14 +1560,21 @@ CONFIG_FREERTOS_CORETIMER_0=y # CONFIG_FREERTOS_CORETIMER_1 is not set CONFIG_FREERTOS_SYSTICK_USES_CCOUNT=y # CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set -# CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH is not set # CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set -CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y # end of Port +# +# Extra +# +# end of Extra + +CONFIG_FREERTOS_PORT=y CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y CONFIG_FREERTOS_DEBUG_OCDAWARE=y +CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y +CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y +CONFIG_FREERTOS_NUMBER_OF_CORES=2 # end of FreeRTOS # @@ -1394,12 +1599,17 @@ CONFIG_HEAP_TRACING_OFF=y # CONFIG_HEAP_TRACING_STANDALONE is not set # CONFIG_HEAP_TRACING_TOHOST is not set # CONFIG_HEAP_USE_HOOKS is not set +# CONFIG_HEAP_TASK_TRACKING is not set # CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set # CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH is not set # end of Heap memory debugging # -# Log output +# Log +# + +# +# Log Level # # CONFIG_LOG_DEFAULT_LEVEL_NONE is not set # CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set @@ -1412,14 +1622,34 @@ CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y # CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set # CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set CONFIG_LOG_MAXIMUM_LEVEL=3 + +# +# Level Settings +# +# CONFIG_LOG_MASTER_LEVEL is not set +CONFIG_LOG_DYNAMIC_LEVEL_CONTROL=y +# CONFIG_LOG_TAG_LEVEL_IMPL_NONE is not set +# CONFIG_LOG_TAG_LEVEL_IMPL_LINKED_LIST is not set +CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_AND_LINKED_LIST=y +# CONFIG_LOG_TAG_LEVEL_CACHE_ARRAY is not set +CONFIG_LOG_TAG_LEVEL_CACHE_BINARY_MIN_HEAP=y +CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_SIZE=31 +# end of Level Settings +# end of Log Level + +# +# Format +# CONFIG_LOG_COLORS=y CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y # CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set -# end of Log output +# end of Format +# end of Log # # LWIP # +CONFIG_LWIP_ENABLE=y CONFIG_LWIP_LOCAL_HOSTNAME="espressif" # CONFIG_LWIP_NETIF_API is not set CONFIG_LWIP_TCPIP_TASK_PRIO=18 @@ -1453,6 +1683,8 @@ CONFIG_LWIP_ESP_MLDV6_REPORT=y CONFIG_LWIP_MLDV6_TMR_INTERVAL=40 CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32 CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y +# CONFIG_LWIP_DHCP_DOES_ACD_CHECK is not set +# CONFIG_LWIP_DHCP_DOES_NOT_CHECK_OFFERED_IP is not set # CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y # CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set @@ -1466,6 +1698,8 @@ CONFIG_LWIP_DHCP_COARSE_TIMER_SECS=1 CONFIG_LWIP_DHCPS=y CONFIG_LWIP_DHCPS_LEASE_UNIT=60 CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8 +CONFIG_LWIP_DHCPS_STATIC_ENTRIES=y +CONFIG_LWIP_DHCPS_ADD_DNS=y # end of DHCP server # CONFIG_LWIP_AUTOIP is not set @@ -1493,6 +1727,7 @@ CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000 CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5760 CONFIG_LWIP_TCP_WND_DEFAULT=5760 CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 +CONFIG_LWIP_TCP_ACCEPTMBOX_SIZE=6 CONFIG_LWIP_TCP_QUEUE_OOSEQ=y CONFIG_LWIP_TCP_OOSEQ_TIMEOUT=6 CONFIG_LWIP_TCP_OOSEQ_MAX_PBUFS=4 @@ -1523,12 +1758,12 @@ CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y # CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set # CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF +CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 +CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 CONFIG_LWIP_IPV6_ND6_NUM_PREFIXES=5 CONFIG_LWIP_IPV6_ND6_NUM_ROUTERS=3 CONFIG_LWIP_IPV6_ND6_NUM_DESTINATIONS=10 # CONFIG_LWIP_PPP_SUPPORT is not set -CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 -CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 # CONFIG_LWIP_SLIP_SUPPORT is not set # @@ -1551,13 +1786,17 @@ CONFIG_LWIP_MAX_RAW_PCBS=16 CONFIG_LWIP_SNTP_MAX_SERVERS=1 # CONFIG_LWIP_DHCP_GET_NTP_SRV is not set CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000 +CONFIG_LWIP_SNTP_STARTUP_DELAY=y +CONFIG_LWIP_SNTP_MAXIMUM_STARTUP_DELAY=5000 # end of SNTP # # DNS # +CONFIG_LWIP_DNS_MAX_HOST_IP=1 CONFIG_LWIP_DNS_MAX_SERVERS=3 # CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set +# CONFIG_LWIP_DNS_SETSERVER_WITH_NETIF is not set # end of DNS CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7 @@ -1622,6 +1861,7 @@ CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y # CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set # CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set # CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set +# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEPRECATED_LIST is not set CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS=200 # end of Certificate Bundle @@ -1639,6 +1879,7 @@ CONFIG_MBEDTLS_HAVE_TIME=y # CONFIG_MBEDTLS_PLATFORM_TIME_ALT is not set # CONFIG_MBEDTLS_HAVE_TIME_DATE is not set CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y +CONFIG_MBEDTLS_SHA1_C=y CONFIG_MBEDTLS_SHA512_C=y # CONFIG_MBEDTLS_SHA3_C is not set CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y @@ -1694,6 +1935,8 @@ CONFIG_MBEDTLS_X509_CSR_PARSE_C=y # end of Certificates CONFIG_MBEDTLS_ECP_C=y +CONFIG_MBEDTLS_PK_PARSE_EC_EXTENDED=y +CONFIG_MBEDTLS_PK_PARSE_EC_COMPRESSED=y # CONFIG_MBEDTLS_DHM_C is not set CONFIG_MBEDTLS_ECDH_C=y CONFIG_MBEDTLS_ECDSA_C=y @@ -1717,6 +1960,7 @@ CONFIG_MBEDTLS_ECP_NIST_OPTIM=y # CONFIG_MBEDTLS_HKDF_C is not set # CONFIG_MBEDTLS_THREADING_C is not set CONFIG_MBEDTLS_ERROR_STRINGS=y +CONFIG_MBEDTLS_FS_IO=y # CONFIG_MBEDTLS_ALLOW_WEAK_CERTIFICATE_VERIFICATION is not set # end of mbedTLS @@ -1756,6 +2000,7 @@ CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y # NVS # # CONFIG_NVS_ASSERT_ERROR_CHECK is not set +# CONFIG_NVS_LEGACY_DUP_KEYS_COMPATIBILITY is not set # end of NVS # @@ -1818,7 +2063,9 @@ CONFIG_SPI_FLASH_BROWNOUT_RESET=y # # Features here require specific hardware (READ DOCS FIRST!) # +CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50 # CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND is not set +# CONFIG_SPI_FLASH_FORCE_ENABLE_C6_H2_SUSPEND is not set # end of Optional and Experimental Features (READ DOCS FIRST) # end of Main Flash configuration @@ -1913,6 +2160,11 @@ CONFIG_WS_BUFFER_SIZE=1024 # Ultra Low Power (ULP) Co-processor # # CONFIG_ULP_COPROC_ENABLED is not set + +# +# ULP Debugging Options +# +# end of ULP Debugging Options # end of Ultra Low Power (ULP) Co-processor # @@ -1943,6 +2195,8 @@ CONFIG_VFS_MAX_COUNT=8 # CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1 # end of Host File System I/O (Semihosting) + +CONFIG_VFS_INITIALIZE_DEV_NULL=y # end of Virtual file system # @@ -1960,6 +2214,7 @@ CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16 CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30 # CONFIG_WIFI_PROV_BLE_BONDING is not set # CONFIG_WIFI_PROV_BLE_FORCE_ENCRYPTION is not set +# CONFIG_WIFI_PROV_BLE_NOTIFY is not set # CONFIG_WIFI_PROV_KEEP_BLE_ON_AFTER_PROV is not set CONFIG_WIFI_PROV_STA_ALL_CHANNEL_SCAN=y # CONFIG_WIFI_PROV_STA_FAST_SCAN is not set @@ -1990,6 +2245,7 @@ CONFIG_FLASHMODE_DIO=y CONFIG_MONITOR_BAUD=115200 # CONFIG_OPTIMIZATION_LEVEL_DEBUG is not set # CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG is not set +# CONFIG_COMPILER_OPTIMIZATION_DEFAULT is not set CONFIG_OPTIMIZATION_LEVEL_RELEASE=y CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE=y CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y @@ -2026,6 +2282,7 @@ CONFIG_GATTS_SEND_SERVICE_CHANGE_AUTO=y CONFIG_GATTS_SEND_SERVICE_CHANGE_MODE=0 CONFIG_GATTC_ENABLE=y # CONFIG_GATTC_CACHE_NVS_FLASH is not set +CONFIG_BLE_ESTABLISH_LINK_CONNECTION_TIMEOUT=30 CONFIG_BLE_SMP_ENABLE=y # CONFIG_SMP_SLAVE_CON_PARAMS_UPD_ENABLE is not set # CONFIG_HCI_TRACE_LEVEL_NONE is not set @@ -2189,10 +2446,8 @@ CONFIG_BLUFI_TRACE_LEVEL_WARNING=y # CONFIG_BLUFI_TRACE_LEVEL_DEBUG is not set # CONFIG_BLUFI_TRACE_LEVEL_VERBOSE is not set CONFIG_BLUFI_INITIAL_TRACE_LEVEL=2 -# CONFIG_BLE_HOST_QUEUE_CONGESTION_CHECK is not set CONFIG_SMP_ENABLE=y # CONFIG_BLE_ACTIVE_SCAN_REPORT_ADV_SCAN_RSP_INDIVIDUALLY is not set -CONFIG_BLE_ESTABLISH_LINK_CONNECTION_TIMEOUT=30 # CONFIG_BTDM_CONTROLLER_MODE_BLE_ONLY is not set CONFIG_BTDM_CONTROLLER_MODE_BR_EDR_ONLY=y # CONFIG_BTDM_CONTROLLER_MODE_BTDM is not set @@ -2206,13 +2461,15 @@ CONFIG_BTDM_CONTROLLER_HCI_MODE_VHCI=y # CONFIG_BTDM_CONTROLLER_HCI_MODE_UART_H4 is not set CONFIG_BTDM_CONTROLLER_MODEM_SLEEP=y CONFIG_ADC2_DISABLE_DAC=y -# CONFIG_MCPWM_ISR_IN_IRAM is not set CONFIG_SW_COEXIST_ENABLE=y CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE=y CONFIG_ESP_WIFI_SW_COEXIST_ENABLE=y +# CONFIG_MCPWM_ISR_IN_IRAM is not set # CONFIG_EVENT_LOOP_PROFILING is not set CONFIG_POST_EVENTS_FROM_ISR=y CONFIG_POST_EVENTS_FROM_IRAM_ISR=y +CONFIG_GDBSTUB_SUPPORT_TASKS=y +CONFIG_GDBSTUB_MAX_TASKS=32 # CONFIG_OTA_ALLOW_HTTP is not set # CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y @@ -2305,8 +2562,6 @@ CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=16 CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y CONFIG_ESP32_WIFI_TX_BA_WIN=6 CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y -CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y -CONFIG_ESP32_WIFI_RX_BA_WIN=6 CONFIG_ESP32_WIFI_RX_BA_WIN=6 CONFIG_ESP32_WIFI_NVS_ENABLED=y CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 9800e77..e89cc81 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,3 +1,5 @@ +# The following lines of boilerplate have to be in your project's +# CMakeLists in this exact order for cmake to work correctly cmake_minimum_required(VERSION 3.16) include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(test_project) diff --git a/test/dependencies.lock b/test/dependencies.lock index 2c70969..8a4be6a 100644 --- a/test/dependencies.lock +++ b/test/dependencies.lock @@ -2,7 +2,7 @@ dependencies: idf: source: type: idf - version: 5.1.6 + version: 5.4.2 direct_dependencies: - idf manifest_hash: e44bf68eca6b7b264ddae08cd014cd3294c0473230381b6d6f88ed18ec879038 diff --git a/test/main/test_http_handlers.c b/test/main/test_http_handlers.c index b5be53a..a74a8bc 100644 --- a/test/main/test_http_handlers.c +++ b/test/main/test_http_handlers.c @@ -1,15 +1,276 @@ -#include "unity.h" +#include "test_utils.h" +#include "esp_wifi.h" #include -#include "main.h" +#include -// Basic mock test for HTTP handlers -void test_http_handler_mock(void) { - // Mock test - just verify the test framework is working - TEST_ASSERT_EQUAL(1, 1); +// Mock global variables to simulate main application state +static bool mock_is_bluetooth_connected = false; +static wifi_mode_t mock_current_wifi_mode = WIFI_MODE_AP; +static char mock_current_ip_address[16] = "192.168.4.1"; +static bool mock_auto_redial_enabled = false; +static uint32_t mock_redial_period_seconds = 60; + +// Mock HTTP response functions +esp_err_t mock_httpd_resp_sendstr(httpd_req_t *req, const char* str) { + mock_httpd_req_t *mock_req = (mock_httpd_req_t*)req; + strncpy(mock_req->response_buffer, str, sizeof(mock_req->response_buffer) - 1); + mock_req->response_buffer[sizeof(mock_req->response_buffer) - 1] = '\0'; + mock_req->response_len = strlen(str); + return ESP_OK; +} + +esp_err_t mock_httpd_resp_set_type(httpd_req_t *req, const char* type) { + mock_httpd_req_t *mock_req = (mock_httpd_req_t*)req; + mock_req->content_type = type; + return ESP_OK; +} + +// Mock function for httpd_resp_send_json used in handlers +static esp_err_t mock_httpd_resp_send_json(httpd_req_t *req, const char *json_str) { + mock_httpd_resp_set_type(req, "application/json"); + return mock_httpd_resp_sendstr(req, json_str); +} + +// Simplified version of status_get_handler for testing (without actual ESP32 calls) +static esp_err_t test_status_handler(httpd_req_t *req) +{ + cJSON *root = cJSON_CreateObject(); + cJSON_AddBoolToObject(root, "bluetooth_connected", mock_is_bluetooth_connected); + + const char* wifi_mode_str = "Unknown"; + if (mock_current_wifi_mode == WIFI_MODE_AP) wifi_mode_str = "AP"; + else if (mock_current_wifi_mode == WIFI_MODE_STA) wifi_mode_str = "STA"; + cJSON_AddStringToObject(root, "wifi_mode", wifi_mode_str); + + cJSON_AddStringToObject(root, "ip_address", strlen(mock_current_ip_address) > 0 ? mock_current_ip_address : "N/A"); + cJSON_AddBoolToObject(root, "auto_redial_enabled", mock_auto_redial_enabled); + cJSON_AddNumberToObject(root, "redial_period", mock_redial_period_seconds); + cJSON_AddStringToObject(root, "message", mock_is_bluetooth_connected ? "ESP32 Bluetooth connected to phone." : "ESP32 Bluetooth disconnected."); + + const char *json_response = cJSON_PrintUnformatted(root); + mock_httpd_resp_sendstr(req, json_response); + cJSON_Delete(root); + free((void*)json_response); + return ESP_OK; } -// Mock test for request validation -void test_request_validation_mock(void) { - // Mock test for HTTP request validation - TEST_ASSERT_NOT_EQUAL(0, 1); +// Simplified version of redial_get_handler for testing +static esp_err_t test_redial_handler(httpd_req_t *req) +{ + if (!mock_is_bluetooth_connected) { + mock_httpd_resp_send_json(req, "{\"error\":\"Bluetooth not connected to phone\"}"); + return ESP_FAIL; + } + if (mock_current_wifi_mode != WIFI_MODE_STA) { + mock_httpd_resp_send_json(req, "{\"error\":\"Device not in STA mode, cannot redial\"}"); + return ESP_FAIL; + } + + // Simulate successful redial command + mock_httpd_resp_send_json(req, "{\"message\":\"Redial command sent\"}"); + return ESP_OK; } + +// Simplified version of dial_get_handler for testing +static esp_err_t test_dial_handler(httpd_req_t *req, const char* number) +{ + if (!mock_is_bluetooth_connected) { + mock_httpd_resp_send_json(req, "{\"error\":\"Bluetooth not connected to phone\"}"); + return ESP_FAIL; + } + if (mock_current_wifi_mode != WIFI_MODE_STA) { + mock_httpd_resp_send_json(req, "{\"error\":\"Device not in STA mode, cannot dial\"}"); + return ESP_FAIL; + } + + if (!number || strlen(number) == 0) { + mock_httpd_resp_send_json(req, "{\"error\":\"Invalid or missing 'number' parameter\"}"); + return ESP_FAIL; + } + + // Simulate successful dial command + mock_httpd_resp_send_json(req, "{\"message\":\"Dial command sent\"}"); + return ESP_OK; +} + +// Simplified version of configure_wifi_post_handler for testing +static esp_err_t test_configure_wifi_handler(httpd_req_t *req, const char* json_content) +{ + cJSON *root = cJSON_Parse(json_content); + if (!root) { + mock_httpd_resp_send_json(req, "{\"error\":\"Invalid JSON format.\"}"); + return ESP_FAIL; + } + + cJSON *ssid_json = cJSON_GetObjectItemCaseSensitive(root, "ssid"); + cJSON *password_json = cJSON_GetObjectItemCaseSensitive(root, "password"); + + if (cJSON_IsString(ssid_json) && (ssid_json->valuestring != NULL) && + cJSON_IsString(password_json) && (password_json->valuestring != NULL)) { + + cJSON_Delete(root); + mock_httpd_resp_send_json(req, "{\"message\":\"Wi-Fi credentials received and device is attempting to connect to home network.\"}"); + return ESP_OK; + } else { + cJSON_Delete(root); + mock_httpd_resp_send_json(req, "{\"error\":\"Missing or invalid 'ssid' or 'password' in JSON.\"}"); + return ESP_FAIL; + } +} + +// Simplified version of set_auto_redial_post_handler for testing +static esp_err_t test_set_auto_redial_handler(httpd_req_t *req, const char* json_content) +{ + cJSON *root = cJSON_Parse(json_content); + if (!root) { + mock_httpd_resp_send_json(req, "{\"error\":\"Invalid JSON format.\"}"); + return ESP_FAIL; + } + + cJSON *enabled_json = cJSON_GetObjectItemCaseSensitive(root, "enabled"); + cJSON *period_json = cJSON_GetObjectItemCaseSensitive(root, "period"); + + if (cJSON_IsBool(enabled_json) && cJSON_IsNumber(period_json)) { + bool enabled = cJSON_IsTrue(enabled_json); + uint32_t period = (uint32_t)cJSON_GetNumberValue(period_json); + + // Clamp period to valid range + if (period < 10) period = 10; + if (period > 84600) period = 84600; + + mock_auto_redial_enabled = enabled; + mock_redial_period_seconds = period; + + cJSON_Delete(root); + mock_httpd_resp_send_json(req, "{\"message\":\"Automatic redial settings updated.\"}"); + return ESP_OK; + } else { + cJSON_Delete(root); + mock_httpd_resp_send_json(req, "{\"error\":\"Missing or invalid 'enabled' or 'period' in JSON.\"}"); + return ESP_FAIL; + } +} + +// Test cases for HTTP handlers + +void test_http_handler_redial_bluetooth_disconnected(void) +{ + mock_httpd_req_t mock_req = {0}; + + // Set up test conditions: Bluetooth disconnected + mock_is_bluetooth_connected = false; + mock_current_wifi_mode = WIFI_MODE_STA; + + esp_err_t result = test_redial_handler((httpd_req_t*)&mock_req); + + TEST_ASSERT_EQUAL(ESP_FAIL, result); + TEST_ASSERT_TRUE(strstr(mock_req.response_buffer, "Bluetooth not connected") != NULL); +} + +void test_http_handler_dial_valid_number(void) +{ + mock_httpd_req_t mock_req = {0}; + + // Set up test conditions: Connected and in STA mode + mock_is_bluetooth_connected = true; + mock_current_wifi_mode = WIFI_MODE_STA; + + esp_err_t result = test_dial_handler((httpd_req_t*)&mock_req, "+447911123456"); + + TEST_ASSERT_EQUAL(ESP_OK, result); + TEST_ASSERT_TRUE(strstr(mock_req.response_buffer, "Dial command sent") != NULL); +} + +void test_http_handler_dial_invalid_number(void) +{ + mock_httpd_req_t mock_req = {0}; + + // Set up test conditions: Connected and in STA mode + mock_is_bluetooth_connected = true; + mock_current_wifi_mode = WIFI_MODE_STA; + + esp_err_t result = test_dial_handler((httpd_req_t*)&mock_req, ""); + + TEST_ASSERT_EQUAL(ESP_FAIL, result); + TEST_ASSERT_TRUE(strstr(mock_req.response_buffer, "Invalid or missing") != NULL); +} + +void test_http_handler_status_response(void) +{ + mock_httpd_req_t mock_req = {0}; + + // Set up test conditions + mock_is_bluetooth_connected = true; + mock_current_wifi_mode = WIFI_MODE_STA; + strcpy(mock_current_ip_address, "192.168.1.100"); + mock_auto_redial_enabled = true; + mock_redial_period_seconds = 60; + + esp_err_t result = test_status_handler((httpd_req_t*)&mock_req); + + TEST_ASSERT_EQUAL(ESP_OK, result); + + // Parse the response and verify fields + cJSON *response = cJSON_Parse(mock_req.response_buffer); + TEST_ASSERT_NOT_NULL(response); + + cJSON *bt_field = cJSON_GetObjectItemCaseSensitive(response, "bluetooth_connected"); + cJSON *wifi_field = cJSON_GetObjectItemCaseSensitive(response, "wifi_mode"); + cJSON *ip_field = cJSON_GetObjectItemCaseSensitive(response, "ip_address"); + + TEST_ASSERT_TRUE(cJSON_IsTrue(bt_field)); + TEST_ASSERT_EQUAL_STRING("STA", wifi_field->valuestring); + TEST_ASSERT_EQUAL_STRING("192.168.1.100", ip_field->valuestring); + + cJSON_Delete(response); +} + +void test_http_handler_configure_wifi_valid_json(void) +{ + mock_httpd_req_t mock_req = {0}; + + const char* valid_json = "{\"ssid\":\"TestNetwork\",\"password\":\"testpass\"}"; + + esp_err_t result = test_configure_wifi_handler((httpd_req_t*)&mock_req, valid_json); + + TEST_ASSERT_EQUAL(ESP_OK, result); + TEST_ASSERT_TRUE(strstr(mock_req.response_buffer, "Wi-Fi credentials received") != NULL); +} + +void test_http_handler_configure_wifi_invalid_json(void) +{ + mock_httpd_req_t mock_req = {0}; + + const char* invalid_json = "{\"ssid\":\"TestNetwork\",\"password\":}"; + + esp_err_t result = test_configure_wifi_handler((httpd_req_t*)&mock_req, invalid_json); + + TEST_ASSERT_EQUAL(ESP_FAIL, result); + TEST_ASSERT_TRUE(strstr(mock_req.response_buffer, "Invalid JSON format") != NULL); +} + +void test_http_handler_set_auto_redial_valid(void) +{ + mock_httpd_req_t mock_req = {0}; + + const char* valid_json = "{\"enabled\":true,\"period\":120}"; + + esp_err_t result = test_set_auto_redial_handler((httpd_req_t*)&mock_req, valid_json); + + TEST_ASSERT_EQUAL(ESP_OK, result); + TEST_ASSERT_TRUE(strstr(mock_req.response_buffer, "settings updated") != NULL); + TEST_ASSERT_EQUAL(true, mock_auto_redial_enabled); + TEST_ASSERT_EQUAL(120, mock_redial_period_seconds); +} + +void test_http_handler_set_auto_redial_invalid(void) +{ + mock_httpd_req_t mock_req = {0}; + + const char* invalid_json = "{\"enabled\":\"invalid\",\"period\":120}"; + + esp_err_t result = test_set_auto_redial_handler((httpd_req_t*)&mock_req, invalid_json); + + TEST_ASSERT_EQUAL(ESP_FAIL, result); + TEST_ASSERT_TRUE(strstr(mock_req.response_buffer, "Missing or invalid") != NULL); +} \ No newline at end of file diff --git a/test/main/test_main.c b/test/main/test_main.c index b2b6c0c..31feb76 100644 --- a/test/main/test_main.c +++ b/test/main/test_main.c @@ -1,53 +1,53 @@ -#include -#include -#include "unity.h" #include "test_utils.h" -#include "test_http_handlers.h" -#include "test_nvs_utils.h" -/** - * @brief Tells the QEMU emulator to exit with a success status code. - */ -static void qemu_exit_success(void) +void run_all_tests(void) { - // The address of the QEMU power-off device - volatile uint32_t *addr = (volatile uint32_t *)0x3FF00004; - // Write the magic value to trigger a successful power-off - *addr = 1; -} + printf("\n"); + printf("ESP32 Remotehead Unit Tests\n"); + printf("===========================\n"); + + UNITY_BEGIN(); -/** - * @brief Tells the QEMU emulator to exit with a failure status code. - */ -static void qemu_exit_failure(void) -{ - volatile uint32_t *addr = (volatile uint32_t *)0x3FF00004; - // Write a different value (e.g., 3) for failure. QEMU exits with status (val >> 1). - *addr = 3; + // Utility function tests + printf("Running utility function tests...\n"); + RUN_TEST(test_wifi_mode_string_conversion); + RUN_TEST(test_phone_number_validation); + RUN_TEST(test_json_validation); + RUN_TEST(test_status_response_generation); + + // HTTP handler tests + printf("Running HTTP handler tests...\n"); + RUN_TEST(test_http_handler_redial_bluetooth_disconnected); + RUN_TEST(test_http_handler_dial_valid_number); + RUN_TEST(test_http_handler_dial_invalid_number); + RUN_TEST(test_http_handler_status_response); + RUN_TEST(test_http_handler_configure_wifi_valid_json); + RUN_TEST(test_http_handler_configure_wifi_invalid_json); + RUN_TEST(test_http_handler_set_auto_redial_valid); + RUN_TEST(test_http_handler_set_auto_redial_invalid); + + // NVS operation tests + printf("Running NVS operation tests...\n"); + RUN_TEST(test_nvs_wifi_credentials_save_load); + RUN_TEST(test_nvs_auto_redial_settings_save_load); + RUN_TEST(test_nvs_missing_data_handling); + RUN_TEST(test_nvs_error_handling); + + printf("All tests completed.\n"); + UNITY_END(); } void app_main(void) { - UNITY_BEGIN(); - - // Utility tests - RUN_TEST(test_url_decode_basic); - RUN_TEST(test_url_decode_plus_sign); - RUN_TEST(test_url_decode_hex_chars); - RUN_TEST(test_basic_string_validation); - - // HTTP handler tests - RUN_TEST(test_http_handler_mock); - RUN_TEST(test_request_validation_mock); - - // NVS tests - RUN_TEST(test_nvs_mock); - RUN_TEST(test_settings_persistence_mock); - - // UNITY_END() returns the number of failures. - int failures = UNITY_END(); - - // Pass the failure count to the official exit function. - // This will exit QEMU with a status of 0 for success or 1 for failure. - test_utils_finish(failures); -} + run_all_tests(); + + // After tests pass, print a success message and halt in a loop. + printf("Tests finished, halting CPU.\n"); + fflush(stdout); // Ensure the message is printed before halting + + // Halt the CPU. The test runner will see the test pass messages + // and exit based on its timeout. + while (1) { + ; + } +} \ No newline at end of file diff --git a/test/main/test_main_runner.c b/test/main/test_main_runner.c new file mode 100644 index 0000000..e4f9b70 --- /dev/null +++ b/test/main/test_main_runner.c @@ -0,0 +1,13 @@ +#include "unity.h" +#include "esp_log.h" + +// Forward declare the test runner function from main_test component +extern void run_all_tests(void); + +void app_main(void) +{ + ESP_LOGI("TEST", "Starting ESP32 Remotehead Unit Tests"); + + // Call the test runner from main_test component + run_all_tests(); +} \ No newline at end of file diff --git a/test/main/test_nvs_utils.c b/test/main/test_nvs_utils.c index e434a21..53bd1f2 100644 --- a/test/main/test_nvs_utils.c +++ b/test/main/test_nvs_utils.c @@ -1,15 +1,316 @@ -#include "unity.h" +#include "test_utils.h" #include -#include "main.h" -// Basic mock test for NVS operations -void test_nvs_mock(void) { - // Mock test - just verify the test framework is working - TEST_ASSERT_EQUAL(1, 1); +// Mock NVS handle and operations for testing +#define MOCK_NVS_NAMESPACE "test_redial_config" +#define MOCK_NVS_KEY_SSID "ssid" +#define MOCK_NVS_KEY_PASSWORD "password" +#define MOCK_NVS_KEY_AUTO_REDIAL_ENABLED "auto_en" +#define MOCK_NVS_KEY_REDIAL_PERIOD "redial_period" + +// Simple mock storage for NVS values +static struct { + char ssid[32]; + char password[64]; + uint8_t auto_redial_enabled; + uint32_t redial_period; + bool ssid_exists; + bool password_exists; + bool auto_redial_enabled_exists; + bool redial_period_exists; +} mock_nvs_storage = {0}; + +// Mock NVS functions +static esp_err_t mock_nvs_open(const char* namespace_name, nvs_open_mode_t open_mode, nvs_handle_t *out_handle) { + // For testing, we just return a dummy handle + *out_handle = 0x1234; + return ESP_OK; +} + +static void mock_nvs_close(nvs_handle_t handle) { + // Nothing to do in mock +} + +static esp_err_t mock_nvs_get_str(nvs_handle_t handle, const char* key, char* out_value, size_t* length) { + if (strcmp(key, MOCK_NVS_KEY_SSID) == 0) { + if (!mock_nvs_storage.ssid_exists) { + return ESP_ERR_NVS_NOT_FOUND; + } + size_t required_size = strlen(mock_nvs_storage.ssid) + 1; + if (*length < required_size) { + *length = required_size; + return ESP_ERR_NVS_INVALID_LENGTH; + } + strcpy(out_value, mock_nvs_storage.ssid); + *length = required_size; + return ESP_OK; + } else if (strcmp(key, MOCK_NVS_KEY_PASSWORD) == 0) { + if (!mock_nvs_storage.password_exists) { + return ESP_ERR_NVS_NOT_FOUND; + } + size_t required_size = strlen(mock_nvs_storage.password) + 1; + if (*length < required_size) { + *length = required_size; + return ESP_ERR_NVS_INVALID_LENGTH; + } + strcpy(out_value, mock_nvs_storage.password); + *length = required_size; + return ESP_OK; + } + return ESP_ERR_NVS_NOT_FOUND; +} + +static esp_err_t mock_nvs_set_str(nvs_handle_t handle, const char* key, const char* value) { + if (strcmp(key, MOCK_NVS_KEY_SSID) == 0) { + strncpy(mock_nvs_storage.ssid, value, sizeof(mock_nvs_storage.ssid) - 1); + mock_nvs_storage.ssid[sizeof(mock_nvs_storage.ssid) - 1] = '\0'; + mock_nvs_storage.ssid_exists = true; + return ESP_OK; + } else if (strcmp(key, MOCK_NVS_KEY_PASSWORD) == 0) { + strncpy(mock_nvs_storage.password, value, sizeof(mock_nvs_storage.password) - 1); + mock_nvs_storage.password[sizeof(mock_nvs_storage.password) - 1] = '\0'; + mock_nvs_storage.password_exists = true; + return ESP_OK; + } + return ESP_ERR_NVS_INVALID_NAME; +} + +static esp_err_t mock_nvs_get_u8(nvs_handle_t handle, const char* key, uint8_t* out_value) { + if (strcmp(key, MOCK_NVS_KEY_AUTO_REDIAL_ENABLED) == 0) { + if (!mock_nvs_storage.auto_redial_enabled_exists) { + return ESP_ERR_NVS_NOT_FOUND; + } + *out_value = mock_nvs_storage.auto_redial_enabled; + return ESP_OK; + } + return ESP_ERR_NVS_NOT_FOUND; +} + +static esp_err_t mock_nvs_set_u8(nvs_handle_t handle, const char* key, uint8_t value) { + if (strcmp(key, MOCK_NVS_KEY_AUTO_REDIAL_ENABLED) == 0) { + mock_nvs_storage.auto_redial_enabled = value; + mock_nvs_storage.auto_redial_enabled_exists = true; + return ESP_OK; + } + return ESP_ERR_NVS_INVALID_NAME; } -// Mock test for settings persistence -void test_settings_persistence_mock(void) { - // Mock test for NVS settings - TEST_ASSERT_NOT_EQUAL(0, 1); +static esp_err_t mock_nvs_get_u32(nvs_handle_t handle, const char* key, uint32_t* out_value) { + if (strcmp(key, MOCK_NVS_KEY_REDIAL_PERIOD) == 0) { + if (!mock_nvs_storage.redial_period_exists) { + return ESP_ERR_NVS_NOT_FOUND; + } + *out_value = mock_nvs_storage.redial_period; + return ESP_OK; + } + return ESP_ERR_NVS_NOT_FOUND; } + +static esp_err_t mock_nvs_set_u32(nvs_handle_t handle, const char* key, uint32_t value) { + if (strcmp(key, MOCK_NVS_KEY_REDIAL_PERIOD) == 0) { + mock_nvs_storage.redial_period = value; + mock_nvs_storage.redial_period_exists = true; + return ESP_OK; + } + return ESP_ERR_NVS_INVALID_NAME; +} + +static esp_err_t mock_nvs_commit(nvs_handle_t handle) { + return ESP_OK; +} + +// Test implementation of NVS functions (simplified versions from main.c) +static bool test_load_wifi_credentials_from_nvs(char *ssid, char *password, size_t ssid_len, size_t password_len) { + nvs_handle_t nvs_handle; + esp_err_t err = mock_nvs_open(MOCK_NVS_NAMESPACE, NVS_READONLY, &nvs_handle); + if (err != ESP_OK) { + return false; + } + + size_t required_size_ssid = ssid_len; + size_t required_size_password = password_len; + + err = mock_nvs_get_str(nvs_handle, MOCK_NVS_KEY_SSID, ssid, &required_size_ssid); + if (err != ESP_OK && err != ESP_ERR_NVS_NOT_FOUND) { + mock_nvs_close(nvs_handle); + return false; + } + + err = mock_nvs_get_str(nvs_handle, MOCK_NVS_KEY_PASSWORD, password, &required_size_password); + if (err != ESP_OK && err != ESP_ERR_NVS_NOT_FOUND) { + mock_nvs_close(nvs_handle); + return false; + } + + mock_nvs_close(nvs_handle); + + if (err == ESP_ERR_NVS_NOT_FOUND || strlen(ssid) == 0) { + return false; + } + + return true; +} + +static void test_save_wifi_credentials_to_nvs(const char *ssid, const char *password) { + nvs_handle_t nvs_handle; + esp_err_t err = mock_nvs_open(MOCK_NVS_NAMESPACE, NVS_READWRITE, &nvs_handle); + if (err != ESP_OK) { + return; + } + + mock_nvs_set_str(nvs_handle, MOCK_NVS_KEY_SSID, ssid); + mock_nvs_set_str(nvs_handle, MOCK_NVS_KEY_PASSWORD, password); + mock_nvs_commit(nvs_handle); + mock_nvs_close(nvs_handle); +} + +static bool test_load_auto_redial_settings_from_nvs(bool *auto_redial_enabled, uint32_t *redial_period_seconds) { + nvs_handle_t nvs_handle; + esp_err_t err = mock_nvs_open(MOCK_NVS_NAMESPACE, NVS_READONLY, &nvs_handle); + if (err != ESP_OK) { + return false; + } + + err = mock_nvs_get_u32(nvs_handle, MOCK_NVS_KEY_REDIAL_PERIOD, redial_period_seconds); + if (err == ESP_ERR_NVS_NOT_FOUND) { + *redial_period_seconds = 60; // Default + } else if (err != ESP_OK) { + mock_nvs_close(nvs_handle); + return false; + } + + uint8_t enabled_u8 = 0; + err = mock_nvs_get_u8(nvs_handle, MOCK_NVS_KEY_AUTO_REDIAL_ENABLED, &enabled_u8); + if (err == ESP_ERR_NVS_NOT_FOUND) { + *auto_redial_enabled = false; // Default + } else if (err != ESP_OK) { + mock_nvs_close(nvs_handle); + return false; + } else { + *auto_redial_enabled = (enabled_u8 != 0); + } + + mock_nvs_close(nvs_handle); + return true; +} + +static void test_save_auto_redial_settings_to_nvs(bool enabled, uint32_t period) { + nvs_handle_t nvs_handle; + esp_err_t err = mock_nvs_open(MOCK_NVS_NAMESPACE, NVS_READWRITE, &nvs_handle); + if (err != ESP_OK) { + return; + } + + mock_nvs_set_u8(nvs_handle, MOCK_NVS_KEY_AUTO_REDIAL_ENABLED, enabled ? 1 : 0); + mock_nvs_set_u32(nvs_handle, MOCK_NVS_KEY_REDIAL_PERIOD, period); + mock_nvs_commit(nvs_handle); + mock_nvs_close(nvs_handle); +} + +// Reset mock storage for each test +static void reset_mock_nvs_storage(void) { + memset(&mock_nvs_storage, 0, sizeof(mock_nvs_storage)); +} + +// Test cases for NVS operations + +void test_nvs_wifi_credentials_save_load(void) { + reset_mock_nvs_storage(); + + const char* test_ssid = "TestNetwork"; + const char* test_password = "testpassword123"; + char loaded_ssid[32]; + char loaded_password[64]; + + // Test saving credentials + test_save_wifi_credentials_to_nvs(test_ssid, test_password); + + // Verify they were saved in mock storage + TEST_ASSERT_TRUE(mock_nvs_storage.ssid_exists); + TEST_ASSERT_TRUE(mock_nvs_storage.password_exists); + TEST_ASSERT_EQUAL_STRING(test_ssid, mock_nvs_storage.ssid); + TEST_ASSERT_EQUAL_STRING(test_password, mock_nvs_storage.password); + + // Test loading credentials + bool result = test_load_wifi_credentials_from_nvs(loaded_ssid, loaded_password, sizeof(loaded_ssid), sizeof(loaded_password)); + + TEST_ASSERT_TRUE(result); + TEST_ASSERT_EQUAL_STRING(test_ssid, loaded_ssid); + TEST_ASSERT_EQUAL_STRING(test_password, loaded_password); +} + +void test_nvs_auto_redial_settings_save_load(void) { + reset_mock_nvs_storage(); + + bool test_enabled = true; + uint32_t test_period = 120; + bool loaded_enabled; + uint32_t loaded_period; + + // Test saving auto redial settings + test_save_auto_redial_settings_to_nvs(test_enabled, test_period); + + // Verify they were saved in mock storage + TEST_ASSERT_TRUE(mock_nvs_storage.auto_redial_enabled_exists); + TEST_ASSERT_TRUE(mock_nvs_storage.redial_period_exists); + TEST_ASSERT_EQUAL(1, mock_nvs_storage.auto_redial_enabled); + TEST_ASSERT_EQUAL(120, mock_nvs_storage.redial_period); + + // Test loading auto redial settings + bool result = test_load_auto_redial_settings_from_nvs(&loaded_enabled, &loaded_period); + + TEST_ASSERT_TRUE(result); + TEST_ASSERT_EQUAL(test_enabled, loaded_enabled); + TEST_ASSERT_EQUAL(test_period, loaded_period); +} + +void test_nvs_missing_data_handling(void) { + reset_mock_nvs_storage(); + + char loaded_ssid[32]; + char loaded_password[64]; + bool loaded_enabled; + uint32_t loaded_period; + + // Test loading when no data exists + bool wifi_result = test_load_wifi_credentials_from_nvs(loaded_ssid, loaded_password, sizeof(loaded_ssid), sizeof(loaded_password)); + bool redial_result = test_load_auto_redial_settings_from_nvs(&loaded_enabled, &loaded_period); + + // Wi-Fi credentials should fail to load when missing + TEST_ASSERT_FALSE(wifi_result); + + // Auto redial settings should load with defaults when missing + TEST_ASSERT_TRUE(redial_result); + TEST_ASSERT_EQUAL(false, loaded_enabled); // Default + TEST_ASSERT_EQUAL(60, loaded_period); // Default +} + +void test_nvs_error_handling(void) { + reset_mock_nvs_storage(); + + // Test with empty SSID + test_save_wifi_credentials_to_nvs("", "password"); + + char loaded_ssid[32]; + char loaded_password[64]; + + bool result = test_load_wifi_credentials_from_nvs(loaded_ssid, loaded_password, sizeof(loaded_ssid), sizeof(loaded_password)); + + // Should fail because SSID is empty + TEST_ASSERT_FALSE(result); + + // Test boundary values for auto redial period + bool test_enabled = true; + bool loaded_enabled; + uint32_t loaded_period; + + // Test with minimum boundary + test_save_auto_redial_settings_to_nvs(test_enabled, 10); + test_load_auto_redial_settings_from_nvs(&loaded_enabled, &loaded_period); + TEST_ASSERT_EQUAL(10, loaded_period); + + // Test with maximum boundary + test_save_auto_redial_settings_to_nvs(test_enabled, 84600); + test_load_auto_redial_settings_from_nvs(&loaded_enabled, &loaded_period); + TEST_ASSERT_EQUAL(84600, loaded_period); +} \ No newline at end of file diff --git a/test/main/test_utils.c b/test/main/test_utils.c index 5fe46f7..00c03d5 100644 --- a/test/main/test_utils.c +++ b/test/main/test_utils.c @@ -1,58 +1,182 @@ -#include "unity.h" +#include "test_utils.h" +#include "esp_wifi.h" #include -#include -#include "esp_wifi.h" // Include for wifi_mode_t -#include "main.h" -// Mock implementation of url_decode for testing -void url_decode(char *str) { - char *p_str = str; - char *p_decoded = str; - while (*p_str) { - if (*p_str == '%') { - if (p_str[1] && p_str[2]) { - // Read the two hex digits that follow '%' - char hex_buf[3] = { p_str[1], p_str[2], '\0' }; - // Convert the hex value to a character - *p_decoded++ = (char)strtol(hex_buf, NULL, 16); - p_str += 3; // Move the source pointer past the encoded part (e.g., past "%2C") - } else { - *p_decoded++ = *p_str++; - } - } else if (*p_str == '+') { - // A '+' in a URL represents a space - *p_decoded++ = ' '; - p_str++; - } else { - // Copy the character as-is - *p_decoded++ = *p_str++; - } - } - *p_decoded = '\0'; // Null-terminate the new, shorter string -} +// Test suite for utility functions -// Test the url_decode function -void test_url_decode_basic(void) { - char test_str[] = "hello%20world"; - url_decode(test_str); - TEST_ASSERT_EQUAL_STRING("hello world", test_str); +void test_wifi_mode_string_conversion(void) +{ + // Test Wi-Fi mode to string conversion logic + const char* ap_mode_str = "AP"; + const char* sta_mode_str = "STA"; + const char* unknown_mode_str = "Unknown"; + + // Test the conversion logic used in status_get_handler + wifi_mode_t test_mode; + const char* mode_str; + + test_mode = WIFI_MODE_AP; + if (test_mode == WIFI_MODE_AP) mode_str = "AP"; + else if (test_mode == WIFI_MODE_STA) mode_str = "STA"; + else mode_str = "Unknown"; + TEST_ASSERT_EQUAL_STRING(ap_mode_str, mode_str); + + test_mode = WIFI_MODE_STA; + if (test_mode == WIFI_MODE_AP) mode_str = "AP"; + else if (test_mode == WIFI_MODE_STA) mode_str = "STA"; + else mode_str = "Unknown"; + TEST_ASSERT_EQUAL_STRING(sta_mode_str, mode_str); + + test_mode = WIFI_MODE_NULL; + if (test_mode == WIFI_MODE_AP) mode_str = "AP"; + else if (test_mode == WIFI_MODE_STA) mode_str = "STA"; + else mode_str = "Unknown"; + TEST_ASSERT_EQUAL_STRING(unknown_mode_str, mode_str); } -void test_url_decode_plus_sign(void) { - char test_str[] = "hello+world"; - url_decode(test_str); - TEST_ASSERT_EQUAL_STRING("hello world", test_str); +void test_phone_number_validation(void) +{ + // Test phone number format validation + // These would be valid phone numbers for dialing + const char* valid_numbers[] = { + "+447911123456", + "07911123456", + "01234567890", + "123456", + "*31#" + }; + + const char* invalid_numbers[] = { + "", + "abc123", + "++44123456", + "+44-791-112-3456" // Contains dashes which might cause issues + }; + + // Test valid numbers (length and basic character checks) + for (int i = 0; i < sizeof(valid_numbers)/sizeof(valid_numbers[0]); i++) { + size_t len = strlen(valid_numbers[i]); + TEST_ASSERT_GREATER_THAN(0, len); + TEST_ASSERT_LESS_THAN(64, len); // Should fit in our parameter buffer + } + + // Test invalid numbers + for (int i = 0; i < sizeof(invalid_numbers)/sizeof(invalid_numbers[0]); i++) { + if (strlen(invalid_numbers[i]) == 0) { + TEST_ASSERT_EQUAL(0, strlen(invalid_numbers[i])); + } + } } -void test_url_decode_hex_chars(void) { - char test_str[] = "test%2Cvalue"; - url_decode(test_str); - TEST_ASSERT_EQUAL_STRING("test,value", test_str); +void test_json_validation(void) +{ + // Test JSON parsing and validation + const char* valid_wifi_json = "{\"ssid\":\"TestNetwork\",\"password\":\"testpass\"}"; + const char* invalid_wifi_json = "{\"ssid\":\"TestNetwork\",\"password\":}"; + const char* valid_redial_json = "{\"enabled\":true,\"period\":60}"; + const char* invalid_redial_json = "{\"enabled\":\"invalid\",\"period\":60}"; + + // Test valid Wi-Fi configuration JSON + cJSON *root = cJSON_Parse(valid_wifi_json); + TEST_ASSERT_NOT_NULL(root); + + cJSON *ssid_json = cJSON_GetObjectItemCaseSensitive(root, "ssid"); + cJSON *password_json = cJSON_GetObjectItemCaseSensitive(root, "password"); + + TEST_ASSERT_TRUE(cJSON_IsString(ssid_json) && (ssid_json->valuestring != NULL)); + TEST_ASSERT_TRUE(cJSON_IsString(password_json) && (password_json->valuestring != NULL)); + TEST_ASSERT_EQUAL_STRING("TestNetwork", ssid_json->valuestring); + TEST_ASSERT_EQUAL_STRING("testpass", password_json->valuestring); + + cJSON_Delete(root); + + // Test invalid Wi-Fi configuration JSON + root = cJSON_Parse(invalid_wifi_json); + TEST_ASSERT_NULL(root); + + // Test valid auto-redial JSON + root = cJSON_Parse(valid_redial_json); + TEST_ASSERT_NOT_NULL(root); + + cJSON *enabled_json = cJSON_GetObjectItemCaseSensitive(root, "enabled"); + cJSON *period_json = cJSON_GetObjectItemCaseSensitive(root, "period"); + + TEST_ASSERT_TRUE(cJSON_IsBool(enabled_json)); + TEST_ASSERT_TRUE(cJSON_IsNumber(period_json)); + TEST_ASSERT_TRUE(cJSON_IsTrue(enabled_json)); + TEST_ASSERT_EQUAL(60, (int)cJSON_GetNumberValue(period_json)); + + cJSON_Delete(root); + + // Test invalid auto-redial JSON + root = cJSON_Parse(invalid_redial_json); + TEST_ASSERT_NOT_NULL(root); // JSON parses but validation should fail + + enabled_json = cJSON_GetObjectItemCaseSensitive(root, "enabled"); + period_json = cJSON_GetObjectItemCaseSensitive(root, "period"); + + TEST_ASSERT_FALSE(cJSON_IsBool(enabled_json)); // "invalid" is a string, not bool + TEST_ASSERT_TRUE(cJSON_IsNumber(period_json)); + + cJSON_Delete(root); } -// Mock test for basic string validation -void test_basic_string_validation(void) { - // Simple test to ensure test framework works - TEST_ASSERT_EQUAL_STRING("test", "test"); - TEST_ASSERT_NOT_EQUAL("different", "strings"); -} +void test_status_response_generation(void) +{ + // Test status JSON response generation + bool test_bluetooth_connected = true; + wifi_mode_t test_wifi_mode = WIFI_MODE_STA; + const char* test_ip_address = "192.168.1.100"; + bool test_auto_redial_enabled = true; + uint32_t test_redial_period = 60; + + cJSON *root = cJSON_CreateObject(); + TEST_ASSERT_NOT_NULL(root); + + cJSON_AddBoolToObject(root, "bluetooth_connected", test_bluetooth_connected); + + const char* wifi_mode_str = "Unknown"; + if (test_wifi_mode == WIFI_MODE_AP) wifi_mode_str = "AP"; + else if (test_wifi_mode == WIFI_MODE_STA) wifi_mode_str = "STA"; + cJSON_AddStringToObject(root, "wifi_mode", wifi_mode_str); + + cJSON_AddStringToObject(root, "ip_address", strlen(test_ip_address) > 0 ? test_ip_address : "N/A"); + cJSON_AddBoolToObject(root, "auto_redial_enabled", test_auto_redial_enabled); + cJSON_AddNumberToObject(root, "redial_period", test_redial_period); + + const char* message = test_bluetooth_connected ? "ESP32 Bluetooth connected to phone." : "ESP32 Bluetooth disconnected."; + cJSON_AddStringToObject(root, "message", message); + + // Verify the JSON structure + cJSON *bt_field = cJSON_GetObjectItemCaseSensitive(root, "bluetooth_connected"); + cJSON *wifi_field = cJSON_GetObjectItemCaseSensitive(root, "wifi_mode"); + cJSON *ip_field = cJSON_GetObjectItemCaseSensitive(root, "ip_address"); + cJSON *redial_enabled_field = cJSON_GetObjectItemCaseSensitive(root, "auto_redial_enabled"); + cJSON *redial_period_field = cJSON_GetObjectItemCaseSensitive(root, "redial_period"); + cJSON *message_field = cJSON_GetObjectItemCaseSensitive(root, "message"); + + TEST_ASSERT_TRUE(cJSON_IsBool(bt_field)); + TEST_ASSERT_TRUE(cJSON_IsString(wifi_field)); + TEST_ASSERT_TRUE(cJSON_IsString(ip_field)); + TEST_ASSERT_TRUE(cJSON_IsBool(redial_enabled_field)); + TEST_ASSERT_TRUE(cJSON_IsNumber(redial_period_field)); + TEST_ASSERT_TRUE(cJSON_IsString(message_field)); + + TEST_ASSERT_TRUE(cJSON_IsTrue(bt_field)); + TEST_ASSERT_EQUAL_STRING("STA", wifi_field->valuestring); + TEST_ASSERT_EQUAL_STRING("192.168.1.100", ip_field->valuestring); + TEST_ASSERT_TRUE(cJSON_IsTrue(redial_enabled_field)); + TEST_ASSERT_EQUAL(60, (int)cJSON_GetNumberValue(redial_period_field)); + TEST_ASSERT_EQUAL_STRING("ESP32 Bluetooth connected to phone.", message_field->valuestring); + + const char *json_response = cJSON_PrintUnformatted(root); + TEST_ASSERT_NOT_NULL(json_response); + + // Verify we can parse it back + cJSON *parsed = cJSON_Parse(json_response); + TEST_ASSERT_NOT_NULL(parsed); + + cJSON_Delete(parsed); + cJSON_Delete(root); + free((void*)json_response); +} \ No newline at end of file diff --git a/test/main/test_utils.h b/test/main/test_utils.h index b431688..209aa51 100644 --- a/test/main/test_utils.h +++ b/test/main/test_utils.h @@ -1,6 +1,48 @@ #pragma once -void test_url_decode_basic(void); -void test_url_decode_plus_sign(void); -void test_url_decode_hex_chars(void); -void test_basic_string_validation(void); +#include "unity.h" +#include "esp_log.h" +#include "esp_http_server.h" +#include "esp_wifi.h" +#include "cJSON.h" +#include "nvs.h" +#include "nvs_flash.h" +#include +#include + +// Main test runner function +void run_all_tests(void); + +// Test function declarations +void test_wifi_mode_string_conversion(void); +void test_phone_number_validation(void); +void test_json_validation(void); +void test_status_response_generation(void); + +void test_http_handler_redial_bluetooth_disconnected(void); +void test_http_handler_dial_valid_number(void); +void test_http_handler_dial_invalid_number(void); +void test_http_handler_status_response(void); +void test_http_handler_configure_wifi_valid_json(void); +void test_http_handler_configure_wifi_invalid_json(void); +void test_http_handler_set_auto_redial_valid(void); +void test_http_handler_set_auto_redial_invalid(void); + +void test_nvs_wifi_credentials_save_load(void); +void test_nvs_auto_redial_settings_save_load(void); +void test_nvs_missing_data_handling(void); +void test_nvs_error_handling(void); + +// Mock HTTP request structure for testing +typedef struct { + const char* query_string; + const char* content; + size_t content_len; + char response_buffer[1024]; + size_t response_len; + const char* content_type; +} mock_httpd_req_t; + +// Mock functions +esp_err_t mock_httpd_resp_sendstr(httpd_req_t *req, const char* str); +esp_err_t mock_httpd_resp_set_type(httpd_req_t *req, const char* type); \ No newline at end of file diff --git a/test/sdkconfig b/test/sdkconfig index 2f65c4e..5c9459c 100644 --- a/test/sdkconfig +++ b/test/sdkconfig @@ -1,10 +1,7 @@ # # Automatically generated file. DO NOT EDIT. -# Espressif IoT Development Framework (ESP-IDF) 5.1.6 Project Configuration +# Espressif IoT Development Framework (ESP-IDF) 5.4.2 Project Configuration # -CONFIG_SOC_BROWNOUT_RESET_SUPPORTED="Not determined" -CONFIG_SOC_TWAI_BRP_DIV_SUPPORTED="Not determined" -CONFIG_SOC_DPORT_WORKAROUND="Not determined" CONFIG_SOC_CAPS_ECO_VER_MAX=301 CONFIG_SOC_ADC_SUPPORTED=y CONFIG_SOC_DAC_SUPPORTED=y @@ -14,9 +11,11 @@ CONFIG_SOC_GPTIMER_SUPPORTED=y CONFIG_SOC_SDMMC_HOST_SUPPORTED=y CONFIG_SOC_BT_SUPPORTED=y CONFIG_SOC_PCNT_SUPPORTED=y +CONFIG_SOC_PHY_SUPPORTED=y CONFIG_SOC_WIFI_SUPPORTED=y CONFIG_SOC_SDIO_SLAVE_SUPPORTED=y CONFIG_SOC_TWAI_SUPPORTED=y +CONFIG_SOC_EFUSE_SUPPORTED=y CONFIG_SOC_EMAC_SUPPORTED=y CONFIG_SOC_ULP_SUPPORTED=y CONFIG_SOC_CCOMP_TIMER_SUPPORTED=y @@ -38,6 +37,15 @@ CONFIG_SOC_SECURE_BOOT_SUPPORTED=y CONFIG_SOC_TOUCH_SENSOR_SUPPORTED=y CONFIG_SOC_BOD_SUPPORTED=y CONFIG_SOC_ULP_FSM_SUPPORTED=y +CONFIG_SOC_CLK_TREE_SUPPORTED=y +CONFIG_SOC_MPU_SUPPORTED=y +CONFIG_SOC_WDT_SUPPORTED=y +CONFIG_SOC_SPI_FLASH_SUPPORTED=y +CONFIG_SOC_RNG_SUPPORTED=y +CONFIG_SOC_LIGHT_SLEEP_SUPPORTED=y +CONFIG_SOC_DEEP_SLEEP_SUPPORTED=y +CONFIG_SOC_LP_PERIPH_SHARE_INTERRUPT=y +CONFIG_SOC_PM_SUPPORTED=y CONFIG_SOC_DPORT_WORKAROUND_DIS_INTERRUPT_LVL=5 CONFIG_SOC_XTAL_SUPPORT_26M=y CONFIG_SOC_XTAL_SUPPORT_40M=y @@ -54,18 +62,22 @@ CONFIG_SOC_ADC_DIGI_MIN_BITWIDTH=9 CONFIG_SOC_ADC_DIGI_MAX_BITWIDTH=12 CONFIG_SOC_ADC_DIGI_RESULT_BYTES=2 CONFIG_SOC_ADC_DIGI_DATA_BYTES_PER_CONV=4 +CONFIG_SOC_ADC_DIGI_MONITOR_NUM=0 CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=2 CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=20 CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=9 CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12 +CONFIG_SOC_ADC_SHARED_POWER=y +CONFIG_SOC_BROWNOUT_RESET_SUPPORTED=y CONFIG_SOC_SHARED_IDCACHE_SUPPORTED=y CONFIG_SOC_IDCACHE_PER_CORE=y CONFIG_SOC_CPU_CORES_NUM=2 CONFIG_SOC_CPU_INTR_NUM=32 CONFIG_SOC_CPU_HAS_FPU=y +CONFIG_SOC_HP_CPU_HAS_MULTIPLE_CORES=y CONFIG_SOC_CPU_BREAKPOINTS_NUM=2 CONFIG_SOC_CPU_WATCHPOINTS_NUM=2 -CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=64 +CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=0x40 CONFIG_SOC_DAC_CHAN_NUM=2 CONFIG_SOC_DAC_RESOLUTION=8 CONFIG_SOC_DAC_DMA_16BIT_ALIGN=y @@ -75,11 +87,17 @@ CONFIG_SOC_GPIO_VALID_GPIO_MASK=0xFFFFFFFFFF CONFIG_SOC_GPIO_IN_RANGE_MAX=39 CONFIG_SOC_GPIO_OUT_RANGE_MAX=33 CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0xEF0FEA +CONFIG_SOC_GPIO_CLOCKOUT_BY_IO_MUX=y +CONFIG_SOC_GPIO_CLOCKOUT_CHANNEL_NUM=3 +CONFIG_SOC_GPIO_SUPPORT_HOLD_IO_IN_DSLP=y CONFIG_SOC_I2C_NUM=2 +CONFIG_SOC_HP_I2C_NUM=2 CONFIG_SOC_I2C_FIFO_LEN=32 CONFIG_SOC_I2C_CMD_REG_NUM=16 CONFIG_SOC_I2C_SUPPORT_SLAVE=y CONFIG_SOC_I2C_SUPPORT_APB=y +CONFIG_SOC_I2C_SUPPORT_10BIT_ADDR=y +CONFIG_SOC_I2C_STOP_INDEPENDENT=y CONFIG_SOC_I2S_NUM=2 CONFIG_SOC_I2S_HW_VERSION_1=y CONFIG_SOC_I2S_SUPPORTS_APLL=y @@ -93,6 +111,7 @@ CONFIG_SOC_I2S_SUPPORTS_ADC_DAC=y CONFIG_SOC_I2S_SUPPORTS_ADC=y CONFIG_SOC_I2S_SUPPORTS_DAC=y CONFIG_SOC_I2S_SUPPORTS_LCD_CAMERA=y +CONFIG_SOC_I2S_MAX_DATA_WIDTH=24 CONFIG_SOC_I2S_TRANS_SIZE_ALIGN_WORD=y CONFIG_SOC_I2S_LCD_I80_VARIANT=y CONFIG_SOC_LCD_I80_SUPPORTED=y @@ -102,6 +121,7 @@ CONFIG_SOC_LEDC_HAS_TIMER_SPECIFIC_MUX=y CONFIG_SOC_LEDC_SUPPORT_APB_CLOCK=y CONFIG_SOC_LEDC_SUPPORT_REF_TICK=y CONFIG_SOC_LEDC_SUPPORT_HS_MODE=y +CONFIG_SOC_LEDC_TIMER_NUM=4 CONFIG_SOC_LEDC_CHANNEL_NUM=8 CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=20 CONFIG_SOC_MCPWM_GROUPS=2 @@ -156,14 +176,15 @@ CONFIG_SOC_TIMER_GROUP_TOTAL_TIMERS=4 CONFIG_SOC_TIMER_GROUP_SUPPORT_APB=y CONFIG_SOC_LP_TIMER_BIT_WIDTH_LO=32 CONFIG_SOC_LP_TIMER_BIT_WIDTH_HI=16 -CONFIG_SOC_TOUCH_VERSION_1=y +CONFIG_SOC_TOUCH_SENSOR_VERSION=1 CONFIG_SOC_TOUCH_SENSOR_NUM=10 -CONFIG_SOC_TOUCH_PAD_MEASURE_WAIT_MAX=0xFF +CONFIG_SOC_TOUCH_SAMPLE_CFG_NUM=1 CONFIG_SOC_TWAI_CONTROLLER_NUM=1 CONFIG_SOC_TWAI_BRP_MIN=2 CONFIG_SOC_TWAI_CLK_SUPPORT_APB=y CONFIG_SOC_TWAI_SUPPORT_MULTI_ADDRESS_LAYOUT=y CONFIG_SOC_UART_NUM=3 +CONFIG_SOC_UART_HP_NUM=3 CONFIG_SOC_UART_SUPPORT_APB_CLK=y CONFIG_SOC_UART_SUPPORT_REF_TICK=y CONFIG_SOC_UART_FIFO_LEN=128 @@ -171,16 +192,19 @@ CONFIG_SOC_UART_BITRATE_MAX=5000000 CONFIG_SOC_SPIRAM_SUPPORTED=y CONFIG_SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE=y CONFIG_SOC_SHA_SUPPORT_PARALLEL_ENG=y +CONFIG_SOC_SHA_ENDIANNESS_BE=y CONFIG_SOC_SHA_SUPPORT_SHA1=y CONFIG_SOC_SHA_SUPPORT_SHA256=y CONFIG_SOC_SHA_SUPPORT_SHA384=y CONFIG_SOC_SHA_SUPPORT_SHA512=y +CONFIG_SOC_MPI_MEM_BLOCKS_NUM=4 +CONFIG_SOC_MPI_OPERATIONS_NUM=1 CONFIG_SOC_RSA_MAX_BIT_LEN=4096 CONFIG_SOC_AES_SUPPORT_AES_128=y CONFIG_SOC_AES_SUPPORT_AES_192=y CONFIG_SOC_AES_SUPPORT_AES_256=y CONFIG_SOC_SECURE_BOOT_V1=y -CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=y +CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=1 CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=32 CONFIG_SOC_PHY_DIG_REGS_MEM_SIZE=21 CONFIG_SOC_PM_SUPPORT_EXT0_WAKEUP=y @@ -194,11 +218,8 @@ CONFIG_SOC_PM_SUPPORT_RC_FAST_PD=y CONFIG_SOC_PM_SUPPORT_VDDSDIO_PD=y CONFIG_SOC_PM_SUPPORT_MODEM_PD=y CONFIG_SOC_CONFIGURABLE_VDDSDIO_SUPPORTED=y +CONFIG_SOC_PM_MODEM_PD_BY_SW=y CONFIG_SOC_CLK_APLL_SUPPORTED=y -CONFIG_SOC_APLL_MULTIPLIER_OUT_MIN_HZ=350000000 -CONFIG_SOC_APLL_MULTIPLIER_OUT_MAX_HZ=500000000 -CONFIG_SOC_APLL_MIN_HZ=5303031 -CONFIG_SOC_APLL_MAX_HZ=125000000 CONFIG_SOC_CLK_RC_FAST_D256_SUPPORTED=y CONFIG_SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256=y CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y @@ -214,12 +235,17 @@ CONFIG_SOC_BLE_SUPPORTED=y CONFIG_SOC_BLE_MESH_SUPPORTED=y CONFIG_SOC_BT_CLASSIC_SUPPORTED=y CONFIG_SOC_BLUFI_SUPPORTED=y +CONFIG_SOC_BT_H2C_ENC_KEY_CTRL_ENH_VSC_SUPPORTED=y CONFIG_SOC_ULP_HAS_ADC=y CONFIG_SOC_PHY_COMBO_MODULE=y +CONFIG_SOC_EMAC_RMII_CLK_OUT_INTERNAL_LOOPBACK=y CONFIG_IDF_CMAKE=y +CONFIG_IDF_TOOLCHAIN="gcc" +CONFIG_IDF_TOOLCHAIN_GCC=y CONFIG_IDF_TARGET_ARCH_XTENSA=y CONFIG_IDF_TARGET_ARCH="xtensa" CONFIG_IDF_TARGET="esp32" +CONFIG_IDF_INIT_VERSION="5.4.0" CONFIG_IDF_TARGET_ESP32=y CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000 @@ -240,11 +266,23 @@ CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y # # Bootloader config # + +# +# Bootloader manager +# +CONFIG_BOOTLOADER_COMPILE_TIME_DATE=y +CONFIG_BOOTLOADER_PROJECT_VER=1 +# end of Bootloader manager + CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x1000 CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set # CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set + +# +# Log +# # CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set # CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set # CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set @@ -253,6 +291,14 @@ CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y # CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set CONFIG_BOOTLOADER_LOG_LEVEL=3 +# +# Format +# +# CONFIG_BOOTLOADER_LOG_COLORS is not set +CONFIG_BOOTLOADER_LOG_TIMESTAMP_SOURCE_CPU_TICKS=y +# end of Format +# end of Log + # # Serial Flash Configurations # @@ -301,7 +347,14 @@ CONFIG_ESP_ROM_HAS_MZ_CRC32=y CONFIG_ESP_ROM_HAS_JPEG_DECODE=y CONFIG_ESP_ROM_HAS_UART_BUF_SWITCH=y CONFIG_ESP_ROM_NEEDS_SWSETUP_WORKAROUND=y +CONFIG_ESP_ROM_HAS_NEWLIB=y CONFIG_ESP_ROM_HAS_NEWLIB_NANO_FORMAT=y +CONFIG_ESP_ROM_HAS_NEWLIB_32BIT_TIME=y +CONFIG_ESP_ROM_HAS_SW_FLOAT=y +CONFIG_ESP_ROM_USB_OTG_NUM=-1 +CONFIG_ESP_ROM_USB_SERIAL_DEVICE_NUM=-1 +CONFIG_ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB=y +CONFIG_ESP_ROM_HAS_OUTPUT_PUTC_FUNC=y # # Serial flasher config @@ -343,6 +396,7 @@ CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 # CONFIG_PARTITION_TABLE_SINGLE_APP is not set # CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set # CONFIG_PARTITION_TABLE_TWO_OTA is not set +# CONFIG_PARTITION_TABLE_TWO_OTA_LARGE is not set CONFIG_PARTITION_TABLE_CUSTOM=y CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" CONFIG_PARTITION_TABLE_FILENAME="partitions.csv" @@ -353,13 +407,14 @@ CONFIG_PARTITION_TABLE_MD5=y # # Compiler options # -# CONFIG_COMPILER_OPTIMIZATION_DEFAULT is not set +# CONFIG_COMPILER_OPTIMIZATION_DEBUG is not set CONFIG_COMPILER_OPTIMIZATION_SIZE=y # CONFIG_COMPILER_OPTIMIZATION_PERF is not set # CONFIG_COMPILER_OPTIMIZATION_NONE is not set CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set # CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set +CONFIG_COMPILER_ASSERT_NDEBUG_EVALUATE=y CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB=y CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2 # CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set @@ -370,9 +425,18 @@ CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y # CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set # CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set # CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set +# CONFIG_COMPILER_NO_MERGE_CONSTANTS is not set # CONFIG_COMPILER_WARN_WRITE_STRINGS is not set +CONFIG_COMPILER_DISABLE_DEFAULT_ERRORS=y # CONFIG_COMPILER_DISABLE_GCC12_WARNINGS is not set +# CONFIG_COMPILER_DISABLE_GCC13_WARNINGS is not set +# CONFIG_COMPILER_DISABLE_GCC14_WARNINGS is not set # CONFIG_COMPILER_DUMP_RTL_FILES is not set +CONFIG_COMPILER_RT_LIB_GCCLIB=y +CONFIG_COMPILER_RT_LIB_NAME="gcc" +CONFIG_COMPILER_ORPHAN_SECTIONS_WARNING=y +# CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE is not set +# CONFIG_COMPILER_STATIC_ANALYZER is not set # end of Compiler options # @@ -410,18 +474,23 @@ CONFIG_BT_BLUEDROID_PINNED_TO_CORE_0=y CONFIG_BT_BLUEDROID_PINNED_TO_CORE=0 CONFIG_BT_BTU_TASK_STACK_SIZE=4352 # CONFIG_BT_BLUEDROID_MEM_DEBUG is not set +CONFIG_BT_BLUEDROID_ESP_COEX_VSC=y CONFIG_BT_CLASSIC_ENABLED=y +CONFIG_BT_ENC_KEY_SIZE_CTRL_VSC=y +# CONFIG_BT_ENC_KEY_SIZE_CTRL_NONE is not set # CONFIG_BT_CLASSIC_BQB_ENABLED is not set # CONFIG_BT_A2DP_ENABLE is not set # CONFIG_BT_SPP_ENABLED is not set # CONFIG_BT_L2CAP_ENABLED is not set +# CONFIG_BT_SDP_COMMON_ENABLED is not set +CONFIG_BT_SDP_PAD_LEN=300 +CONFIG_BT_SDP_ATTR_LEN=300 CONFIG_BT_HFP_ENABLE=y CONFIG_BT_HFP_CLIENT_ENABLE=y CONFIG_BT_HFP_AG_ENABLE=y CONFIG_BT_HFP_AUDIO_DATA_PATH_PCM=y # CONFIG_BT_HFP_AUDIO_DATA_PATH_HCI is not set # CONFIG_BT_HID_ENABLED is not set -CONFIG_BT_SSP_ENABLED=y CONFIG_BT_BLE_ENABLED=y CONFIG_BT_GATTS_ENABLE=y # CONFIG_BT_GATTS_PPCP_CHAR_GAP is not set @@ -439,10 +508,12 @@ CONFIG_BT_GATTC_MAX_CACHE_CHAR=40 CONFIG_BT_GATTC_NOTIF_REG_MAX=5 # CONFIG_BT_GATTC_CACHE_NVS_FLASH is not set CONFIG_BT_GATTC_CONNECT_RETRY_COUNT=3 +CONFIG_BT_BLE_ESTAB_LINK_CONN_TOUT=30 CONFIG_BT_BLE_SMP_ENABLE=y # CONFIG_BT_SMP_SLAVE_CON_PARAMS_UPD_ENABLE is not set # CONFIG_BT_BLE_SMP_ID_RESET_ENABLE is not set CONFIG_BT_BLE_SMP_BOND_NVS_FLASH=y +# CONFIG_BT_BLE_RPA_SUPPORTED is not set # CONFIG_BT_STACK_NO_LOG is not set # @@ -622,14 +693,12 @@ CONFIG_BT_ACL_CONNECTIONS=4 CONFIG_BT_MULTI_CONNECTION_ENBALE=y # CONFIG_BT_ALLOCATION_FROM_SPIRAM_FIRST is not set # CONFIG_BT_BLE_DYNAMIC_ENV_MEMORY is not set -# CONFIG_BT_BLE_HOST_QUEUE_CONG_CHECK is not set CONFIG_BT_SMP_ENABLE=y CONFIG_BT_SMP_MAX_BONDS=15 # CONFIG_BT_BLE_ACT_SCAN_REP_ADV_SCAN is not set -CONFIG_BT_BLE_ESTAB_LINK_CONN_TOUT=30 CONFIG_BT_MAX_DEVICE_NAME_LEN=32 -# CONFIG_BT_BLE_RPA_SUPPORTED is not set CONFIG_BT_BLE_RPA_TIMEOUT=900 +# CONFIG_BT_BLE_42_FEATURES_SUPPORTED is not set # CONFIG_BT_BLE_HIGH_DUTY_ADV_INTERVAL is not set # CONFIG_BT_ABORT_WHEN_ALLOCATION_FAILS is not set # end of Bluedroid Options @@ -651,8 +720,12 @@ CONFIG_BTDM_CTRL_PCM_ROLE_MASTER=y # CONFIG_BTDM_CTRL_PCM_ROLE_SLAVE is not set CONFIG_BTDM_CTRL_PCM_POLAR_FALLING_EDGE=y # CONFIG_BTDM_CTRL_PCM_POLAR_RISING_EDGE is not set +CONFIG_BTDM_CTRL_PCM_FSYNCSHP_STEREO_MODE=y +# CONFIG_BTDM_CTRL_PCM_FSYNCSHP_MONO_MODE_LF is not set +# CONFIG_BTDM_CTRL_PCM_FSYNCSHP_MONO_MODE_FF is not set CONFIG_BTDM_CTRL_PCM_ROLE_EFF=0 CONFIG_BTDM_CTRL_PCM_POLAR_EFF=0 +CONFIG_BTDM_CTRL_PCM_FSYNCSHP_EFF=0 CONFIG_BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT=y CONFIG_BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT_EFF=y CONFIG_BTDM_CTRL_BLE_MAX_CONN_EFF=0 @@ -679,9 +752,9 @@ CONFIG_BTDM_BLE_SLEEP_CLOCK_ACCURACY_INDEX_EFF=1 # CONFIG_BTDM_CTRL_CHECK_CONNECT_IND_ACCESS_ADDRESS is not set # -# BLE disconnect when instant passed +# BLE disconnects when Instant Passed (0x28) occurs # -# end of BLE disconnect when instant passed +# end of BLE disconnects when Instant Passed (0x28) occurs # CONFIG_BTDM_CTRL_CONTROLLER_DEBUG_MODE_1 is not set CONFIG_BTDM_RESERVE_DRAM=0xdb5c @@ -701,33 +774,14 @@ CONFIG_BT_ALARM_MAX_NUM=50 # CONFIG_BLE_MESH is not set # -# Driver Configurations -# - -# -# Legacy ADC Configuration +# Console Library # -CONFIG_ADC_DISABLE_DAC=y -# CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_CONSOLE_SORTED_HELP is not set +# end of Console Library # -# Legacy ADC Calibration Configuration -# -CONFIG_ADC_CAL_EFUSE_TP_ENABLE=y -CONFIG_ADC_CAL_EFUSE_VREF_ENABLE=y -CONFIG_ADC_CAL_LUT_ENABLE=y -# CONFIG_ADC_CALI_SUPPRESS_DEPRECATE_WARN is not set -# end of Legacy ADC Calibration Configuration -# end of Legacy ADC Configuration - -# -# SPI Configuration +# Driver Configurations # -# CONFIG_SPI_MASTER_IN_IRAM is not set -CONFIG_SPI_MASTER_ISR_IN_IRAM=y -# CONFIG_SPI_SLAVE_IN_IRAM is not set -CONFIG_SPI_SLAVE_ISR_IN_IRAM=y -# end of SPI Configuration # # TWAI Configuration @@ -741,80 +795,76 @@ CONFIG_TWAI_ERRATA_FIX_LISTEN_ONLY_DOM=y # end of TWAI Configuration # -# UART Configuration +# Legacy ADC Driver Configuration # -# CONFIG_UART_ISR_IN_IRAM is not set -# end of UART Configuration +CONFIG_ADC_DISABLE_DAC=y +# CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_ADC_SKIP_LEGACY_CONFLICT_CHECK is not set # -# GPIO Configuration +# Legacy ADC Calibration Configuration # -# CONFIG_GPIO_ESP32_SUPPORT_SWITCH_SLP_PULL is not set -# CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set -# end of GPIO Configuration +CONFIG_ADC_CAL_EFUSE_TP_ENABLE=y +CONFIG_ADC_CAL_EFUSE_VREF_ENABLE=y +CONFIG_ADC_CAL_LUT_ENABLE=y +# CONFIG_ADC_CALI_SUPPRESS_DEPRECATE_WARN is not set +# end of Legacy ADC Calibration Configuration +# end of Legacy ADC Driver Configuration # -# Sigma Delta Modulator Configuration +# Legacy DAC Driver Configurations # -# CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set -# CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_SDM_ENABLE_DEBUG_LOG is not set -# end of Sigma Delta Modulator Configuration +# CONFIG_DAC_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_DAC_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy DAC Driver Configurations # -# GPTimer Configuration +# Legacy MCPWM Driver Configurations # -CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y -# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set -# CONFIG_GPTIMER_ISR_IRAM_SAFE is not set -# CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set -# end of GPTimer Configuration +# CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_MCPWM_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy MCPWM Driver Configurations # -# PCNT Configuration +# Legacy Timer Group Driver Configurations # -# CONFIG_PCNT_CTRL_FUNC_IN_IRAM is not set -# CONFIG_PCNT_ISR_IRAM_SAFE is not set -# CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_PCNT_ENABLE_DEBUG_LOG is not set -# end of PCNT Configuration +# CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_GPTIMER_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy Timer Group Driver Configurations # -# RMT Configuration +# Legacy RMT Driver Configurations # -# CONFIG_RMT_ISR_IRAM_SAFE is not set -# CONFIG_RMT_RECV_FUNC_IN_IRAM is not set # CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_RMT_ENABLE_DEBUG_LOG is not set -# end of RMT Configuration +# CONFIG_RMT_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy RMT Driver Configurations # -# MCPWM Configuration +# Legacy I2S Driver Configurations # -# CONFIG_MCPWM_ISR_IRAM_SAFE is not set -# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set -# CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set -# end of MCPWM Configuration +# CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_I2S_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy I2S Driver Configurations # -# I2S Configuration +# Legacy I2C Driver Configurations # -# CONFIG_I2S_ISR_IRAM_SAFE is not set -# CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_I2S_ENABLE_DEBUG_LOG is not set -# end of I2S Configuration +# CONFIG_I2C_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy I2C Driver Configurations # -# DAC Configuration +# Legacy PCNT Driver Configurations # -# CONFIG_DAC_CTRL_FUNC_IN_IRAM is not set -# CONFIG_DAC_ISR_IRAM_SAFE is not set -# CONFIG_DAC_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_DAC_ENABLE_DEBUG_LOG is not set -CONFIG_DAC_DMA_AUTO_16BIT_ALIGN=y -# end of DAC Configuration +# CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_PCNT_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy PCNT Driver Configurations + +# +# Legacy SDM Driver Configurations +# +# CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_SDM_SKIP_LEGACY_CONFLICT_CHECK is not set +# end of Legacy SDM Driver Configurations # end of Driver Configurations # @@ -834,9 +884,12 @@ CONFIG_EFUSE_MAX_BLK_LEN=192 CONFIG_ESP_TLS_USING_MBEDTLS=y # CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set # CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set -# CONFIG_ESP_TLS_SERVER is not set +# CONFIG_ESP_TLS_SERVER_SESSION_TICKETS is not set +# CONFIG_ESP_TLS_SERVER_CERT_SELECT_HOOK is not set +# CONFIG_ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL is not set # CONFIG_ESP_TLS_PSK_VERIFICATION is not set # CONFIG_ESP_TLS_INSECURE is not set +CONFIG_ESP_TLS_DYN_BUF_STRATEGY_SUPPORTED=y # end of ESP-TLS # @@ -854,11 +907,13 @@ CONFIG_ADC_CALI_LUT_ENABLE=y # end of ADC Calibration Configurations CONFIG_ADC_DISABLE_DAC_OUTPUT=y +# CONFIG_ADC_ENABLE_DEBUG_LOG is not set # end of ADC and ADC Calibration # # Wireless Coexistence # +CONFIG_ESP_COEX_ENABLED=y CONFIG_ESP_COEX_SW_COEXIST_ENABLE=y # CONFIG_ESP_COEX_POWER_MANAGEMENT is not set # CONFIG_ESP_COEX_GPIO_DEBUG is not set @@ -870,6 +925,107 @@ CONFIG_ESP_COEX_SW_COEXIST_ENABLE=y CONFIG_ESP_ERR_TO_NAME_LOOKUP=y # end of Common ESP-related +# +# ESP-Driver:DAC Configurations +# +# CONFIG_DAC_CTRL_FUNC_IN_IRAM is not set +# CONFIG_DAC_ISR_IRAM_SAFE is not set +# CONFIG_DAC_ENABLE_DEBUG_LOG is not set +CONFIG_DAC_DMA_AUTO_16BIT_ALIGN=y +# end of ESP-Driver:DAC Configurations + +# +# ESP-Driver:GPIO Configurations +# +# CONFIG_GPIO_ESP32_SUPPORT_SWITCH_SLP_PULL is not set +# CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set +# end of ESP-Driver:GPIO Configurations + +# +# ESP-Driver:GPTimer Configurations +# +CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y +# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set +# CONFIG_GPTIMER_ISR_IRAM_SAFE is not set +CONFIG_GPTIMER_OBJ_CACHE_SAFE=y +# CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:GPTimer Configurations + +# +# ESP-Driver:I2C Configurations +# +# CONFIG_I2C_ISR_IRAM_SAFE is not set +# CONFIG_I2C_ENABLE_DEBUG_LOG is not set +# CONFIG_I2C_ENABLE_SLAVE_DRIVER_VERSION_2 is not set +# end of ESP-Driver:I2C Configurations + +# +# ESP-Driver:I2S Configurations +# +# CONFIG_I2S_ISR_IRAM_SAFE is not set +# CONFIG_I2S_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:I2S Configurations + +# +# ESP-Driver:LEDC Configurations +# +# CONFIG_LEDC_CTRL_FUNC_IN_IRAM is not set +# end of ESP-Driver:LEDC Configurations + +# +# ESP-Driver:MCPWM Configurations +# +# CONFIG_MCPWM_ISR_IRAM_SAFE is not set +# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set +# CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:MCPWM Configurations + +# +# ESP-Driver:PCNT Configurations +# +# CONFIG_PCNT_CTRL_FUNC_IN_IRAM is not set +# CONFIG_PCNT_ISR_IRAM_SAFE is not set +# CONFIG_PCNT_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:PCNT Configurations + +# +# ESP-Driver:RMT Configurations +# +# CONFIG_RMT_ISR_IRAM_SAFE is not set +# CONFIG_RMT_RECV_FUNC_IN_IRAM is not set +# CONFIG_RMT_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:RMT Configurations + +# +# ESP-Driver:Sigma Delta Modulator Configurations +# +# CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set +# CONFIG_SDM_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:Sigma Delta Modulator Configurations + +# +# ESP-Driver:SPI Configurations +# +# CONFIG_SPI_MASTER_IN_IRAM is not set +CONFIG_SPI_MASTER_ISR_IN_IRAM=y +# CONFIG_SPI_SLAVE_IN_IRAM is not set +CONFIG_SPI_SLAVE_ISR_IN_IRAM=y +# end of ESP-Driver:SPI Configurations + +# +# ESP-Driver:Touch Sensor Configurations +# +# CONFIG_TOUCH_CTRL_FUNC_IN_IRAM is not set +# CONFIG_TOUCH_ISR_IRAM_SAFE is not set +# CONFIG_TOUCH_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:Touch Sensor Configurations + +# +# ESP-Driver:UART Configurations +# +# CONFIG_UART_ISR_IN_IRAM is not set +# end of ESP-Driver:UART Configurations + # # Ethernet # @@ -902,6 +1058,10 @@ CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR=y # # GDB Stub # +CONFIG_ESP_GDBSTUB_ENABLED=y +# CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set +CONFIG_ESP_GDBSTUB_SUPPORT_TASKS=y +CONFIG_ESP_GDBSTUB_MAX_TASKS=32 # end of GDB Stub # @@ -917,6 +1077,8 @@ CONFIG_ESPHID_TASK_SIZE_BLE=4096 CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y # CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set # CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH is not set +# CONFIG_ESP_HTTP_CLIENT_ENABLE_CUSTOM_TRANSPORT is not set +CONFIG_ESP_HTTP_CLIENT_EVENT_POST_TIMEOUT=2000 # end of ESP HTTP client # @@ -929,6 +1091,7 @@ CONFIG_HTTPD_PURGE_BUF_LEN=32 # CONFIG_HTTPD_LOG_PURGE_DATA is not set # CONFIG_HTTPD_WS_SUPPORT is not set # CONFIG_HTTPD_QUEUE_WORK_BLOCKING is not set +CONFIG_HTTPD_SERVER_EVENT_POST_TIMEOUT=2000 # end of HTTP Server # @@ -936,12 +1099,14 @@ CONFIG_HTTPD_PURGE_BUF_LEN=32 # # CONFIG_ESP_HTTPS_OTA_DECRYPT_CB is not set # CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP is not set +CONFIG_ESP_HTTPS_OTA_EVENT_POST_TIMEOUT=2000 # end of ESP HTTPS OTA # # ESP HTTPS server # # CONFIG_ESP_HTTPS_SERVER_ENABLE is not set +CONFIG_ESP_HTTPS_SERVER_EVENT_POST_TIMEOUT=2000 # end of ESP HTTPS server # @@ -982,6 +1147,7 @@ CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES_FOUR=y +CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES=4 # CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR=y CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4 @@ -998,9 +1164,9 @@ CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND=y CONFIG_ESP_SLEEP_RTC_BUS_ISO_WORKAROUND=y # CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND is not set CONFIG_ESP_SLEEP_WAIT_FLASH_READY_EXTRA_DELAY=2000 +# CONFIG_ESP_SLEEP_CACHE_SAFE_ASSERTION is not set # CONFIG_ESP_SLEEP_DEBUG is not set CONFIG_ESP_SLEEP_GPIO_ENABLE_INTERNAL_RESISTORS=y -# CONFIG_ESP_SLEEP_CACHE_SAFE_ASSERTION is not set # end of Sleep Config # @@ -1023,38 +1189,39 @@ CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y # Main XTAL Config # # CONFIG_XTAL_FREQ_26 is not set +# CONFIG_XTAL_FREQ_32 is not set CONFIG_XTAL_FREQ_40=y # CONFIG_XTAL_FREQ_AUTO is not set CONFIG_XTAL_FREQ=40 # end of Main XTAL Config -# end of Hardware Settings -# -# LCD and Touch Panel -# +CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y +# end of Hardware Settings # -# LCD Touch Drivers are maintained in the IDF Component Registry +# ESP-Driver:LCD Controller Configurations # +# CONFIG_LCD_ENABLE_DEBUG_LOG is not set +# end of ESP-Driver:LCD Controller Configurations # -# LCD Peripheral Configuration +# ESP-MM: Memory Management Configurations # -CONFIG_LCD_PANEL_IO_FORMAT_BUF_SIZE=32 -# CONFIG_LCD_ENABLE_DEBUG_LOG is not set -# end of LCD Peripheral Configuration -# end of LCD and Touch Panel +# end of ESP-MM: Memory Management Configurations # # ESP NETIF Adapter # CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120 +# CONFIG_ESP_NETIF_PROVIDE_CUSTOM_IMPLEMENTATION is not set CONFIG_ESP_NETIF_TCPIP_LWIP=y # CONFIG_ESP_NETIF_LOOPBACK is not set CONFIG_ESP_NETIF_USES_TCPIP_WITH_BSD_API=y +CONFIG_ESP_NETIF_REPORT_DATA_TRAFFIC=y # CONFIG_ESP_NETIF_RECEIVE_REPORT_ERRORS is not set # CONFIG_ESP_NETIF_L2_TAP is not set # CONFIG_ESP_NETIF_BRIDGE_EN is not set +# CONFIG_ESP_NETIF_SET_DNS_PER_DEFAULT_NETIF is not set # end of ESP NETIF Adapter # @@ -1065,6 +1232,7 @@ CONFIG_ESP_NETIF_USES_TCPIP_WITH_BSD_API=y # # PHY # +CONFIG_ESP_PHY_ENABLED=y CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y # CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20 @@ -1076,6 +1244,7 @@ CONFIG_ESP_PHY_RF_CAL_PARTIAL=y # CONFIG_ESP_PHY_RF_CAL_FULL is not set CONFIG_ESP_PHY_CALIBRATION_MODE=0 # CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set +# CONFIG_ESP_PHY_RECORD_USED_TIME is not set # end of PHY # @@ -1097,6 +1266,11 @@ CONFIG_ESP_PHY_CALIBRATION_MODE=0 # CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH is not set # end of ESP Ringbuf +# +# ESP Security Specific +# +# end of ESP Security Specific + # # ESP System Settings # @@ -1128,7 +1302,6 @@ CONFIG_ESP32_TRACEMEM_RESERVE_DRAM=0x0 CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y # CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set # CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set -# CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set CONFIG_ESP_SYSTEM_PANIC_REBOOT_DELAY_SECONDS=0 # @@ -1148,8 +1321,8 @@ CONFIG_ESP_CONSOLE_UART_DEFAULT=y # CONFIG_ESP_CONSOLE_UART_CUSTOM is not set # CONFIG_ESP_CONSOLE_NONE is not set CONFIG_ESP_CONSOLE_UART=y -CONFIG_ESP_CONSOLE_MULTIPLE_UART=y CONFIG_ESP_CONSOLE_UART_NUM=0 +CONFIG_ESP_CONSOLE_ROM_SERIAL_PORT_NUM=0 CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 CONFIG_ESP_INT_WDT=y CONFIG_ESP_INT_WDT_TIMEOUT_MS=300 @@ -1193,7 +1366,7 @@ CONFIG_ESP_IPC_ISR_ENABLE=y # end of IPC (Inter-Processor Call) # -# High resolution timer (esp_timer) +# ESP Timer (High Resolution Timer) # # CONFIG_ESP_TIMER_PROFILING is not set CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y @@ -1203,11 +1376,10 @@ CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1 # CONFIG_ESP_TIMER_SHOW_EXPERIMENTAL is not set CONFIG_ESP_TIMER_TASK_AFFINITY=0x0 CONFIG_ESP_TIMER_TASK_AFFINITY_CPU0=y -CONFIG_ESP_TIMER_ISR_AFFINITY=0x1 CONFIG_ESP_TIMER_ISR_AFFINITY_CPU0=y # CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set CONFIG_ESP_TIMER_IMPL_TG0_LAC=y -# end of High resolution timer (esp_timer) +# end of ESP Timer (High Resolution Timer) # # Wi-Fi @@ -1316,7 +1488,21 @@ CONFIG_FATFS_FS_LOCK=0 CONFIG_FATFS_TIMEOUT_MS=10000 CONFIG_FATFS_PER_FILE_CACHE=y # CONFIG_FATFS_USE_FASTSEEK is not set +CONFIG_FATFS_USE_STRFUNC_NONE=y +# CONFIG_FATFS_USE_STRFUNC_WITHOUT_CRLF_CONV is not set +# CONFIG_FATFS_USE_STRFUNC_WITH_CRLF_CONV is not set CONFIG_FATFS_VFS_FSTAT_BLKSIZE=0 +# CONFIG_FATFS_IMMEDIATE_FSYNC is not set +# CONFIG_FATFS_USE_LABEL is not set +CONFIG_FATFS_LINK_LOCK=y +# CONFIG_FATFS_USE_DYN_BUFFERS is not set + +# +# File system free space calculation behavior +# +CONFIG_FATFS_DONT_TRUST_FREE_CLUSTER_CNT=0 +CONFIG_FATFS_DONT_TRUST_LAST_ALLOC=0 +# end of File system free space calculation behavior # end of FAT Filesystem support # @@ -1338,13 +1524,21 @@ CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536 # CONFIG_FREERTOS_USE_TICK_HOOK is not set CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 # CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set +CONFIG_FREERTOS_USE_TIMERS=y +CONFIG_FREERTOS_TIMER_SERVICE_TASK_NAME="Tmr Svc" +# CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU0 is not set +# CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU1 is not set +CONFIG_FREERTOS_TIMER_TASK_NO_AFFINITY=y +CONFIG_FREERTOS_TIMER_SERVICE_TASK_CORE_AFFINITY=0x7FFFFFFF CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1 # CONFIG_FREERTOS_USE_TRACE_FACILITY is not set +# CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES is not set # CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set +# CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG is not set # end of Kernel # @@ -1352,6 +1546,7 @@ CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1 # # CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y +# CONFIG_FREERTOS_TASK_PRE_DELETION_HOOK is not set # CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y CONFIG_FREERTOS_ISR_STACKSIZE=1536 @@ -1362,14 +1557,21 @@ CONFIG_FREERTOS_CORETIMER_0=y # CONFIG_FREERTOS_CORETIMER_1 is not set CONFIG_FREERTOS_SYSTICK_USES_CCOUNT=y # CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set -# CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH is not set # CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set -CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y # end of Port +# +# Extra +# +# end of Extra + +CONFIG_FREERTOS_PORT=y CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y CONFIG_FREERTOS_DEBUG_OCDAWARE=y +CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y +CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y +CONFIG_FREERTOS_NUMBER_OF_CORES=2 # end of FreeRTOS # @@ -1394,12 +1596,17 @@ CONFIG_HEAP_TRACING_OFF=y # CONFIG_HEAP_TRACING_STANDALONE is not set # CONFIG_HEAP_TRACING_TOHOST is not set # CONFIG_HEAP_USE_HOOKS is not set +# CONFIG_HEAP_TASK_TRACKING is not set # CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set # CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH is not set # end of Heap memory debugging # -# Log output +# Log +# + +# +# Log Level # # CONFIG_LOG_DEFAULT_LEVEL_NONE is not set # CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set @@ -1412,14 +1619,34 @@ CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y # CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set # CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set CONFIG_LOG_MAXIMUM_LEVEL=3 + +# +# Level Settings +# +# CONFIG_LOG_MASTER_LEVEL is not set +CONFIG_LOG_DYNAMIC_LEVEL_CONTROL=y +# CONFIG_LOG_TAG_LEVEL_IMPL_NONE is not set +# CONFIG_LOG_TAG_LEVEL_IMPL_LINKED_LIST is not set +CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_AND_LINKED_LIST=y +# CONFIG_LOG_TAG_LEVEL_CACHE_ARRAY is not set +CONFIG_LOG_TAG_LEVEL_CACHE_BINARY_MIN_HEAP=y +CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_SIZE=31 +# end of Level Settings +# end of Log Level + +# +# Format +# CONFIG_LOG_COLORS=y CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y # CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set -# end of Log output +# end of Format +# end of Log # # LWIP # +CONFIG_LWIP_ENABLE=y CONFIG_LWIP_LOCAL_HOSTNAME="espressif" # CONFIG_LWIP_NETIF_API is not set CONFIG_LWIP_TCPIP_TASK_PRIO=18 @@ -1453,6 +1680,8 @@ CONFIG_LWIP_ESP_MLDV6_REPORT=y CONFIG_LWIP_MLDV6_TMR_INTERVAL=40 CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32 CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y +# CONFIG_LWIP_DHCP_DOES_ACD_CHECK is not set +# CONFIG_LWIP_DHCP_DOES_NOT_CHECK_OFFERED_IP is not set # CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y # CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set @@ -1466,6 +1695,8 @@ CONFIG_LWIP_DHCP_COARSE_TIMER_SECS=1 CONFIG_LWIP_DHCPS=y CONFIG_LWIP_DHCPS_LEASE_UNIT=60 CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8 +CONFIG_LWIP_DHCPS_STATIC_ENTRIES=y +CONFIG_LWIP_DHCPS_ADD_DNS=y # end of DHCP server # CONFIG_LWIP_AUTOIP is not set @@ -1493,6 +1724,7 @@ CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000 CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5760 CONFIG_LWIP_TCP_WND_DEFAULT=5760 CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 +CONFIG_LWIP_TCP_ACCEPTMBOX_SIZE=6 CONFIG_LWIP_TCP_QUEUE_OOSEQ=y CONFIG_LWIP_TCP_OOSEQ_TIMEOUT=6 CONFIG_LWIP_TCP_OOSEQ_MAX_PBUFS=4 @@ -1523,12 +1755,12 @@ CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y # CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set # CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF +CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 +CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 CONFIG_LWIP_IPV6_ND6_NUM_PREFIXES=5 CONFIG_LWIP_IPV6_ND6_NUM_ROUTERS=3 CONFIG_LWIP_IPV6_ND6_NUM_DESTINATIONS=10 # CONFIG_LWIP_PPP_SUPPORT is not set -CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 -CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 # CONFIG_LWIP_SLIP_SUPPORT is not set # @@ -1551,13 +1783,17 @@ CONFIG_LWIP_MAX_RAW_PCBS=16 CONFIG_LWIP_SNTP_MAX_SERVERS=1 # CONFIG_LWIP_DHCP_GET_NTP_SRV is not set CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000 +CONFIG_LWIP_SNTP_STARTUP_DELAY=y +CONFIG_LWIP_SNTP_MAXIMUM_STARTUP_DELAY=5000 # end of SNTP # # DNS # +CONFIG_LWIP_DNS_MAX_HOST_IP=1 CONFIG_LWIP_DNS_MAX_SERVERS=3 # CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set +# CONFIG_LWIP_DNS_SETSERVER_WITH_NETIF is not set # end of DNS CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7 @@ -1622,6 +1858,7 @@ CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y # CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set # CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set # CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set +# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEPRECATED_LIST is not set CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS=200 # end of Certificate Bundle @@ -1639,6 +1876,7 @@ CONFIG_MBEDTLS_HAVE_TIME=y # CONFIG_MBEDTLS_PLATFORM_TIME_ALT is not set # CONFIG_MBEDTLS_HAVE_TIME_DATE is not set CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y +CONFIG_MBEDTLS_SHA1_C=y CONFIG_MBEDTLS_SHA512_C=y # CONFIG_MBEDTLS_SHA3_C is not set CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y @@ -1694,6 +1932,8 @@ CONFIG_MBEDTLS_X509_CSR_PARSE_C=y # end of Certificates CONFIG_MBEDTLS_ECP_C=y +CONFIG_MBEDTLS_PK_PARSE_EC_EXTENDED=y +CONFIG_MBEDTLS_PK_PARSE_EC_COMPRESSED=y # CONFIG_MBEDTLS_DHM_C is not set CONFIG_MBEDTLS_ECDH_C=y CONFIG_MBEDTLS_ECDSA_C=y @@ -1717,6 +1957,7 @@ CONFIG_MBEDTLS_ECP_NIST_OPTIM=y # CONFIG_MBEDTLS_HKDF_C is not set # CONFIG_MBEDTLS_THREADING_C is not set CONFIG_MBEDTLS_ERROR_STRINGS=y +CONFIG_MBEDTLS_FS_IO=y # CONFIG_MBEDTLS_ALLOW_WEAK_CERTIFICATE_VERIFICATION is not set # end of mbedTLS @@ -1756,6 +1997,7 @@ CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y # NVS # # CONFIG_NVS_ASSERT_ERROR_CHECK is not set +# CONFIG_NVS_LEGACY_DUP_KEYS_COMPATIBILITY is not set # end of NVS # @@ -1818,7 +2060,9 @@ CONFIG_SPI_FLASH_BROWNOUT_RESET=y # # Features here require specific hardware (READ DOCS FIRST!) # +CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50 # CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND is not set +# CONFIG_SPI_FLASH_FORCE_ENABLE_C6_H2_SUSPEND is not set # end of Optional and Experimental Features (READ DOCS FIRST) # end of Main Flash configuration @@ -1913,6 +2157,11 @@ CONFIG_WS_BUFFER_SIZE=1024 # Ultra Low Power (ULP) Co-processor # # CONFIG_ULP_COPROC_ENABLED is not set + +# +# ULP Debugging Options +# +# end of ULP Debugging Options # end of Ultra Low Power (ULP) Co-processor # @@ -1943,6 +2192,8 @@ CONFIG_VFS_MAX_COUNT=8 # CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1 # end of Host File System I/O (Semihosting) + +CONFIG_VFS_INITIALIZE_DEV_NULL=y # end of Virtual file system # @@ -1960,6 +2211,7 @@ CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16 CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30 # CONFIG_WIFI_PROV_BLE_BONDING is not set # CONFIG_WIFI_PROV_BLE_FORCE_ENCRYPTION is not set +# CONFIG_WIFI_PROV_BLE_NOTIFY is not set # CONFIG_WIFI_PROV_KEEP_BLE_ON_AFTER_PROV is not set CONFIG_WIFI_PROV_STA_ALL_CHANNEL_SCAN=y # CONFIG_WIFI_PROV_STA_FAST_SCAN is not set @@ -1990,6 +2242,7 @@ CONFIG_FLASHMODE_DIO=y CONFIG_MONITOR_BAUD=115200 # CONFIG_OPTIMIZATION_LEVEL_DEBUG is not set # CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG is not set +# CONFIG_COMPILER_OPTIMIZATION_DEFAULT is not set CONFIG_OPTIMIZATION_LEVEL_RELEASE=y CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE=y CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y @@ -2026,6 +2279,7 @@ CONFIG_GATTS_SEND_SERVICE_CHANGE_AUTO=y CONFIG_GATTS_SEND_SERVICE_CHANGE_MODE=0 CONFIG_GATTC_ENABLE=y # CONFIG_GATTC_CACHE_NVS_FLASH is not set +CONFIG_BLE_ESTABLISH_LINK_CONNECTION_TIMEOUT=30 CONFIG_BLE_SMP_ENABLE=y # CONFIG_SMP_SLAVE_CON_PARAMS_UPD_ENABLE is not set # CONFIG_HCI_TRACE_LEVEL_NONE is not set @@ -2189,10 +2443,8 @@ CONFIG_BLUFI_TRACE_LEVEL_WARNING=y # CONFIG_BLUFI_TRACE_LEVEL_DEBUG is not set # CONFIG_BLUFI_TRACE_LEVEL_VERBOSE is not set CONFIG_BLUFI_INITIAL_TRACE_LEVEL=2 -# CONFIG_BLE_HOST_QUEUE_CONGESTION_CHECK is not set CONFIG_SMP_ENABLE=y # CONFIG_BLE_ACTIVE_SCAN_REPORT_ADV_SCAN_RSP_INDIVIDUALLY is not set -CONFIG_BLE_ESTABLISH_LINK_CONNECTION_TIMEOUT=30 # CONFIG_BTDM_CONTROLLER_MODE_BLE_ONLY is not set CONFIG_BTDM_CONTROLLER_MODE_BR_EDR_ONLY=y # CONFIG_BTDM_CONTROLLER_MODE_BTDM is not set @@ -2206,13 +2458,15 @@ CONFIG_BTDM_CONTROLLER_HCI_MODE_VHCI=y # CONFIG_BTDM_CONTROLLER_HCI_MODE_UART_H4 is not set CONFIG_BTDM_CONTROLLER_MODEM_SLEEP=y CONFIG_ADC2_DISABLE_DAC=y -# CONFIG_MCPWM_ISR_IN_IRAM is not set CONFIG_SW_COEXIST_ENABLE=y CONFIG_ESP32_WIFI_SW_COEXIST_ENABLE=y CONFIG_ESP_WIFI_SW_COEXIST_ENABLE=y +# CONFIG_MCPWM_ISR_IN_IRAM is not set # CONFIG_EVENT_LOOP_PROFILING is not set CONFIG_POST_EVENTS_FROM_ISR=y CONFIG_POST_EVENTS_FROM_IRAM_ISR=y +CONFIG_GDBSTUB_SUPPORT_TASKS=y +CONFIG_GDBSTUB_MAX_TASKS=32 # CONFIG_OTA_ALLOW_HTTP is not set # CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y @@ -2305,8 +2559,6 @@ CONFIG_ESP32_WIFI_STATIC_TX_BUFFER_NUM=16 CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y CONFIG_ESP32_WIFI_TX_BA_WIN=6 CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y -CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y -CONFIG_ESP32_WIFI_RX_BA_WIN=6 CONFIG_ESP32_WIFI_RX_BA_WIN=6 CONFIG_ESP32_WIFI_NVS_ENABLED=y CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y diff --git a/test/sdkconfig.defaults b/test/sdkconfig.defaults new file mode 100644 index 0000000..b203164 --- /dev/null +++ b/test/sdkconfig.defaults @@ -0,0 +1,29 @@ +# SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD +# SPDX-License-Identifier: CC0-1.0 + +# Test configuration for ESP32 Remotehead project +CONFIG_UNITY_ENABLE_FLOAT=y +CONFIG_UNITY_ENABLE_DOUBLE=y +CONFIG_UNITY_ENABLE_64BIT=y +CONFIG_UNITY_ENABLE_MEMORY_TESTS=y +CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL=y + +# Disable components that aren't needed for testing +CONFIG_BT_ENABLED=n +CONFIG_WIFI_ENABLED=n + +# Enable NVS for testing +CONFIG_NVS_ENCRYPTION=n + +# HTTP Server for handler testing +CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024 +CONFIG_HTTPD_MAX_URI_LEN=512 + +# Increase main task stack size for tests +CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192 + +# Enable JSON library +CONFIG_HEAP_TRACING_STACK_DEPTH=10 + +# Logging level for tests +CONFIG_LOG_DEFAULT_LEVEL_DEBUG=y \ No newline at end of file