diff --git a/pytest-embedded-idf/pytest_embedded_idf/unity_tester.py b/pytest-embedded-idf/pytest_embedded_idf/unity_tester.py index 47373979..658d7349 100644 --- a/pytest-embedded-idf/pytest_embedded_idf/unity_tester.py +++ b/pytest-embedded-idf/pytest_embedded_idf/unity_tester.py @@ -262,11 +262,15 @@ def _hard_reset(self) -> None: self._ignore_first_ready_pattern = True pass - def _get_ready(self, timeout: float = 30) -> None: + def _get_ready(self, timeout: float = 30, *, return_before: bool = False) -> bytes | None: if self._ignore_first_ready_pattern: self._ignore_first_ready_pattern = False else: self.expect_exact(READY_PATTERN_LIST, timeout=timeout) + if return_before: + return self.pexpect_proc.before + + return None @property def test_menu(self) -> list[UnittestMenuCase]: @@ -301,6 +305,11 @@ def _analyze_test_case_result( self._add_test_case_to_suite(attrs) return + attrs = self._read_result_and_parse_attrs(case, start_time, timeout) + + self._add_test_case_to_suite(attrs) + + def _read_result_and_parse_attrs(self, case: UnittestMenuCase, start_time: float, timeout: float) -> dict: log = '' try: remaining_timeout = timeout - (time.perf_counter() - start_time) @@ -311,16 +320,39 @@ def _analyze_test_case_result( pass else: # result block exists log = remove_asci_color_code(self.pexpect_proc.before) - finally: - attrs = _parse_unity_test_output(log, case.name, self.pexpect_proc.buffer_debug_str) - attrs.update( - { - 'app_path': self.app.app_path, - 'time': round(time.perf_counter() - start_time, 3), - } - ) - self._add_test_case_to_suite(attrs) + attrs = _parse_unity_test_output(log, case.name, self.pexpect_proc.buffer_debug_str) + attrs.update( + { + 'app_path': self.app.app_path, + 'time': round(time.perf_counter() - start_time, 3), + } + ) + return attrs + + def _prepare_and_start_case(self, case: UnittestMenuCase, reset: bool, timeout: float) -> float: + if reset: + self._hard_reset() + + _start_at = time.perf_counter() + self._get_ready(timeout) + self.confirm_write(case.index, expect_str=f'Running {case.name}...') + return _start_at + + def _squash_failed_subcases(self, failed_subcases: list[dict], start_time: float) -> dict: + squashed_attrs = failed_subcases[0].copy() + if len(failed_subcases) > 1: + for key in ('stdout', 'message'): + if key in squashed_attrs: + squashed_attrs[key] = '\n---\n'.join(f.get(key, '') for f in failed_subcases) + + squashed_attrs.update( + { + 'app_path': self.app.app_path, + 'time': round(time.perf_counter() - start_time, 3), + } + ) + return squashed_attrs def _run_normal_case( self, @@ -345,12 +377,7 @@ def _run_normal_case( return try: - if reset: - self._hard_reset() - - _start_at = time.perf_counter() - self._get_ready(timeout) - self.confirm_write(case.index, expect_str=f'Running {case.name}...') + _start_at = self._prepare_and_start_case(case, reset, timeout) except Exception as e: self._analyze_test_case_result(case, e) else: @@ -379,19 +406,22 @@ def _run_multi_stage_case( return try: - if reset: - self._hard_reset() - - _start_at = time.perf_counter() - self._get_ready(timeout) - self.confirm_write(case.index, expect_str=f'Running {case.name}...') + _start_at = self._prepare_and_start_case(case, reset, timeout) except Exception as e: self._analyze_test_case_result(case, e) else: + failed_subcases = [] try: for sub_case in case.subcases: if sub_case != case.subcases[0]: - self._get_ready(timeout) + ready_before = self._get_ready(timeout, return_before=True) + if ready_before and UNITY_SUMMARY_LINE_REGEX.search(ready_before): + attrs = _parse_unity_test_output( + remove_asci_color_code(ready_before), case.name, self.pexpect_proc.buffer_debug_str + ) + if attrs['result'] == 'FAIL': + failed_subcases.append(attrs) + self.confirm_write(case.index, expect_str=f'Running {case.name}...') self.write(str(sub_case['index'])) @@ -400,7 +430,15 @@ def _run_multi_stage_case( # We'll stop sending commands and let the result recorder handle the failure. pass finally: - self._analyze_test_case_result(case, None, start_time=_start_at, timeout=timeout) + attrs = self._read_result_and_parse_attrs(case, _start_at, timeout) + + if attrs['result'] == 'FAIL': + failed_subcases.append(attrs) + + if failed_subcases: + self._add_test_case_to_suite(self._squash_failed_subcases(failed_subcases, _start_at)) + else: + self._add_test_case_to_suite(attrs) def run_single_board_case(self, name: str, reset: bool = False, timeout: float = 30) -> None: for case in self.test_menu: diff --git a/pytest-embedded-qemu/tests/test_qemu.py b/pytest-embedded-qemu/tests/test_qemu.py index b39959a8..e4acd8c9 100644 --- a/pytest-embedded-qemu/tests/test_qemu.py +++ b/pytest-embedded-qemu/tests/test_qemu.py @@ -201,7 +201,7 @@ def test_qemu_use_idf_mixin_methods(testdir): import pytest def test_qemu_use_idf_mixin_methods(dut): - dut.run_all_single_board_cases(timeout=10) + dut.run_all_single_board_cases(timeout=3) """) result = testdir.runpytest( @@ -209,7 +209,7 @@ def test_qemu_use_idf_mixin_methods(dut): '--embedded-services', 'idf,qemu', '--app-path', - f'{os.path.join(testdir.tmpdir, "unit_test_app_esp32")}', + f'{os.path.join(testdir.tmpdir, "unit_test_app_qemu")}', '--junitxml', 'report.xml', ) @@ -219,6 +219,6 @@ def test_qemu_use_idf_mixin_methods(dut): junit_report = ET.parse('report.xml').getroot()[0] assert junit_report.attrib['errors'] == '0' - assert junit_report.attrib['failures'] == '2' - assert junit_report.attrib['skipped'] == '2' - assert junit_report.attrib['tests'] == '1' + assert junit_report.attrib['failures'] == '5' + assert junit_report.attrib['skipped'] == '0' + assert junit_report.attrib['tests'] == '3' diff --git a/tests/fixtures/unit_test_app_qemu/CMakeLists.txt b/tests/fixtures/unit_test_app_qemu/CMakeLists.txt new file mode 100644 index 00000000..383d5157 --- /dev/null +++ b/tests/fixtures/unit_test_app_qemu/CMakeLists.txt @@ -0,0 +1,7 @@ +cmake_minimum_required(VERSION 3.16) + +set(EXTRA_COMPONENT_DIRS + "$ENV{IDF_PATH}/tools/test_apps/components") + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +project(case_tester_example) diff --git a/tests/fixtures/unit_test_app_qemu/build/bootloader/bootloader.bin b/tests/fixtures/unit_test_app_qemu/build/bootloader/bootloader.bin new file mode 100644 index 00000000..bcf9279e Binary files /dev/null and b/tests/fixtures/unit_test_app_qemu/build/bootloader/bootloader.bin differ diff --git a/tests/fixtures/unit_test_app_qemu/build/case_tester_example.bin b/tests/fixtures/unit_test_app_qemu/build/case_tester_example.bin new file mode 100644 index 00000000..82c27346 Binary files /dev/null and b/tests/fixtures/unit_test_app_qemu/build/case_tester_example.bin differ diff --git a/tests/fixtures/unit_test_app_qemu/build/config/sdkconfig.json b/tests/fixtures/unit_test_app_qemu/build/config/sdkconfig.json new file mode 100644 index 00000000..2a9d127a --- /dev/null +++ b/tests/fixtures/unit_test_app_qemu/build/config/sdkconfig.json @@ -0,0 +1,1239 @@ +{ + "ADC_CALI_EFUSE_TP_ENABLE": true, + "ADC_CALI_EFUSE_VREF_ENABLE": true, + "ADC_CALI_LUT_ENABLE": true, + "ADC_CONTINUOUS_ISR_IRAM_SAFE": false, + "ADC_DISABLE_DAC_OUTPUT": true, + "ADC_ENABLE_DEBUG_LOG": false, + "ADC_ONESHOT_CTRL_FUNC_IN_IRAM": false, + "APP_BUILD_BOOTLOADER": true, + "APP_BUILD_GENERATE_BINARIES": true, + "APP_BUILD_TYPE_APP_2NDBOOT": true, + "APP_BUILD_TYPE_RAM": false, + "APP_BUILD_USE_FLASH_SECTIONS": true, + "APP_COMPATIBLE_PRE_V2_1_BOOTLOADERS": false, + "APP_COMPATIBLE_PRE_V3_1_BOOTLOADERS": false, + "APP_COMPILE_TIME_DATE": true, + "APP_EXCLUDE_PROJECT_NAME_VAR": false, + "APP_EXCLUDE_PROJECT_VER_VAR": false, + "APP_NO_BLOBS": false, + "APP_PROJECT_VER_FROM_CONFIG": false, + "APP_REPRODUCIBLE_BUILD": false, + "APP_RETRIEVE_LEN_ELF_SHA": 9, + "BLE_LOG_ENABLED": false, + "BOOTLOADER_APP_ROLLBACK_ENABLE": false, + "BOOTLOADER_APP_TEST": false, + "BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG": false, + "BOOTLOADER_COMPILER_OPTIMIZATION_PERF": false, + "BOOTLOADER_COMPILER_OPTIMIZATION_SIZE": true, + "BOOTLOADER_COMPILE_TIME_DATE": true, + "BOOTLOADER_CPU_CLK_FREQ_MHZ": 80, + "BOOTLOADER_CUSTOM_RESERVE_RTC": false, + "BOOTLOADER_FACTORY_RESET": false, + "BOOTLOADER_FLASH_DC_AWARE": false, + "BOOTLOADER_FLASH_XMC_SUPPORT": true, + "BOOTLOADER_LOG_COLORS": false, + "BOOTLOADER_LOG_LEVEL": 3, + "BOOTLOADER_LOG_LEVEL_DEBUG": false, + "BOOTLOADER_LOG_LEVEL_ERROR": false, + "BOOTLOADER_LOG_LEVEL_INFO": true, + "BOOTLOADER_LOG_LEVEL_NONE": false, + "BOOTLOADER_LOG_LEVEL_VERBOSE": false, + "BOOTLOADER_LOG_LEVEL_WARN": false, + "BOOTLOADER_LOG_MODE_TEXT": true, + "BOOTLOADER_LOG_MODE_TEXT_EN": true, + "BOOTLOADER_LOG_TIMESTAMP_SOURCE_CPU_TICKS": true, + "BOOTLOADER_LOG_VERSION": 1, + "BOOTLOADER_LOG_VERSION_1": true, + "BOOTLOADER_OFFSET_IN_FLASH": 4096, + "BOOTLOADER_PROJECT_VER": 1, + "BOOTLOADER_REGION_PROTECTION_ENABLE": true, + "BOOTLOADER_RESERVE_RTC_SIZE": 0, + "BOOTLOADER_SKIP_VALIDATE_ALWAYS": false, + "BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP": false, + "BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON": false, + "BOOTLOADER_VDDSDIO_BOOST_1_8V": false, + "BOOTLOADER_VDDSDIO_BOOST_1_9V": true, + "BOOTLOADER_WDT_DISABLE_IN_USER_CODE": false, + "BOOTLOADER_WDT_ENABLE": true, + "BOOTLOADER_WDT_TIME_MS": 9000, + "BT_BLE_LOG_SPI_OUT_ENABLED": false, + "BT_BLE_LOG_UHCI_OUT_ENABLED": false, + "BT_ENABLED": false, + "BT_LE_USED_MEM_STATISTICS_ENABLED": false, + "COMPILER_ASSERT_NDEBUG_EVALUATE": false, + "COMPILER_CXX_EXCEPTIONS": false, + "COMPILER_CXX_GLIBCXX_CONSTEXPR_COLD": false, + "COMPILER_CXX_GLIBCXX_CONSTEXPR_COLD_CONSTEXPR": false, + "COMPILER_CXX_GLIBCXX_CONSTEXPR_NO_CHANGE": true, + "COMPILER_CXX_RTTI": false, + "COMPILER_DISABLE_DEFAULT_ERRORS": false, + "COMPILER_DISABLE_GCC12_WARNINGS": false, + "COMPILER_DISABLE_GCC13_WARNINGS": false, + "COMPILER_DISABLE_GCC14_WARNINGS": false, + "COMPILER_DISABLE_GCC15_WARNINGS": false, + "COMPILER_DUMP_RTL_FILES": false, + "COMPILER_FLOAT_LIB_FROM_GCCLIB": true, + "COMPILER_HIDE_PATHS_MACROS": true, + "COMPILER_NO_MERGE_CONSTANTS": false, + "COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE": false, + "COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE": true, + "COMPILER_OPTIMIZATION_ASSERTIONS_SILENT": false, + "COMPILER_OPTIMIZATION_ASSERTION_LEVEL": 2, + "COMPILER_OPTIMIZATION_CHECKS_SILENT": false, + "COMPILER_OPTIMIZATION_DEBUG": true, + "COMPILER_OPTIMIZATION_NONE": false, + "COMPILER_OPTIMIZATION_PERF": false, + "COMPILER_OPTIMIZATION_SIZE": false, + "COMPILER_ORPHAN_SECTIONS_ERROR": true, + "COMPILER_ORPHAN_SECTIONS_PLACE": false, + "COMPILER_ORPHAN_SECTIONS_WARNING": false, + "COMPILER_RT_LIB_GCCLIB": true, + "COMPILER_RT_LIB_NAME": "gcc", + "COMPILER_STACK_CHECK_MODE_ALL": false, + "COMPILER_STACK_CHECK_MODE_NONE": true, + "COMPILER_STACK_CHECK_MODE_NORM": false, + "COMPILER_STACK_CHECK_MODE_STRONG": false, + "COMPILER_STATIC_ANALYZER": false, + "COMPILER_WARN_WRITE_STRINGS": false, + "CONSOLE_SORTED_HELP": false, + "DAC_CTRL_FUNC_IN_IRAM": false, + "DAC_DMA_AUTO_16BIT_ALIGN": true, + "DAC_ENABLE_DEBUG_LOG": false, + "DAC_ISR_IRAM_SAFE": false, + "EFUSE_CODE_SCHEME_COMPAT_3_4": true, + "EFUSE_CODE_SCHEME_COMPAT_NONE": false, + "EFUSE_CODE_SCHEME_COMPAT_REPEAT": false, + "EFUSE_CUSTOM_TABLE": false, + "EFUSE_MAX_BLK_LEN": 192, + "EFUSE_VIRTUAL": false, + "ESP32_DISABLE_BASIC_ROM_CONSOLE": false, + "ESP32_REV_MAX_FULL": 399, + "ESP32_REV_MIN": 0, + "ESP32_REV_MIN_0": true, + "ESP32_REV_MIN_1": false, + "ESP32_REV_MIN_1_1": false, + "ESP32_REV_MIN_2": false, + "ESP32_REV_MIN_3": false, + "ESP32_REV_MIN_3_1": false, + "ESP32_REV_MIN_FULL": 0, + "ESP32_TRACEMEM_RESERVE_DRAM": 0, + "ESP32_TRAX": false, + "ESP32_UNIVERSAL_MAC_ADDRESSES": 4, + "ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR": true, + "ESP32_UNIVERSAL_MAC_ADDRESSES_TWO": false, + "ESP32_USE_FIXED_STATIC_RAM_SIZE": false, + "ESPHID_TASK_SIZE_BLE": 4096, + "ESPHID_TASK_SIZE_BT": 2048, + "ESPTOOLPY_AFTER": "hard-reset", + "ESPTOOLPY_AFTER_NORESET": false, + "ESPTOOLPY_AFTER_RESET": true, + "ESPTOOLPY_BEFORE": "default-reset", + "ESPTOOLPY_BEFORE_NORESET": false, + "ESPTOOLPY_BEFORE_RESET": true, + "ESPTOOLPY_FLASHFREQ": "40m", + "ESPTOOLPY_FLASHFREQ_20M": false, + "ESPTOOLPY_FLASHFREQ_26M": false, + "ESPTOOLPY_FLASHFREQ_40M": true, + "ESPTOOLPY_FLASHFREQ_80M": false, + "ESPTOOLPY_FLASHMODE": "dio", + "ESPTOOLPY_FLASHMODE_DIO": true, + "ESPTOOLPY_FLASHMODE_DOUT": false, + "ESPTOOLPY_FLASHMODE_QIO": false, + "ESPTOOLPY_FLASHMODE_QOUT": false, + "ESPTOOLPY_FLASHSIZE": "2MB", + "ESPTOOLPY_FLASHSIZE_128MB": false, + "ESPTOOLPY_FLASHSIZE_16MB": false, + "ESPTOOLPY_FLASHSIZE_1MB": false, + "ESPTOOLPY_FLASHSIZE_2MB": true, + "ESPTOOLPY_FLASHSIZE_32MB": false, + "ESPTOOLPY_FLASHSIZE_4MB": false, + "ESPTOOLPY_FLASHSIZE_64MB": false, + "ESPTOOLPY_FLASHSIZE_8MB": false, + "ESPTOOLPY_FLASH_SAMPLE_MODE_STR": true, + "ESPTOOLPY_HEADER_FLASHSIZE_UPDATE": false, + "ESPTOOLPY_MONITOR_BAUD": 115200, + "ESPTOOLPY_NO_STUB": false, + "ESP_BROWNOUT_DET": true, + "ESP_BROWNOUT_DET_LVL": 0, + "ESP_BROWNOUT_DET_LVL_SEL_0": true, + "ESP_BROWNOUT_DET_LVL_SEL_1": false, + "ESP_BROWNOUT_DET_LVL_SEL_2": false, + "ESP_BROWNOUT_DET_LVL_SEL_3": false, + "ESP_BROWNOUT_DET_LVL_SEL_4": false, + "ESP_BROWNOUT_DET_LVL_SEL_5": false, + "ESP_BROWNOUT_DET_LVL_SEL_6": false, + "ESP_BROWNOUT_DET_LVL_SEL_7": false, + "ESP_BROWNOUT_USE_INTR": true, + "ESP_COEX_ENABLED": true, + "ESP_COEX_GPIO_DEBUG": false, + "ESP_CONSOLE_NONE": false, + "ESP_CONSOLE_ROM_SERIAL_PORT_NUM": 0, + "ESP_CONSOLE_UART": true, + "ESP_CONSOLE_UART_BAUDRATE": 115200, + "ESP_CONSOLE_UART_CUSTOM": false, + "ESP_CONSOLE_UART_DEFAULT": true, + "ESP_CONSOLE_UART_NUM": 0, + "ESP_COREDUMP_ENABLE_TO_FLASH": false, + "ESP_COREDUMP_ENABLE_TO_NONE": true, + "ESP_COREDUMP_ENABLE_TO_UART": false, + "ESP_DEBUG_OCDAWARE": true, + "ESP_DEBUG_STUBS_ENABLE": false, + "ESP_DEFAULT_CPU_FREQ_MHZ": 160, + "ESP_DEFAULT_CPU_FREQ_MHZ_160": true, + "ESP_DEFAULT_CPU_FREQ_MHZ_240": false, + "ESP_DEFAULT_CPU_FREQ_MHZ_80": false, + "ESP_EFUSE_BLOCK_REV_MAX_FULL": 99, + "ESP_EFUSE_BLOCK_REV_MIN_FULL": 0, + "ESP_ERR_TO_NAME_LOOKUP": true, + "ESP_EVENT_LOOP_PROFILING": false, + "ESP_EVENT_POST_FROM_IRAM_ISR": true, + "ESP_EVENT_POST_FROM_ISR": true, + "ESP_GDBSTUB_ENABLED": true, + "ESP_GDBSTUB_MAX_TASKS": 32, + "ESP_GDBSTUB_SUPPORT_TASKS": true, + "ESP_HTTPS_OTA_ALLOW_HTTP": false, + "ESP_HTTPS_OTA_DECRYPT_CB": false, + "ESP_HTTPS_OTA_ENABLE_PARTIAL_DOWNLOAD": false, + "ESP_HTTPS_OTA_EVENT_POST_TIMEOUT": 2000, + "ESP_HTTPS_SERVER_CERT_SELECT_HOOK": false, + "ESP_HTTPS_SERVER_ENABLE": false, + "ESP_HTTPS_SERVER_EVENT_POST_TIMEOUT": 2000, + "ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH": false, + "ESP_HTTP_CLIENT_ENABLE_CUSTOM_TRANSPORT": false, + "ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH": false, + "ESP_HTTP_CLIENT_ENABLE_GET_CONTENT_RANGE": false, + "ESP_HTTP_CLIENT_ENABLE_HTTPS": true, + "ESP_HTTP_CLIENT_EVENT_POST_TIMEOUT": 2000, + "ESP_HW_SUPPORT_FUNC_IN_IRAM": true, + "ESP_INTR_IN_IRAM": true, + "ESP_INT_WDT": true, + "ESP_INT_WDT_CHECK_CPU1": true, + "ESP_INT_WDT_TIMEOUT_MS": 300, + "ESP_IPC_ENABLE": true, + "ESP_IPC_ISR_ENABLE": true, + "ESP_IPC_TASK_STACK_SIZE": 1024, + "ESP_IPC_USES_CALLERS_PRIORITY": true, + "ESP_MAC_ADDR_UNIVERSE_BT": true, + "ESP_MAC_ADDR_UNIVERSE_ETH": true, + "ESP_MAC_ADDR_UNIVERSE_WIFI_AP": true, + "ESP_MAC_ADDR_UNIVERSE_WIFI_STA": true, + "ESP_MAC_IGNORE_MAC_CRC_ERROR": false, + "ESP_MAC_UNIVERSAL_MAC_ADDRESSES": 4, + "ESP_MAC_UNIVERSAL_MAC_ADDRESSES_FOUR": true, + "ESP_MAC_USE_CUSTOM_MAC_AS_BASE_MAC": false, + "ESP_MAIN_TASK_AFFINITY": 0, + "ESP_MAIN_TASK_AFFINITY_CPU0": true, + "ESP_MAIN_TASK_AFFINITY_CPU1": false, + "ESP_MAIN_TASK_AFFINITY_NO_AFFINITY": false, + "ESP_MAIN_TASK_STACK_SIZE": 3584, + "ESP_MINIMAL_SHARED_STACK_SIZE": 2048, + "ESP_NETIF_BRIDGE_EN": false, + "ESP_NETIF_IP_LOST_TIMER_INTERVAL": 120, + "ESP_NETIF_L2_TAP": false, + "ESP_NETIF_LOOPBACK": false, + "ESP_NETIF_LOST_IP_TIMER_ENABLE": true, + "ESP_NETIF_PROVIDE_CUSTOM_IMPLEMENTATION": false, + "ESP_NETIF_RECEIVE_REPORT_ERRORS": true, + "ESP_NETIF_REPORT_DATA_TRAFFIC": true, + "ESP_NETIF_SET_DNS_PER_DEFAULT_NETIF": false, + "ESP_NETIF_TCPIP_LWIP": true, + "ESP_NETIF_USES_TCPIP_WITH_BSD_API": true, + "ESP_PANIC_HANDLER_IRAM": false, + "ESP_PERIPH_CTRL_FUNC_IN_IRAM": true, + "ESP_PHY_CALIBRATION_AND_DATA_STORAGE": true, + "ESP_PHY_CALIBRATION_MODE": 0, + "ESP_PHY_DEBUG": false, + "ESP_PHY_ENABLED": true, + "ESP_PHY_ENABLE_CERT_TEST": false, + "ESP_PHY_INIT_DATA_IN_PARTITION": false, + "ESP_PHY_IRAM_OPT": true, + "ESP_PHY_MAX_TX_POWER": 20, + "ESP_PHY_MAX_WIFI_TX_POWER": 20, + "ESP_PHY_PLL_TRACK_DEBUG": false, + "ESP_PHY_PLL_TRACK_PERIOD_MS": 1000, + "ESP_PHY_RECORD_USED_TIME": false, + "ESP_PHY_REDUCE_TX_POWER": false, + "ESP_PHY_RF_CAL_FULL": false, + "ESP_PHY_RF_CAL_NONE": false, + "ESP_PHY_RF_CAL_PARTIAL": true, + "ESP_PROTOCOMM_SUPPORT_SECURITY_PATCH_VERSION": true, + "ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_0": false, + "ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1": false, + "ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2": true, + "ESP_REGI2C_CTRL_FUNC_IN_IRAM": true, + "ESP_REV_MAX_FULL": 399, + "ESP_REV_MIN_FULL": 0, + "ESP_ROM_HAS_CRC_BE": true, + "ESP_ROM_HAS_CRC_LE": true, + "ESP_ROM_HAS_JPEG_DECODE": true, + "ESP_ROM_HAS_MZ_CRC32": true, + "ESP_ROM_HAS_NEWLIB": true, + "ESP_ROM_HAS_NEWLIB_32BIT_TIME": true, + "ESP_ROM_HAS_NEWLIB_NANO_FORMAT": true, + "ESP_ROM_HAS_OUTPUT_PUTC_FUNC": true, + "ESP_ROM_HAS_SW_FLOAT": true, + "ESP_ROM_HAS_UART_BUF_SWITCH": true, + "ESP_ROM_NEEDS_SWSETUP_WORKAROUND": true, + "ESP_ROM_PRINT_IN_IRAM": true, + "ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB": true, + "ESP_ROM_USB_OTG_NUM": -1, + "ESP_ROM_USB_SERIAL_DEVICE_NUM": -1, + "ESP_SLEEP_CACHE_SAFE_ASSERTION": false, + "ESP_SLEEP_DEBUG": false, + "ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND": true, + "ESP_SLEEP_GPIO_ENABLE_INTERNAL_RESISTORS": true, + "ESP_SLEEP_GPIO_RESET_WORKAROUND": false, + "ESP_SLEEP_MSPI_NEED_ALL_IO_PU": false, + "ESP_SLEEP_POWER_DOWN_FLASH": false, + "ESP_SLEEP_RTC_BUS_ISO_WORKAROUND": true, + "ESP_SLEEP_WAIT_FLASH_READY_EXTRA_DELAY": 2000, + "ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM": true, + "ESP_SYSTEM_CHECK_INT_LEVEL_4": true, + "ESP_SYSTEM_CHECK_INT_LEVEL_5": false, + "ESP_SYSTEM_ESP32_SRAM1_REGION_AS_IRAM": false, + "ESP_SYSTEM_EVENT_QUEUE_SIZE": 32, + "ESP_SYSTEM_EVENT_TASK_STACK_SIZE": 2304, + "ESP_SYSTEM_GDBSTUB_RUNTIME": false, + "ESP_SYSTEM_IN_IRAM": true, + "ESP_SYSTEM_PANIC_GDBSTUB": false, + "ESP_SYSTEM_PANIC_PRINT_HALT": false, + "ESP_SYSTEM_PANIC_PRINT_REBOOT": true, + "ESP_SYSTEM_PANIC_REBOOT_DELAY_SECONDS": 0, + "ESP_SYSTEM_PANIC_SILENT_REBOOT": false, + "ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0": true, + "ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1": true, + "ESP_TASK_WDT_EN": true, + "ESP_TASK_WDT_INIT": true, + "ESP_TASK_WDT_PANIC": false, + "ESP_TASK_WDT_TIMEOUT_S": 5, + "ESP_TIMER_IMPL_TG0_LAC": true, + "ESP_TIMER_INTERRUPT_LEVEL": 1, + "ESP_TIMER_IN_IRAM": true, + "ESP_TIMER_ISR_AFFINITY_CPU0": true, + "ESP_TIMER_PROFILING": false, + "ESP_TIMER_SHOW_EXPERIMENTAL": false, + "ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD": false, + "ESP_TIMER_TASK_AFFINITY": 0, + "ESP_TIMER_TASK_AFFINITY_CPU0": true, + "ESP_TIMER_TASK_STACK_SIZE": 3584, + "ESP_TIME_FUNCS_USE_ESP_TIMER": true, + "ESP_TIME_FUNCS_USE_RTC_TIMER": true, + "ESP_TLS_CLIENT_SESSION_TICKETS": false, + "ESP_TLS_DYN_BUF_STRATEGY_SUPPORTED": true, + "ESP_TLS_INSECURE": false, + "ESP_TLS_PSK_VERIFICATION": false, + "ESP_TLS_SERVER_CERT_SELECT_HOOK": false, + "ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL": false, + "ESP_TLS_SERVER_SESSION_TICKETS": false, + "ESP_TLS_USE_SECURE_ELEMENT": false, + "ESP_TLS_USING_MBEDTLS": true, + "ESP_TRACE_LIB_EXTERNAL": false, + "ESP_TRACE_LIB_NAME": "none", + "ESP_TRACE_LIB_NONE": true, + "ESP_TRACE_TRANSPORT_APPTRACE": false, + "ESP_TRACE_TRANSPORT_NAME": "none", + "ESP_TRACE_TRANSPORT_NONE": true, + "ESP_WIFI_11KV_SUPPORT": false, + "ESP_WIFI_11R_SUPPORT": false, + "ESP_WIFI_AMPDU_RX_ENABLED": true, + "ESP_WIFI_AMPDU_TX_ENABLED": true, + "ESP_WIFI_BSS_MAX_IDLE_SUPPORT": false, + "ESP_WIFI_CSI_ENABLED": false, + "ESP_WIFI_DEBUG_PRINT": false, + "ESP_WIFI_DPP_SUPPORT": false, + "ESP_WIFI_DYNAMIC_RX_BUFFER_NUM": 32, + "ESP_WIFI_DYNAMIC_RX_MGMT_BUF": 0, + "ESP_WIFI_DYNAMIC_RX_MGMT_BUFFER": false, + "ESP_WIFI_DYNAMIC_TX_BUFFER": true, + "ESP_WIFI_DYNAMIC_TX_BUFFER_NUM": 32, + "ESP_WIFI_ENABLED": true, + "ESP_WIFI_ENABLE_SAE_H2E": true, + "ESP_WIFI_ENABLE_SAE_PK": true, + "ESP_WIFI_ENABLE_WPA3_OWE_STA": true, + "ESP_WIFI_ENABLE_WPA3_SAE": true, + "ESP_WIFI_ENTERPRISE_SUPPORT": true, + "ESP_WIFI_ENT_FREE_DYNAMIC_BUFFER": false, + "ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM": 7, + "ESP_WIFI_EXTRA_IRAM_OPT": false, + "ESP_WIFI_GMAC_SUPPORT": true, + "ESP_WIFI_IRAM_OPT": true, + "ESP_WIFI_MBEDTLS_CRYPTO": true, + "ESP_WIFI_MBEDTLS_TLS_CLIENT": true, + "ESP_WIFI_MBO_SUPPORT": false, + "ESP_WIFI_MGMT_SBUF_NUM": 32, + "ESP_WIFI_NAN_SYNC_ENABLE": false, + "ESP_WIFI_NVS_ENABLED": true, + "ESP_WIFI_RX_BA_WIN": 6, + "ESP_WIFI_RX_IRAM_OPT": true, + "ESP_WIFI_RX_MGMT_BUF_NUM_DEF": 5, + "ESP_WIFI_SLP_BEACON_LOST_OPT": false, + "ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME": 10, + "ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME": 50, + "ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME": 15, + "ESP_WIFI_SLP_IRAM_OPT": false, + "ESP_WIFI_SOFTAP_BEACON_MAX_LEN": 752, + "ESP_WIFI_SOFTAP_SAE_SUPPORT": true, + "ESP_WIFI_SOFTAP_SUPPORT": true, + "ESP_WIFI_STATIC_RX_BUFFER_NUM": 10, + "ESP_WIFI_STATIC_RX_MGMT_BUFFER": true, + "ESP_WIFI_STATIC_TX_BUFFER": false, + "ESP_WIFI_STA_DISCONNECTED_PM_ENABLE": true, + "ESP_WIFI_TASK_PINNED_TO_CORE_0": true, + "ESP_WIFI_TASK_PINNED_TO_CORE_1": false, + "ESP_WIFI_TX_BA_WIN": 6, + "ESP_WIFI_TX_BUFFER_TYPE": 1, + "ESP_WIFI_WAPI_PSK": false, + "ESP_WIFI_WPA3_COMPATIBLE_SUPPORT": true, + "ESP_WIFI_WPS_PASSPHRASE": false, + "ESP_WIFI_WPS_RECONNECT_ON_FAIL": false, + "ESP_WIFI_WPS_SOFTAP_REGISTRAR": false, + "ESP_WIFI_WPS_STRICT": false, + "ETH_DMA_BUFFER_SIZE": 512, + "ETH_DMA_RX_BUFFER_NUM": 10, + "ETH_DMA_TX_BUFFER_NUM": 10, + "ETH_ENABLED": true, + "ETH_IRAM_OPTIMIZATION": false, + "ETH_TRANSMIT_MUTEX": false, + "ETH_USE_ESP32_EMAC": true, + "ETH_USE_OPENETH": false, + "ETH_USE_SPI_ETHERNET": true, + "FATFS_API_ENCODING_ANSI_OEM": true, + "FATFS_API_ENCODING_UTF_8": false, + "FATFS_CODEPAGE": 437, + "FATFS_CODEPAGE_437": true, + "FATFS_CODEPAGE_720": false, + "FATFS_CODEPAGE_737": false, + "FATFS_CODEPAGE_771": false, + "FATFS_CODEPAGE_775": false, + "FATFS_CODEPAGE_850": false, + "FATFS_CODEPAGE_852": false, + "FATFS_CODEPAGE_855": false, + "FATFS_CODEPAGE_857": false, + "FATFS_CODEPAGE_860": false, + "FATFS_CODEPAGE_861": false, + "FATFS_CODEPAGE_862": false, + "FATFS_CODEPAGE_863": false, + "FATFS_CODEPAGE_864": false, + "FATFS_CODEPAGE_865": false, + "FATFS_CODEPAGE_866": false, + "FATFS_CODEPAGE_869": false, + "FATFS_CODEPAGE_932": false, + "FATFS_CODEPAGE_936": false, + "FATFS_CODEPAGE_949": false, + "FATFS_CODEPAGE_950": false, + "FATFS_CODEPAGE_DYNAMIC": false, + "FATFS_DONT_TRUST_FREE_CLUSTER_CNT": 0, + "FATFS_DONT_TRUST_LAST_ALLOC": 0, + "FATFS_FS_LOCK": 0, + "FATFS_IMMEDIATE_FSYNC": false, + "FATFS_LFN_HEAP": true, + "FATFS_LFN_NONE": false, + "FATFS_LFN_STACK": false, + "FATFS_LINK_LOCK": true, + "FATFS_MAX_LFN": 255, + "FATFS_PER_FILE_CACHE": true, + "FATFS_SECTOR_4096": true, + "FATFS_SECTOR_512": false, + "FATFS_TIMEOUT_MS": 10000, + "FATFS_USE_DYN_BUFFERS": true, + "FATFS_USE_FASTSEEK": false, + "FATFS_USE_LABEL": false, + "FATFS_USE_STRFUNC_NONE": true, + "FATFS_USE_STRFUNC_WITHOUT_CRLF_CONV": false, + "FATFS_USE_STRFUNC_WITH_CRLF_CONV": false, + "FATFS_VFS_FSTAT_BLKSIZE": 0, + "FATFS_VOLUME_COUNT": 2, + "FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER": true, + "FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE": false, + "FREERTOS_CHECK_STACKOVERFLOW_CANARY": true, + "FREERTOS_CHECK_STACKOVERFLOW_NONE": false, + "FREERTOS_CHECK_STACKOVERFLOW_PTRVAL": false, + "FREERTOS_CORETIMER_0": true, + "FREERTOS_CORETIMER_1": false, + "FREERTOS_DEBUG_OCDAWARE": true, + "FREERTOS_ENABLE_BACKWARD_COMPATIBILITY": false, + "FREERTOS_FPU_IN_ISR": false, + "FREERTOS_GENERATE_RUN_TIME_STATS": false, + "FREERTOS_HZ": 100, + "FREERTOS_IDLE_TASK_STACKSIZE": 1536, + "FREERTOS_INTERRUPT_BACKTRACE": true, + "FREERTOS_IN_IRAM": false, + "FREERTOS_ISR_STACKSIZE": 1536, + "FREERTOS_MAX_TASK_NAME_LEN": 16, + "FREERTOS_NO_AFFINITY": 2147483647, + "FREERTOS_NUMBER_OF_CORES": 2, + "FREERTOS_PORT": true, + "FREERTOS_QUEUE_REGISTRY_SIZE": 0, + "FREERTOS_SMP": false, + "FREERTOS_SUPPORT_STATIC_ALLOCATION": true, + "FREERTOS_SYSTICK_USES_CCOUNT": true, + "FREERTOS_TASK_FUNCTION_WRAPPER": true, + "FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES": 1, + "FREERTOS_TASK_PRE_DELETION_HOOK": false, + "FREERTOS_THREAD_LOCAL_STORAGE_POINTERS": 1, + "FREERTOS_TICK_SUPPORT_CORETIMER": true, + "FREERTOS_TIMER_QUEUE_LENGTH": 10, + "FREERTOS_TIMER_SERVICE_TASK_CORE_AFFINITY": 2147483647, + "FREERTOS_TIMER_SERVICE_TASK_NAME": "Tmr Svc", + "FREERTOS_TIMER_TASK_AFFINITY_CPU0": false, + "FREERTOS_TIMER_TASK_AFFINITY_CPU1": false, + "FREERTOS_TIMER_TASK_NO_AFFINITY": true, + "FREERTOS_TIMER_TASK_PRIORITY": 1, + "FREERTOS_TIMER_TASK_STACK_DEPTH": 2048, + "FREERTOS_TLSP_DELETION_CALLBACKS": true, + "FREERTOS_UNICORE": false, + "FREERTOS_USE_APPLICATION_TASK_TAG": false, + "FREERTOS_USE_IDLE_HOOK": false, + "FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES": false, + "FREERTOS_USE_TICK_HOOK": false, + "FREERTOS_USE_TIMERS": true, + "FREERTOS_USE_TRACE_FACILITY": false, + "FREERTOS_WATCHPOINT_END_OF_STACK": false, + "GPIO_CTRL_FUNC_IN_IRAM": false, + "GPTIMER_CTRL_FUNC_IN_IRAM": false, + "GPTIMER_ENABLE_DEBUG_LOG": false, + "GPTIMER_ISR_CACHE_SAFE": false, + "GPTIMER_ISR_HANDLER_IN_IRAM": true, + "GPTIMER_OBJ_CACHE_SAFE": true, + "HAL_ASSERTION_DISABLE": false, + "HAL_ASSERTION_ENABLE": false, + "HAL_ASSERTION_EQUALS_SYSTEM": true, + "HAL_ASSERTION_SILENT": false, + "HAL_DEFAULT_ASSERTION_LEVEL": 2, + "HAL_GPIO_USE_ROM_IMPL": true, + "HEAP_ABORT_WHEN_ALLOCATION_FAILS": false, + "HEAP_HAS_EXEC_HEAP": true, + "HEAP_PLACE_FUNCTION_INTO_FLASH": false, + "HEAP_POISONING_COMPREHENSIVE": false, + "HEAP_POISONING_DISABLED": true, + "HEAP_POISONING_LIGHT": false, + "HEAP_TASK_TRACKING": false, + "HEAP_TRACING_OFF": true, + "HEAP_TRACING_STANDALONE": false, + "HEAP_TRACING_TOHOST": false, + "HEAP_USE_HOOKS": false, + "HTTPD_ERR_RESP_NO_DELAY": true, + "HTTPD_LOG_PURGE_DATA": false, + "HTTPD_MAX_REQ_HDR_LEN": 1024, + "HTTPD_MAX_URI_LEN": 512, + "HTTPD_PURGE_BUF_LEN": 32, + "HTTPD_QUEUE_WORK_BLOCKING": false, + "HTTPD_SERVER_EVENT_POST_TIMEOUT": 2000, + "HTTPD_WS_SUPPORT": false, + "I2C_ENABLE_DEBUG_LOG": false, + "I2C_ISR_IRAM_SAFE": false, + "I2C_MASTER_ISR_HANDLER_IN_IRAM": true, + "I2C_SKIP_LEGACY_CONFLICT_CHECK": false, + "I2C_SUPPRESS_DEPRECATE_WARN": false, + "I2S_CTRL_FUNC_IN_IRAM": false, + "I2S_ENABLE_DEBUG_LOG": false, + "I2S_ISR_IRAM_SAFE": false, + "I3C_MASTER_ENABLE_DEBUG_LOG": false, + "I3C_MASTER_ISR_CACHE_SAFE": false, + "I3C_MASTER_ISR_HANDLER_IN_IRAM": false, + "IDF_CMAKE": true, + "IDF_EXPERIMENTAL_FEATURES": false, + "IDF_FIRMWARE_CHIP_ID": 0, + "IDF_INIT_VERSION": "6.0.0", + "IDF_TARGET": "esp32", + "IDF_TARGET_ARCH": "xtensa", + "IDF_TARGET_ARCH_XTENSA": true, + "IDF_TARGET_ESP32": true, + "IDF_TOOLCHAIN": "gcc", + "IDF_TOOLCHAIN_GCC": true, + "LCD_ENABLE_DEBUG_LOG": false, + "LEDC_CTRL_FUNC_IN_IRAM": false, + "LIBC_ASSERT_BUFFER_SIZE": 200, + "LIBC_LOCKS_PLACE_IN_IRAM": true, + "LIBC_MISC_IN_IRAM": true, + "LIBC_NEWLIB": false, + "LIBC_PICOLIBC": true, + "LIBC_PICOLIBC_NEWLIB_COMPATIBILITY": true, + "LIBC_STDIN_LINE_ENDING_CR": true, + "LIBC_STDIN_LINE_ENDING_CRLF": false, + "LIBC_STDIN_LINE_ENDING_LF": false, + "LIBC_STDOUT_LINE_ENDING_CR": false, + "LIBC_STDOUT_LINE_ENDING_CRLF": true, + "LIBC_STDOUT_LINE_ENDING_LF": false, + "LIBC_TIME_SYSCALL_USE_HRT": false, + "LIBC_TIME_SYSCALL_USE_NONE": false, + "LIBC_TIME_SYSCALL_USE_RTC": false, + "LIBC_TIME_SYSCALL_USE_RTC_HRT": true, + "LOG_COLORS": false, + "LOG_DEFAULT_LEVEL": 3, + "LOG_DEFAULT_LEVEL_DEBUG": false, + "LOG_DEFAULT_LEVEL_ERROR": false, + "LOG_DEFAULT_LEVEL_INFO": true, + "LOG_DEFAULT_LEVEL_NONE": false, + "LOG_DEFAULT_LEVEL_VERBOSE": false, + "LOG_DEFAULT_LEVEL_WARN": false, + "LOG_DYNAMIC_LEVEL_CONTROL": true, + "LOG_IN_IRAM": true, + "LOG_MASTER_LEVEL": false, + "LOG_MAXIMUM_EQUALS_DEFAULT": true, + "LOG_MAXIMUM_LEVEL": 3, + "LOG_MAXIMUM_LEVEL_DEBUG": false, + "LOG_MAXIMUM_LEVEL_VERBOSE": false, + "LOG_MODE_TEXT": true, + "LOG_MODE_TEXT_EN": true, + "LOG_TAG_LEVEL_CACHE_ARRAY": false, + "LOG_TAG_LEVEL_CACHE_BINARY_MIN_HEAP": true, + "LOG_TAG_LEVEL_IMPL_CACHE_AND_LINKED_LIST": true, + "LOG_TAG_LEVEL_IMPL_CACHE_SIZE": 31, + "LOG_TAG_LEVEL_IMPL_LINKED_LIST": false, + "LOG_TAG_LEVEL_IMPL_NONE": false, + "LOG_TIMESTAMP_SOURCE_RTOS": true, + "LOG_TIMESTAMP_SOURCE_SYSTEM": false, + "LOG_VERSION": 1, + "LOG_VERSION_1": true, + "LOG_VERSION_2": false, + "LWIP_AUTOIP": false, + "LWIP_BRIDGEIF_MAX_PORTS": 7, + "LWIP_BROADCAST_PING": false, + "LWIP_CHECKSUM_CHECK_ICMP": true, + "LWIP_CHECKSUM_CHECK_IP": false, + "LWIP_CHECKSUM_CHECK_UDP": false, + "LWIP_CHECK_THREAD_SAFETY": false, + "LWIP_DEBUG": false, + "LWIP_DHCPS": true, + "LWIP_DHCPS_LEASE_UNIT": 60, + "LWIP_DHCPS_MAX_HOSTNAME_LEN": 64, + "LWIP_DHCPS_MAX_STATION_NUM": 8, + "LWIP_DHCPS_REPORT_CLIENT_HOSTNAME": true, + "LWIP_DHCPS_STATIC_ENTRIES": true, + "LWIP_DHCP_COARSE_TIMER_SECS": 1, + "LWIP_DHCP_DISABLE_CLIENT_ID": false, + "LWIP_DHCP_DISABLE_VENDOR_CLASS_ID": true, + "LWIP_DHCP_DOES_ACD_CHECK": false, + "LWIP_DHCP_DOES_ARP_CHECK": true, + "LWIP_DHCP_DOES_NOT_CHECK_OFFERED_IP": false, + "LWIP_DHCP_GET_NTP_SRV": false, + "LWIP_DHCP_OPTIONS_LEN": 69, + "LWIP_DHCP_RESTORE_LAST_IP": false, + "LWIP_DNS_MAX_HOST_IP": 1, + "LWIP_DNS_MAX_SERVERS": 3, + "LWIP_DNS_SETSERVER_WITH_NETIF": false, + "LWIP_DNS_SUPPORT_MDNS_QUERIES": true, + "LWIP_ENABLE": true, + "LWIP_ESP_GRATUITOUS_ARP": true, + "LWIP_ESP_LWIP_ASSERT": true, + "LWIP_ESP_MLDV6_REPORT": true, + "LWIP_EXTRA_IRAM_OPTIMIZATION": false, + "LWIP_FALLBACK_DNS_SERVER_SUPPORT": false, + "LWIP_FORCE_ROUTER_FORWARDING": false, + "LWIP_GARP_TMR_INTERVAL": 60, + "LWIP_HOOK_DHCP_EXTRA_OPTION_CUSTOM": false, + "LWIP_HOOK_DHCP_EXTRA_OPTION_DEFAULT": false, + "LWIP_HOOK_DHCP_EXTRA_OPTION_NONE": true, + "LWIP_HOOK_DNS_EXT_RESOLVE_CUSTOM": false, + "LWIP_HOOK_DNS_EXT_RESOLVE_NONE": true, + "LWIP_HOOK_IP6_INPUT_CUSTOM": false, + "LWIP_HOOK_IP6_INPUT_DEFAULT": true, + "LWIP_HOOK_IP6_INPUT_NONE": false, + "LWIP_HOOK_IP6_ROUTE_CUSTOM": false, + "LWIP_HOOK_IP6_ROUTE_DEFAULT": false, + "LWIP_HOOK_IP6_ROUTE_NONE": true, + "LWIP_HOOK_IP6_SELECT_SRC_ADDR_CUSTOM": false, + "LWIP_HOOK_IP6_SELECT_SRC_ADDR_DEFAULT": false, + "LWIP_HOOK_IP6_SELECT_SRC_ADDR_NONE": true, + "LWIP_HOOK_ND6_GET_GW_CUSTOM": false, + "LWIP_HOOK_ND6_GET_GW_DEFAULT": false, + "LWIP_HOOK_ND6_GET_GW_NONE": true, + "LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM": false, + "LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT": false, + "LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE": true, + "LWIP_HOOK_TCP_ISN_CUSTOM": false, + "LWIP_HOOK_TCP_ISN_DEFAULT": true, + "LWIP_HOOK_TCP_ISN_NONE": false, + "LWIP_ICMP": true, + "LWIP_IP4_FRAG": true, + "LWIP_IP4_REASSEMBLY": false, + "LWIP_IP6_FRAG": true, + "LWIP_IP6_REASSEMBLY": false, + "LWIP_IPV4": true, + "LWIP_IPV6": true, + "LWIP_IPV6_AUTOCONFIG": false, + "LWIP_IPV6_DUP_DETECT_ATTEMPTS": 1, + "LWIP_IPV6_FORWARD": false, + "LWIP_IPV6_MEMP_NUM_ND6_QUEUE": 3, + "LWIP_IPV6_ND6_NUM_DESTINATIONS": 10, + "LWIP_IPV6_ND6_NUM_NEIGHBORS": 5, + "LWIP_IPV6_ND6_NUM_PREFIXES": 5, + "LWIP_IPV6_ND6_NUM_ROUTERS": 3, + "LWIP_IPV6_ND6_ROUTE_INFO_OPTION_SUPPORT": false, + "LWIP_IPV6_NUM_ADDRESSES": 3, + "LWIP_IP_DEFAULT_TTL": 64, + "LWIP_IP_FORWARD": false, + "LWIP_IP_REASS_MAX_PBUFS": 10, + "LWIP_IRAM_OPTIMIZATION": false, + "LWIP_L2_TO_L3_COPY": false, + "LWIP_LOCAL_HOSTNAME": "espressif", + "LWIP_LOOPBACK_MAX_PBUFS": 8, + "LWIP_MAX_ACTIVE_TCP": 16, + "LWIP_MAX_LISTENING_TCP": 16, + "LWIP_MAX_RAW_PCBS": 16, + "LWIP_MAX_SOCKETS": 10, + "LWIP_MAX_UDP_PCBS": 16, + "LWIP_MLDV6_TMR_INTERVAL": 40, + "LWIP_MULTICAST_PING": false, + "LWIP_ND6": true, + "LWIP_NETBUF_RECVINFO": false, + "LWIP_NETIF_LINK_CALLBACK": false, + "LWIP_NETIF_LOOPBACK": true, + "LWIP_NETIF_STATUS_CALLBACK": false, + "LWIP_NUM_NETIF_CLIENT_DATA": 0, + "LWIP_PPP_SUPPORT": false, + "LWIP_SLIP_SUPPORT": false, + "LWIP_SNTP_MAXIMUM_STARTUP_DELAY": 5000, + "LWIP_SNTP_MAX_SERVERS": 1, + "LWIP_SNTP_STARTUP_DELAY": true, + "LWIP_SNTP_UPDATE_DELAY": 3600000, + "LWIP_SO_LINGER": false, + "LWIP_SO_RCVBUF": false, + "LWIP_SO_REUSE": true, + "LWIP_SO_REUSE_RXTOALL": true, + "LWIP_STATS": false, + "LWIP_TCPIP_CORE_LOCKING": false, + "LWIP_TCPIP_RECVMBOX_SIZE": 32, + "LWIP_TCPIP_TASK_AFFINITY": 2147483647, + "LWIP_TCPIP_TASK_AFFINITY_CPU0": false, + "LWIP_TCPIP_TASK_AFFINITY_CPU1": false, + "LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY": true, + "LWIP_TCPIP_TASK_PRIO": 18, + "LWIP_TCPIP_TASK_STACK_SIZE": 3072, + "LWIP_TCP_ACCEPTMBOX_SIZE": 6, + "LWIP_TCP_FIN_WAIT_TIMEOUT": 20000, + "LWIP_TCP_HIGH_SPEED_RETRANSMISSION": true, + "LWIP_TCP_MAXRTX": 12, + "LWIP_TCP_MSL": 60000, + "LWIP_TCP_MSS": 1440, + "LWIP_TCP_OOSEQ_MAX_PBUFS": 4, + "LWIP_TCP_OOSEQ_TIMEOUT": 6, + "LWIP_TCP_OVERSIZE_DISABLE": false, + "LWIP_TCP_OVERSIZE_MSS": true, + "LWIP_TCP_OVERSIZE_QUARTER_MSS": false, + "LWIP_TCP_QUEUE_OOSEQ": true, + "LWIP_TCP_RECVMBOX_SIZE": 6, + "LWIP_TCP_RTO_TIME": 1500, + "LWIP_TCP_SACK_OUT": false, + "LWIP_TCP_SND_BUF_DEFAULT": 5760, + "LWIP_TCP_SYNMAXRTX": 12, + "LWIP_TCP_TMR_INTERVAL": 250, + "LWIP_TCP_WND_DEFAULT": 5760, + "LWIP_TIMERS_ONDEMAND": true, + "LWIP_UDP_RECVMBOX_SIZE": 6, + "LWIP_USE_ESP_GETADDRINFO": false, + "LWIP_USE_ONLY_LWIP_SELECT": false, + "MBEDTLS_AES_C": true, + "MBEDTLS_AES_FEWER_TABLES": false, + "MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH": false, + "MBEDTLS_AES_ROM_TABLES": true, + "MBEDTLS_AES_SOFT_FALLBACK": false, + "MBEDTLS_ALLOW_WEAK_CERTIFICATE_VERIFICATION": false, + "MBEDTLS_ARIA_C": true, + "MBEDTLS_ASN1_PARSE_C": true, + "MBEDTLS_ASN1_WRITE_C": true, + "MBEDTLS_ASYMMETRIC_CONTENT_LEN": true, + "MBEDTLS_ATCA_HW_ECDSA_SIGN": false, + "MBEDTLS_ATCA_HW_ECDSA_VERIFY": false, + "MBEDTLS_BASE64_C": true, + "MBEDTLS_BIGNUM_C": true, + "MBEDTLS_CAMELLIA_C": false, + "MBEDTLS_CCM_C": true, + "MBEDTLS_CERTIFICATE_BUNDLE": true, + "MBEDTLS_CERTIFICATE_BUNDLE_CROSS_SIGNED_VERIFY": false, + "MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN": false, + "MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL": true, + "MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE": false, + "MBEDTLS_CERTIFICATE_BUNDLE_DEPRECATED_LIST": false, + "MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS": 200, + "MBEDTLS_CHACHA20_C": false, + "MBEDTLS_CIPHER_MODE_CBC": true, + "MBEDTLS_CIPHER_MODE_CFB": true, + "MBEDTLS_CIPHER_MODE_CTR": true, + "MBEDTLS_CIPHER_MODE_OFB": true, + "MBEDTLS_CIPHER_MODE_XTS": true, + "MBEDTLS_CLIENT_SSL_SESSION_TICKETS": true, + "MBEDTLS_CMAC_C": true, + "MBEDTLS_COMPILER_OPTIMIZATION_NONE": false, + "MBEDTLS_COMPILER_OPTIMIZATION_PERF": false, + "MBEDTLS_COMPILER_OPTIMIZATION_SIZE": true, + "MBEDTLS_CTR_DRBG_C": true, + "MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE": false, + "MBEDTLS_CUSTOM_MEM_ALLOC": false, + "MBEDTLS_DEBUG": false, + "MBEDTLS_DEFAULT_MEM_ALLOC": false, + "MBEDTLS_DES_C": false, + "MBEDTLS_DHM_C": false, + "MBEDTLS_DYNAMIC_BUFFER": false, + "MBEDTLS_ECDH_C": true, + "MBEDTLS_ECDSA_C": true, + "MBEDTLS_ECDSA_DETERMINISTIC": true, + "MBEDTLS_ECJPAKE_C": false, + "MBEDTLS_ECP_C": true, + "MBEDTLS_ECP_DP_BP256R1_ENABLED": true, + "MBEDTLS_ECP_DP_BP384R1_ENABLED": true, + "MBEDTLS_ECP_DP_BP512R1_ENABLED": true, + "MBEDTLS_ECP_DP_CURVE25519_ENABLED": true, + "MBEDTLS_ECP_DP_SECP256K1_ENABLED": true, + "MBEDTLS_ECP_DP_SECP256R1_ENABLED": true, + "MBEDTLS_ECP_DP_SECP384R1_ENABLED": true, + "MBEDTLS_ECP_DP_SECP521R1_ENABLED": true, + "MBEDTLS_ECP_FIXED_POINT_OPTIM": false, + "MBEDTLS_ECP_NIST_OPTIM": true, + "MBEDTLS_ECP_RESTARTABLE": false, + "MBEDTLS_ENTROPY_FORCE_SHA256": false, + "MBEDTLS_ERROR_STRINGS": true, + "MBEDTLS_FS_IO": true, + "MBEDTLS_GCM_C": true, + "MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER": true, + "MBEDTLS_HARDWARE_AES": true, + "MBEDTLS_HARDWARE_MPI": true, + "MBEDTLS_HARDWARE_SHA": true, + "MBEDTLS_HAVE_TIME": true, + "MBEDTLS_HAVE_TIME_DATE": false, + "MBEDTLS_HMAC_DRBG_C": true, + "MBEDTLS_INTERNAL_MEM_ALLOC": true, + "MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA": true, + "MBEDTLS_KEY_EXCHANGE_ECDHE_RSA": true, + "MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE": true, + "MBEDTLS_KEY_EXCHANGE_RSA": true, + "MBEDTLS_LARGE_KEY_SOFTWARE_MPI": true, + "MBEDTLS_MD5_C": true, + "MBEDTLS_MD_C": true, + "MBEDTLS_NIST_KW_C": false, + "MBEDTLS_PEM_PARSE_C": true, + "MBEDTLS_PEM_WRITE_C": true, + "MBEDTLS_PKCS1_V15": true, + "MBEDTLS_PKCS1_V21": true, + "MBEDTLS_PKCS5_C": true, + "MBEDTLS_PKCS7_C": true, + "MBEDTLS_PK_C": true, + "MBEDTLS_PK_PARSE_C": true, + "MBEDTLS_PK_PARSE_EC_COMPRESSED": true, + "MBEDTLS_PK_PARSE_EC_EXTENDED": true, + "MBEDTLS_PK_WRITE_C": true, + "MBEDTLS_PLATFORM_TIME_ALT": false, + "MBEDTLS_POLY1305_C": false, + "MBEDTLS_PSK_MODES": false, + "MBEDTLS_RIPEMD160_C": false, + "MBEDTLS_ROM_MD5": true, + "MBEDTLS_RSA_C": true, + "MBEDTLS_SELF_TEST": true, + "MBEDTLS_SERVER_SSL_SESSION_TICKETS": true, + "MBEDTLS_SHA1_C": true, + "MBEDTLS_SHA224_C": false, + "MBEDTLS_SHA256_C": true, + "MBEDTLS_SHA384_C": true, + "MBEDTLS_SHA3_C": true, + "MBEDTLS_SHA512_C": true, + "MBEDTLS_SSL_ALL_ALERT_MESSAGES": true, + "MBEDTLS_SSL_ALPN": true, + "MBEDTLS_SSL_CACHE_C": true, + "MBEDTLS_SSL_CONTEXT_SERIALIZATION": false, + "MBEDTLS_SSL_IN_CONTENT_LEN": 16384, + "MBEDTLS_SSL_KEEP_PEER_CERTIFICATE": false, + "MBEDTLS_SSL_KEYING_MATERIAL_EXPORT": false, + "MBEDTLS_SSL_MAX_FRAGMENT_LENGTH": true, + "MBEDTLS_SSL_OUT_CONTENT_LEN": 4096, + "MBEDTLS_SSL_PROTO_DTLS": false, + "MBEDTLS_SSL_PROTO_GMTSSL1_1": false, + "MBEDTLS_SSL_PROTO_TLS1_2": true, + "MBEDTLS_SSL_PROTO_TLS1_3": false, + "MBEDTLS_SSL_RENEGOTIATION": true, + "MBEDTLS_SSL_SERVER_NAME_INDICATION": true, + "MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH": false, + "MBEDTLS_THREADING_C": false, + "MBEDTLS_TLS_CLIENT": true, + "MBEDTLS_TLS_CLIENT_ONLY": false, + "MBEDTLS_TLS_DISABLED": false, + "MBEDTLS_TLS_ENABLED": true, + "MBEDTLS_TLS_SERVER": true, + "MBEDTLS_TLS_SERVER_AND_CLIENT": true, + "MBEDTLS_TLS_SERVER_ONLY": false, + "MBEDTLS_VERSION_C": true, + "MBEDTLS_VERSION_FEATURES": false, + "MBEDTLS_VER_4_X_SUPPORT": true, + "MBEDTLS_X509_CREATE_C": false, + "MBEDTLS_X509_CRL_PARSE_C": true, + "MBEDTLS_X509_CRT_PARSE_C": true, + "MBEDTLS_X509_CSR_PARSE_C": true, + "MBEDTLS_X509_REMOVE_INFO": false, + "MBEDTLS_X509_RSASSA_PSS_SUPPORT": true, + "MBEDTLS_X509_TRUSTED_CERT_CALLBACK": false, + "MBEDTLS_X509_USE_C": true, + "MCPWM_CTRL_FUNC_IN_IRAM": false, + "MCPWM_ENABLE_DEBUG_LOG": false, + "MCPWM_ISR_CACHE_SAFE": false, + "MCPWM_ISR_HANDLER_IN_IRAM": true, + "MCPWM_OBJ_CACHE_SAFE": true, + "MMU_PAGE_MODE": "64KB", + "MMU_PAGE_SIZE": 65536, + "MMU_PAGE_SIZE_64KB": true, + "NVS_ASSERT_ERROR_CHECK": false, + "NVS_BDL_STACK": false, + "NVS_LEGACY_DUP_KEYS_COMPATIBILITY": false, + "OPENTHREAD_DEBUG": false, + "OPENTHREAD_ENABLED": false, + "OPENTHREAD_SPINEL_ONLY": false, + "PARTITION_TABLE_CUSTOM": false, + "PARTITION_TABLE_CUSTOM_FILENAME": "partitions.csv", + "PARTITION_TABLE_FILENAME": "partitions_singleapp.csv", + "PARTITION_TABLE_MD5": true, + "PARTITION_TABLE_OFFSET": 32768, + "PARTITION_TABLE_SINGLE_APP": true, + "PARTITION_TABLE_SINGLE_APP_LARGE": false, + "PARTITION_TABLE_TWO_OTA": false, + "PARTITION_TABLE_TWO_OTA_LARGE": false, + "PCNT_CTRL_FUNC_IN_IRAM": false, + "PCNT_ENABLE_DEBUG_LOG": false, + "PCNT_ISR_IRAM_SAFE": false, + "PM_ENABLE": false, + "PM_SLEEP_FUNC_IN_IRAM": false, + "PM_SLP_IRAM_OPT": false, + "PTHREAD_DEFAULT_CORE_0": false, + "PTHREAD_DEFAULT_CORE_1": false, + "PTHREAD_DEFAULT_CORE_NO_AFFINITY": true, + "PTHREAD_STACK_MIN": 768, + "PTHREAD_TASK_CORE_DEFAULT": -1, + "PTHREAD_TASK_NAME_DEFAULT": "pthread", + "PTHREAD_TASK_PRIO_DEFAULT": 5, + "PTHREAD_TASK_STACK_SIZE_DEFAULT": 3072, + "RINGBUF_IN_IRAM": false, + "RINGBUF_PLACE_ISR_FUNCTIONS_INTO_FLASH": false, + "RMT_ENABLE_DEBUG_LOG": false, + "RMT_ENCODER_FUNC_IN_IRAM": true, + "RMT_ISR_IRAM_SAFE": false, + "RMT_OBJ_CACHE_SAFE": true, + "RMT_RECV_FUNC_IN_IRAM": false, + "RMT_RX_ISR_CACHE_SAFE": false, + "RMT_RX_ISR_HANDLER_IN_IRAM": true, + "RMT_TX_ISR_CACHE_SAFE": false, + "RMT_TX_ISR_HANDLER_IN_IRAM": true, + "RTC_CLK_CAL_CYCLES": 1024, + "RTC_CLK_FUNC_IN_IRAM": true, + "RTC_CLK_SRC_EXT_CRYS": false, + "RTC_CLK_SRC_EXT_OSC": false, + "RTC_CLK_SRC_INT_8MD256": false, + "RTC_CLK_SRC_INT_RC": true, + "RTC_TIME_FUNC_IN_IRAM": true, + "SDM_CTRL_FUNC_IN_IRAM": false, + "SDM_ENABLE_DEBUG_LOG": false, + "SD_ENABLE_SDIO_SUPPORT": true, + "SD_HOST_SDMMC_ISR_CACHE_SAFE": false, + "SECURE_BOOT": false, + "SECURE_BOOT_V1_SUPPORTED": true, + "SECURE_FLASH_ENC_ENABLED": false, + "SECURE_SIGNED_APPS_NO_SECURE_BOOT": false, + "SOC_ADC_ATTEN_NUM": 4, + "SOC_ADC_DIGI_CONTROLLER_NUM": 2, + "SOC_ADC_DIGI_DATA_BYTES_PER_CONV": 4, + "SOC_ADC_DIGI_MAX_BITWIDTH": 12, + "SOC_ADC_DIGI_MIN_BITWIDTH": 9, + "SOC_ADC_DIGI_MONITOR_NUM": 0, + "SOC_ADC_DIGI_RESULT_BYTES": 2, + "SOC_ADC_DIG_CTRL_SUPPORTED": true, + "SOC_ADC_DMA_SUPPORTED": true, + "SOC_ADC_MAX_CHANNEL_NUM": 10, + "SOC_ADC_PATT_LEN_MAX": 16, + "SOC_ADC_PERIPH_NUM": 2, + "SOC_ADC_RTC_CTRL_SUPPORTED": true, + "SOC_ADC_RTC_MAX_BITWIDTH": 12, + "SOC_ADC_RTC_MIN_BITWIDTH": 9, + "SOC_ADC_SAMPLE_FREQ_THRES_HIGH": 2000000, + "SOC_ADC_SAMPLE_FREQ_THRES_LOW": 20000, + "SOC_ADC_SHARED_POWER": true, + "SOC_ADC_SUPPORTED": true, + "SOC_AES_SUPPORTED": true, + "SOC_AES_SUPPORT_AES_128": true, + "SOC_AES_SUPPORT_AES_192": true, + "SOC_AES_SUPPORT_AES_256": true, + "SOC_BLE_MESH_SUPPORTED": true, + "SOC_BLE_MULTI_CONN_OPTIMIZATION": true, + "SOC_BLE_SUPPORTED": true, + "SOC_BLUFI_SUPPORTED": true, + "SOC_BOD_SUPPORTED": true, + "SOC_BROWNOUT_RESET_SUPPORTED": true, + "SOC_BT_CLASSIC_SUPPORTED": true, + "SOC_BT_H2C_ENC_KEY_CTRL_ENH_VSC_SUPPORTED": true, + "SOC_BT_SUPPORTED": true, + "SOC_CAPS_ECO_VER_MAX": 301, + "SOC_CCOMP_TIMER_SUPPORTED": true, + "SOC_CLK_APLL_SUPPORTED": true, + "SOC_CLK_LP_FAST_SUPPORT_XTAL_D4": true, + "SOC_CLK_RC_FAST_D256_SUPPORTED": true, + "SOC_CLK_RC_FAST_SUPPORT_CALIBRATION": true, + "SOC_CLK_TREE_SUPPORTED": true, + "SOC_CLK_XTAL32K_SUPPORTED": true, + "SOC_CONFIGURABLE_VDDSDIO_SUPPORTED": true, + "SOC_CPU_BREAKPOINTS_NUM": 2, + "SOC_CPU_CORES_NUM": 2, + "SOC_CPU_HAS_FPU": true, + "SOC_CPU_INTR_NUM": 32, + "SOC_CPU_WATCHPOINTS_NUM": 2, + "SOC_CPU_WATCHPOINT_MAX_REGION_SIZE": 64, + "SOC_DAC_CHAN_NUM": 2, + "SOC_DAC_DMA_16BIT_ALIGN": true, + "SOC_DAC_RESOLUTION": 8, + "SOC_DAC_SUPPORTED": true, + "SOC_DEEP_SLEEP_SUPPORTED": true, + "SOC_DPORT_WORKAROUND_DIS_INTERRUPT_LVL": 5, + "SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS": 1, + "SOC_EFUSE_SUPPORTED": true, + "SOC_EMAC_RMII_CLK_OUT_INTERNAL_LOOPBACK": true, + "SOC_EMAC_SUPPORTED": true, + "SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX": 32, + "SOC_FLASH_ENC_SUPPORTED": true, + "SOC_GPIO_CLOCKOUT_BY_IO_MUX": true, + "SOC_GPIO_CLOCKOUT_CHANNEL_NUM": 3, + "SOC_GPIO_IN_RANGE_MAX": 39, + "SOC_GPIO_OUT_RANGE_MAX": 33, + "SOC_GPIO_PIN_COUNT": 40, + "SOC_GPIO_PORT": 1, + "SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK": 15667178, + "SOC_GPIO_VALID_GPIO_MASK": 1099511627775, + "SOC_GPSPI_SUPPORTED": true, + "SOC_GPTIMER_SUPPORTED": true, + "SOC_HP_CPU_HAS_MULTIPLE_CORES": true, + "SOC_HP_I2C_NUM": 2, + "SOC_I2C_CMD_REG_NUM": 16, + "SOC_I2C_FIFO_LEN": 32, + "SOC_I2C_NUM": 2, + "SOC_I2C_STOP_INDEPENDENT": true, + "SOC_I2C_SUPPORTED": true, + "SOC_I2C_SUPPORT_10BIT_ADDR": true, + "SOC_I2C_SUPPORT_APB": true, + "SOC_I2C_SUPPORT_SLAVE": true, + "SOC_I2S_HW_VERSION_1": true, + "SOC_I2S_I80_LCD_SUPPORTED": true, + "SOC_I2S_PDM_MAX_RX_LINES": 1, + "SOC_I2S_PDM_MAX_TX_LINES": 1, + "SOC_I2S_SUPPORTED": true, + "SOC_I2S_SUPPORTS_APLL": true, + "SOC_I2S_SUPPORTS_PCM2PDM": true, + "SOC_I2S_SUPPORTS_PDM": true, + "SOC_I2S_SUPPORTS_PDM2PCM": true, + "SOC_I2S_SUPPORTS_PDM_RX": true, + "SOC_I2S_SUPPORTS_PDM_TX": true, + "SOC_IDCACHE_PER_CORE": true, + "SOC_LCD_I80_SUPPORTED": true, + "SOC_LEDC_CHANNEL_NUM": 8, + "SOC_LEDC_HAS_TIMER_SPECIFIC_MUX": true, + "SOC_LEDC_SUPPORTED": true, + "SOC_LEDC_SUPPORT_APB_CLOCK": true, + "SOC_LEDC_SUPPORT_HS_MODE": true, + "SOC_LEDC_SUPPORT_REF_TICK": true, + "SOC_LEDC_TIMER_BIT_WIDTH": 20, + "SOC_LEDC_TIMER_NUM": 4, + "SOC_LIGHT_SLEEP_SUPPORTED": true, + "SOC_LP_PERIPH_SHARE_INTERRUPT": true, + "SOC_LP_TIMER_BIT_WIDTH_HI": 16, + "SOC_LP_TIMER_BIT_WIDTH_LO": 32, + "SOC_MCPWM_SUPPORTED": true, + "SOC_MEMSPI_SRC_FREQ_20M_SUPPORTED": true, + "SOC_MEMSPI_SRC_FREQ_26M_SUPPORTED": true, + "SOC_MEMSPI_SRC_FREQ_40M_SUPPORTED": true, + "SOC_MEMSPI_SRC_FREQ_80M_SUPPORTED": true, + "SOC_MMU_LINEAR_ADDRESS_REGION_NUM": 3, + "SOC_MMU_PERIPH_NUM": 2, + "SOC_MPI_MEM_BLOCKS_NUM": 4, + "SOC_MPI_OPERATIONS_NUM": 1, + "SOC_MPI_SUPPORTED": true, + "SOC_MPU_MIN_REGION_SIZE": 536870912, + "SOC_MPU_REGIONS_MAX_NUM": 8, + "SOC_MPU_SUPPORTED": true, + "SOC_PCNT_SUPPORTED": true, + "SOC_PHY_COMBO_MODULE": true, + "SOC_PHY_DIG_REGS_MEM_SIZE": 21, + "SOC_PHY_SUPPORTED": true, + "SOC_PM_MODEM_PD_BY_SW": true, + "SOC_PM_SUPPORTED": true, + "SOC_PM_SUPPORT_EXT0_WAKEUP": true, + "SOC_PM_SUPPORT_EXT1_WAKEUP": true, + "SOC_PM_SUPPORT_EXT_WAKEUP": true, + "SOC_PM_SUPPORT_MODEM_PD": true, + "SOC_PM_SUPPORT_RC_FAST_PD": true, + "SOC_PM_SUPPORT_RTC_FAST_MEM_PD": true, + "SOC_PM_SUPPORT_RTC_PERIPH_PD": true, + "SOC_PM_SUPPORT_RTC_SLOW_MEM_PD": true, + "SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP": true, + "SOC_PM_SUPPORT_VDDSDIO_PD": true, + "SOC_RMT_MEM_WORDS_PER_CHANNEL": 64, + "SOC_RMT_SUPPORTED": true, + "SOC_RNG_SUPPORTED": true, + "SOC_RSA_MAX_BIT_LEN": 4096, + "SOC_RTCIO_HOLD_SUPPORTED": true, + "SOC_RTCIO_INPUT_OUTPUT_SUPPORTED": true, + "SOC_RTCIO_PIN_COUNT": 18, + "SOC_RTCIO_WAKE_SUPPORTED": true, + "SOC_RTC_FAST_MEM_SUPPORTED": true, + "SOC_RTC_MEM_SUPPORTED": true, + "SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256": true, + "SOC_RTC_SLOW_MEM_SUPPORTED": true, + "SOC_SDIO_SLAVE_SUPPORTED": true, + "SOC_SDMMC_DATA_WIDTH_MAX": 8, + "SOC_SDMMC_HOST_SUPPORTED": true, + "SOC_SDMMC_NUM_SLOTS": 2, + "SOC_SDMMC_USE_IOMUX": true, + "SOC_SDM_SUPPORTED": true, + "SOC_SECURE_BOOT_SUPPORTED": true, + "SOC_SECURE_BOOT_V1": true, + "SOC_SHARED_IDCACHE_SUPPORTED": true, + "SOC_SHA_ENDIANNESS_BE": true, + "SOC_SHA_SUPPORTED": true, + "SOC_SHA_SUPPORT_PARALLEL_ENG": true, + "SOC_SHA_SUPPORT_SHA1": true, + "SOC_SHA_SUPPORT_SHA256": true, + "SOC_SHA_SUPPORT_SHA384": true, + "SOC_SHA_SUPPORT_SHA512": true, + "SOC_SPIRAM_SUPPORTED": true, + "SOC_SPI_AS_CS_SUPPORTED": true, + "SOC_SPI_DMA_CHAN_NUM": 2, + "SOC_SPI_FLASH_SUPPORTED": true, + "SOC_SPI_HD_BOTH_INOUT_SUPPORTED": true, + "SOC_SPI_MAXIMUM_BUFFER_SIZE": 64, + "SOC_SPI_MAX_CS_NUM": 3, + "SOC_SPI_MAX_PRE_DIVIDER": 8192, + "SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE": true, + "SOC_SPI_PERIPH_NUM": 3, + "SOC_SPI_SUPPORT_CLK_APB": true, + "SOC_SUPPORT_COEXISTENCE": true, + "SOC_TOUCH_MAX_CHAN_ID": 9, + "SOC_TOUCH_MIN_CHAN_ID": 0, + "SOC_TOUCH_SAMPLE_CFG_NUM": 1, + "SOC_TOUCH_SENSOR_SUPPORTED": true, + "SOC_TOUCH_SENSOR_VERSION": 1, + "SOC_TOUCH_SUPPORT_SLEEP_WAKEUP": true, + "SOC_TWAI_CONTROLLER_NUM": 1, + "SOC_TWAI_MASK_FILTER_NUM": 1, + "SOC_TWAI_SUPPORTED": true, + "SOC_UART_BITRATE_MAX": 5000000, + "SOC_UART_FIFO_LEN": 128, + "SOC_UART_HP_NUM": 3, + "SOC_UART_NUM": 3, + "SOC_UART_SUPPORTED": true, + "SOC_UART_SUPPORT_APB_CLK": true, + "SOC_UART_SUPPORT_REF_TICK": true, + "SOC_UART_WAKEUP_SUPPORT_ACTIVE_THRESH_MODE": true, + "SOC_ULP_FSM_SUPPORTED": true, + "SOC_ULP_HAS_ADC": true, + "SOC_ULP_SUPPORTED": true, + "SOC_WDT_SUPPORTED": true, + "SOC_WIFI_CSI_SUPPORT": true, + "SOC_WIFI_MESH_SUPPORT": true, + "SOC_WIFI_NAN_SUPPORT": true, + "SOC_WIFI_SUPPORTED": true, + "SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW": true, + "SOC_WIFI_WAPI_SUPPORT": true, + "SOC_XTAL_SUPPORT_26M": true, + "SOC_XTAL_SUPPORT_40M": true, + "SPIFFS_API_DBG": false, + "SPIFFS_CACHE": true, + "SPIFFS_CACHE_DBG": false, + "SPIFFS_CACHE_STATS": false, + "SPIFFS_CACHE_WR": true, + "SPIFFS_CHECK_DBG": false, + "SPIFFS_DBG": false, + "SPIFFS_FOLLOW_SYMLINKS": false, + "SPIFFS_GC_DBG": false, + "SPIFFS_GC_MAX_RUNS": 10, + "SPIFFS_GC_STATS": false, + "SPIFFS_MAX_PARTITIONS": 3, + "SPIFFS_META_LENGTH": 4, + "SPIFFS_OBJ_NAME_LEN": 32, + "SPIFFS_PAGE_CHECK": true, + "SPIFFS_PAGE_SIZE": 256, + "SPIFFS_TEST_VISUALISATION": false, + "SPIFFS_USE_MAGIC": true, + "SPIFFS_USE_MAGIC_LENGTH": true, + "SPIFFS_USE_MTIME": true, + "SPIRAM": false, + "SPI_FLASH_BROWNOUT_RESET": true, + "SPI_FLASH_BROWNOUT_RESET_XMC": true, + "SPI_FLASH_BYPASS_BLOCK_ERASE": false, + "SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED": false, + "SPI_FLASH_DANGEROUS_WRITE_ABORTS": true, + "SPI_FLASH_DANGEROUS_WRITE_ALLOWED": false, + "SPI_FLASH_DANGEROUS_WRITE_FAILS": false, + "SPI_FLASH_ENABLE_COUNTERS": false, + "SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE": true, + "SPI_FLASH_ERASE_YIELD_DURATION_MS": 20, + "SPI_FLASH_ERASE_YIELD_TICKS": 1, + "SPI_FLASH_FORCE_ENABLE_C6_H2_SUSPEND": false, + "SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND": false, + "SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST": false, + "SPI_FLASH_PLACE_FUNCTIONS_IN_IRAM": true, + "SPI_FLASH_SHARE_SPI1_BUS": false, + "SPI_FLASH_SIZE_OVERRIDE": false, + "SPI_FLASH_SUPPORT_BOYA_CHIP": false, + "SPI_FLASH_SUPPORT_GD_CHIP": true, + "SPI_FLASH_SUPPORT_ISSI_CHIP": true, + "SPI_FLASH_SUPPORT_MXIC_CHIP": true, + "SPI_FLASH_SUPPORT_TH_CHIP": false, + "SPI_FLASH_SUPPORT_WINBOND_CHIP": true, + "SPI_FLASH_SUSPEND_TSUS_VAL_US": 50, + "SPI_FLASH_VENDOR_GD_SUPPORT_ENABLED": true, + "SPI_FLASH_VENDOR_ISSI_SUPPORT_ENABLED": true, + "SPI_FLASH_VENDOR_MXIC_SUPPORT_ENABLED": true, + "SPI_FLASH_VENDOR_WINBOND_SUPPORT_ENABLED": true, + "SPI_FLASH_VENDOR_XMC_SUPPORT_ENABLED": true, + "SPI_FLASH_VERIFY_WRITE": false, + "SPI_FLASH_WRITE_CHUNK_SIZE": 8192, + "SPI_FLASH_YIELD_DURING_ERASE": true, + "SPI_MASTER_ISR_IN_IRAM": true, + "SPI_SLAVE_IN_IRAM": false, + "SPI_SLAVE_ISR_IN_IRAM": true, + "TOUCH_CTRL_FUNC_IN_IRAM": false, + "TOUCH_ENABLE_DEBUG_LOG": false, + "TOUCH_ISR_IRAM_SAFE": false, + "TOUCH_SKIP_FSM_CHECK": false, + "TOUCH_SKIP_LEGACY_CONFLICT_CHECK": false, + "TOUCH_SUPPRESS_DEPRECATE_WARN": false, + "TWAI_ENABLE_DEBUG_LOG": false, + "TWAI_IO_FUNC_IN_IRAM": false, + "TWAI_ISR_CACHE_SAFE": false, + "TWAI_ISR_IN_IRAM": false, + "TWAI_ISR_IN_IRAM_LEGACY": false, + "TWAI_SKIP_LEGACY_CONFLICT_CHECK": false, + "TWAI_SUPPRESS_DEPRECATE_WARN": false, + "UART_ISR_IN_IRAM": false, + "UHCI_ENABLE_DEBUG_LOG": false, + "UHCI_ISR_CACHE_SAFE": false, + "UHCI_ISR_HANDLER_IN_IRAM": false, + "ULP_COPROC_ENABLED": false, + "UNITY_CRITICAL_LEAK_LEVEL_GENERAL": 1200, + "UNITY_CRITICAL_LEAK_LEVEL_LWIP": 4095, + "UNITY_ENABLE_64BIT": false, + "UNITY_ENABLE_BACKTRACE_ON_FAIL": false, + "UNITY_ENABLE_COLOR": false, + "UNITY_ENABLE_DOUBLE": true, + "UNITY_ENABLE_FIXTURE": false, + "UNITY_ENABLE_FLOAT": true, + "UNITY_ENABLE_IDF_TEST_RUNNER": true, + "UNITY_FREERTOS_CPU": 0, + "UNITY_FREERTOS_PRIORITY": 5, + "UNITY_FREERTOS_STACK_SIZE": 8192, + "UNITY_IGNORE_PERFORMANCE_TESTS": false, + "UNITY_WARN_LEAK_LEVEL_GENERAL": 255, + "VFS_INITIALIZE_DEV_NULL": true, + "VFS_MAX_COUNT": 8, + "VFS_SELECT_IN_RAM": false, + "VFS_SEMIHOSTFS_MAX_MOUNT_POINTS": 1, + "VFS_SUPPORT_DIR": true, + "VFS_SUPPORT_IO": true, + "VFS_SUPPORT_SELECT": true, + "VFS_SUPPORT_TERMIOS": false, + "VFS_SUPPRESS_SELECT_DEBUG_OUTPUT": true, + "WL_SECTOR_SIZE": 4096, + "WL_SECTOR_SIZE_4096": true, + "WL_SECTOR_SIZE_512": false, + "WS_BUFFER_SIZE": 1024, + "WS_DYNAMIC_BUFFER": false, + "WS_TRANSPORT": true, + "XTAL_FREQ": 40, + "XTAL_FREQ_26": false, + "XTAL_FREQ_32": false, + "XTAL_FREQ_40": true, + "XTAL_FREQ_AUTO": false +} \ No newline at end of file diff --git a/tests/fixtures/unit_test_app_qemu/build/flasher_args.json b/tests/fixtures/unit_test_app_qemu/build/flasher_args.json new file mode 100644 index 00000000..8d9caf48 --- /dev/null +++ b/tests/fixtures/unit_test_app_qemu/build/flasher_args.json @@ -0,0 +1,24 @@ +{ + "write_flash_args" : [ "--flash-mode", "dio", + "--flash-size", "2MB", + "--flash-freq", "40m" ], + "flash_settings" : { + "flash_mode": "dio", + "flash_size": "2MB", + "flash_freq": "40m" + }, + "flash_files" : { + "0x1000" : "bootloader/bootloader.bin", + "0x8000" : "partition_table/partition-table.bin", + "0x10000" : "case_tester_example.bin" + }, + "bootloader" : { "offset" : "0x1000", "file" : "bootloader/bootloader.bin", "encrypted" : "false" }, + "partition-table" : { "offset" : "0x8000", "file" : "partition_table/partition-table.bin", "encrypted" : "false" }, + "app" : { "offset" : "0x10000", "file" : "case_tester_example.bin", "encrypted" : "false" }, + "extra_esptool_args" : { + "after" : "hard-reset", + "before" : "default-reset", + "stub" : true, + "chip" : "esp32" + } +} diff --git a/tests/fixtures/unit_test_app_qemu/build/partition_table/partition-table.bin b/tests/fixtures/unit_test_app_qemu/build/partition_table/partition-table.bin new file mode 100644 index 00000000..b8fa03b4 Binary files /dev/null and b/tests/fixtures/unit_test_app_qemu/build/partition_table/partition-table.bin differ diff --git a/tests/fixtures/unit_test_app_qemu/main/CMakeLists.txt b/tests/fixtures/unit_test_app_qemu/main/CMakeLists.txt new file mode 100644 index 00000000..1b83b5ec --- /dev/null +++ b/tests/fixtures/unit_test_app_qemu/main/CMakeLists.txt @@ -0,0 +1,5 @@ +idf_component_register(SRCS "test_app_main.c" + "case_tester_example.c" + INCLUDE_DIRS "." + PRIV_REQUIRES test_utils unity + WHOLE_ARCHIVE) diff --git a/tests/fixtures/unit_test_app_qemu/main/case_tester_example.c b/tests/fixtures/unit_test_app_qemu/main/case_tester_example.c new file mode 100644 index 00000000..66dee5b3 --- /dev/null +++ b/tests/fixtures/unit_test_app_qemu/main/case_tester_example.c @@ -0,0 +1,110 @@ +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "esp_chip_info.h" +#include "hal/rtc_cntl_ll.h" +#include "unity.h" +#include "test_utils.h" +#include "esp_log.h" + + +/* +The ideal test result of `run_all_single_board_cases` should be: + normal_case_pass: pass + normal_case_fail: fail + + +*/ + +TEST_CASE("normal_case_pass", "[normal_case]") +{ + TEST_ASSERT(true); +} + +TEST_CASE("normal_case_fail", "[normal_case]") +{ + TEST_ASSERT(false); +} + +void multi1_stage1(void) +{ + TEST_ASSERT_EQUAL(1, 2); +} + +void multi1_stage2(void) +{ + TEST_ASSERT_EQUAL(1, 1); +} + +void multi1_stage3(void) +{ + TEST_ASSERT_EQUAL(1, 1); +} + +TEST_CASE_MULTIPLE_STAGES("multi_stage_fail_first", "[multi_stage]", + multi1_stage1, multi1_stage2, multi1_stage3); + +void multi2_stage1(void) +{ + TEST_ASSERT(true); +} + +void multi2_stage2(void) +{ + TEST_ASSERT(false); +} + +void multi2_stage3(void) +{ + TEST_ASSERT_EQUAL(1, 1); +} + +TEST_CASE_MULTIPLE_STAGES("multi_stage_fail_middle", "[multi_stage]", + multi2_stage1, multi2_stage2, multi2_stage3); + +void multi3_stage1(void) +{ + TEST_ASSERT(true); + TEST_ASSERT(true); +} + +void multi3_stage2(void) +{ + TEST_ASSERT_EQUAL(1, 1); +} + +void multi3_stage3(void) +{ + TEST_ASSERT(false); +} + +TEST_CASE_MULTIPLE_STAGES("multi_stage_fail_last", "[multi_stage]", + multi3_stage1, multi3_stage2, multi3_stage3); + +void multi4_stage1(void) +{ + TEST_ASSERT(true); +} + +void multi4_stage2(void) +{ + int temp = 1; // no assert +} + +void multi4_stage3(void) +{ + TEST_ASSERT(true); +} + +TEST_CASE_MULTIPLE_STAGES("multi_stage_pass", "[multi_stage]", + multi4_stage1, multi4_stage2, multi4_stage3); + +TEST_CASE("normal_case_pass2", "[normal_case]") +{ + int temp = 1; // no assert +} + +TEST_CASE("normal_case_fail2", "[normal_case]") +{ + TEST_ASSERT(false); +} diff --git a/tests/fixtures/unit_test_app_qemu/main/test_app_main.c b/tests/fixtures/unit_test_app_qemu/main/test_app_main.c new file mode 100644 index 00000000..896caa32 --- /dev/null +++ b/tests/fixtures/unit_test_app_qemu/main/test_app_main.c @@ -0,0 +1,40 @@ +/* + * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "unity.h" +#include "unity_test_runner.h" +#include "esp_heap_caps.h" + +#define TEST_MEMORY_LEAK_THRESHOLD (-200) + +static size_t before_free_8bit; +static size_t before_free_32bit; + +static void check_leak(size_t before_free, size_t after_free, const char *type) +{ + ssize_t delta = after_free - before_free; + printf("MALLOC_CAP_%s: Before %u bytes free, After %u bytes free (delta %d)\n", type, before_free, after_free, delta); + TEST_ASSERT_MESSAGE(delta >= TEST_MEMORY_LEAK_THRESHOLD, "memory leak"); +} + +void setUp(void) +{ + before_free_8bit = heap_caps_get_free_size(MALLOC_CAP_8BIT); + before_free_32bit = heap_caps_get_free_size(MALLOC_CAP_32BIT); +} + +void tearDown(void) +{ + size_t after_free_8bit = heap_caps_get_free_size(MALLOC_CAP_8BIT); + size_t after_free_32bit = heap_caps_get_free_size(MALLOC_CAP_32BIT); + check_leak(before_free_8bit, after_free_8bit, "8BIT"); + check_leak(before_free_32bit, after_free_32bit, "32BIT"); +} + +void app_main(void) +{ + unity_run_menu(); +}