HF Interface Wrapper 0.1.0-dev
Embedded C++ hardware abstraction layer
Loading...
Searching...
No Matches
GpioComprehensiveTest.cpp File Reference

Comprehensive GPIO testing suite for ESP32-C6 DevKit-M-1 (noexcept) More...

#include "utils/AsciiArtGenerator.h"
#include "utils/memory_utils.h"
#include "base/BaseGpio.h"
#include "mcu/esp32/EspGpio.h"
#include "mcu/esp32/utils/EspTypes_GPIO.h"
#include <memory>
#include <vector>
#include "TestFramework.h"
Include dependency graph for GpioComprehensiveTest.cpp:

Namespaces

namespace  TestPins
 

Functions

bool test_basic_gpio_functionality () noexcept
 Test basic GPIO functionality including initialization and basic operations.
 
bool test_gpio_initialization_and_configuration () noexcept
 Test GPIO initialization and configuration modes.
 
bool test_gpio_input_output_operations () noexcept
 Test GPIO input/output operations and state management.
 
bool test_gpio_pull_resistors () noexcept
 Test GPIO pull resistor functionality.
 
bool test_gpio_interrupt_functionality () noexcept
 Test GPIO interrupt functionality.
 
bool test_gpio_interrupt_loopback () noexcept
 
bool test_gpio_advanced_features () noexcept
 Test advanced GPIO features (ESP32-C6 specific)
 
bool test_gpio_rtc_functionality () noexcept
 Test RTC GPIO functionality for low-power operations.
 
bool test_gpio_glitch_filters () noexcept
 Test other advanced GPIO functions - placeholders for comprehensive testing.
 
bool test_gpio_sleep_and_wakeup () noexcept
 
bool test_gpio_hold_functionality () noexcept
 
bool test_gpio_drive_capabilities () noexcept
 
bool test_gpio_diagnostics_and_statistics () noexcept
 
bool test_gpio_error_handling () noexcept
 
bool test_gpio_stress_testing () noexcept
 
bool test_gpio_pin_validation () noexcept
 
bool test_gpio_loopback_operations () noexcept
 
bool test_gpio_concurrent_operations () noexcept
 
bool test_gpio_power_consumption () noexcept
 
static void IRAM_ATTR gpio_isr_loopback_cb (BaseGpio *, hf_gpio_interrupt_trigger_t, void *)
 
void app_main (void)
 Main application entry point.
 

Variables

static const char * TAG = "GPIO_Test"
 
static constexpr hf_pin_num_t TestPins::LED_OUTPUT = 14
 
static constexpr hf_pin_num_t TestPins::DIGITAL_OUT_1 = 4
 
static constexpr hf_pin_num_t TestPins::DIGITAL_OUT_2 = 23
 
static constexpr hf_pin_num_t TestPins::DIGITAL_IN_1 = 2
 
static constexpr hf_pin_num_t TestPins::DIGITAL_IN_2 = 17
 
static constexpr hf_pin_num_t TestPins::INTERRUPT_PIN = 2
 
static constexpr hf_pin_num_t TestPins::PULL_TEST_PIN = 17
 
static constexpr hf_pin_num_t TestPins::DRIVE_TEST_PIN = 16
 
static constexpr hf_pin_num_t TestPins::RTC_GPIO_PIN = 5
 
static constexpr hf_pin_num_t TestPins::ANALOG_PIN = 4
 
static constexpr hf_pin_num_t TestPins::LOOPBACK_OUT = 19
 
static constexpr hf_pin_num_t TestPins::LOOPBACK_IN = 20
 
static constexpr hf_pin_num_t TestPins::STRESS_TEST_PIN = 23
 
static TestResults g_test_results
 
static constexpr bool ENABLE_CORE_TESTS
 
static constexpr bool ENABLE_INTERRUPT_TESTS = true
 
static constexpr bool ENABLE_ADVANCED_TESTS = true
 
static constexpr bool ENABLE_ESP_SPECIFIC_TESTS
 
static constexpr bool ENABLE_ROBUSTNESS_TESTS = true
 
static constexpr bool ENABLE_SPECIALIZED_TESTS
 
static volatile uint32_t s_isr_loopback_count = 0
 Test ISR callback handling using loopback between output and input pins.
 

Detailed Description

Comprehensive GPIO testing suite for ESP32-C6 DevKit-M-1 (noexcept)

This file contains a unified, comprehensive test suite for the EspGpio class targeting ESP32-C6 with ESP-IDF v5.5+. It provides thorough testing of all GPIO functionalities including basic operations, advanced features, interrupts, power management, and hardware-specific capabilities.

All functions are noexcept - no exception handling used.

Author
Nebiyu Tadesse
Date
2025

Function Documentation

◆ app_main()

void app_main ( void )

Main application entry point.

◆ gpio_isr_loopback_cb()

static void IRAM_ATTR gpio_isr_loopback_cb ( BaseGpio * ,
hf_gpio_interrupt_trigger_t ,
void *  )
static

◆ test_basic_gpio_functionality()

bool test_basic_gpio_functionality ( )
noexcept

Test basic GPIO functionality including initialization and basic operations.

◆ test_gpio_advanced_features()

bool test_gpio_advanced_features ( )
noexcept

Test advanced GPIO features (ESP32-C6 specific)

◆ test_gpio_concurrent_operations()

bool test_gpio_concurrent_operations ( )
noexcept

◆ test_gpio_diagnostics_and_statistics()

bool test_gpio_diagnostics_and_statistics ( )
noexcept

◆ test_gpio_drive_capabilities()

bool test_gpio_drive_capabilities ( )
noexcept

◆ test_gpio_error_handling()

bool test_gpio_error_handling ( )
noexcept

◆ test_gpio_glitch_filters()

bool test_gpio_glitch_filters ( )
noexcept

Test other advanced GPIO functions - placeholders for comprehensive testing.

◆ test_gpio_hold_functionality()

bool test_gpio_hold_functionality ( )
noexcept

◆ test_gpio_initialization_and_configuration()

bool test_gpio_initialization_and_configuration ( )
noexcept

Test GPIO initialization and configuration modes.

◆ test_gpio_input_output_operations()

bool test_gpio_input_output_operations ( )
noexcept

Test GPIO input/output operations and state management.

◆ test_gpio_interrupt_functionality()

bool test_gpio_interrupt_functionality ( )
noexcept

Test GPIO interrupt functionality.

◆ test_gpio_interrupt_loopback()

bool test_gpio_interrupt_loopback ( )
noexcept

◆ test_gpio_loopback_operations()

bool test_gpio_loopback_operations ( )
noexcept

◆ test_gpio_pin_validation()

bool test_gpio_pin_validation ( )
noexcept

◆ test_gpio_power_consumption()

bool test_gpio_power_consumption ( )
noexcept

◆ test_gpio_pull_resistors()

bool test_gpio_pull_resistors ( )
noexcept

Test GPIO pull resistor functionality.

◆ test_gpio_rtc_functionality()

bool test_gpio_rtc_functionality ( )
noexcept

Test RTC GPIO functionality for low-power operations.

◆ test_gpio_sleep_and_wakeup()

bool test_gpio_sleep_and_wakeup ( )
noexcept

◆ test_gpio_stress_testing()

bool test_gpio_stress_testing ( )
noexcept

Variable Documentation

◆ ENABLE_ADVANCED_TESTS

constexpr bool ENABLE_ADVANCED_TESTS = true
staticconstexpr

◆ ENABLE_CORE_TESTS

constexpr bool ENABLE_CORE_TESTS
staticconstexpr
Initial value:
=
true

◆ ENABLE_ESP_SPECIFIC_TESTS

constexpr bool ENABLE_ESP_SPECIFIC_TESTS
staticconstexpr
Initial value:
=
true

◆ ENABLE_INTERRUPT_TESTS

constexpr bool ENABLE_INTERRUPT_TESTS = true
staticconstexpr

◆ ENABLE_ROBUSTNESS_TESTS

constexpr bool ENABLE_ROBUSTNESS_TESTS = true
staticconstexpr

◆ ENABLE_SPECIALIZED_TESTS

constexpr bool ENABLE_SPECIALIZED_TESTS
staticconstexpr
Initial value:
=
true

◆ g_test_results

TestResults g_test_results
static

◆ s_isr_loopback_count

volatile uint32_t s_isr_loopback_count = 0
static

Test ISR callback handling using loopback between output and input pins.

◆ TAG

const char* TAG = "GPIO_Test"
static