- Removed unnecessary calls to relay_chn_create and g_is_component_initialized in multiple test cases across test_relay_chn_core_single.c, test_relay_chn_listener_multi.c, and test_relay_chn_listener_single.c. - Introduced new test files for NVS functionality: test_relay_chn_nvs_multi.c and test_relay_chn_nvs_single.c, covering initialization, direction setting, invalid parameters, and erase operations. - Updated partition table configuration to support NVS storage, including the addition of a new partition file part_nvs.csv. - Adjusted sdkconfig files to enable NVS support and configure custom partition settings for relay channels.
52 lines
1.2 KiB
C
52 lines
1.2 KiB
C
#include "test_common.h"
|
|
|
|
const char *TEST_TAG = "RELAY_CHN_TEST";
|
|
|
|
const uint8_t relay_chn_count = CONFIG_RELAY_CHN_COUNT;
|
|
const uint32_t opposite_inertia_ms = CONFIG_RELAY_CHN_OPPOSITE_INERTIA_MS;
|
|
const uint32_t test_delay_margin_ms = 50; // ms tolerance
|
|
|
|
// Test-wide GPIO map
|
|
#if CONFIG_RELAY_CHN_COUNT > 1
|
|
const uint8_t gpio_map[] = {
|
|
0, 1,
|
|
2, 3
|
|
#if CONFIG_RELAY_CHN_COUNT > 2
|
|
, 4, 5
|
|
#if CONFIG_RELAY_CHN_COUNT > 3
|
|
, 6, 7
|
|
#if CONFIG_RELAY_CHN_COUNT > 4
|
|
, 8, 9
|
|
#if CONFIG_RELAY_CHN_COUNT > 5
|
|
, 10, 11
|
|
#if CONFIG_RELAY_CHN_COUNT > 6
|
|
, 12, 13
|
|
#if CONFIG_RELAY_CHN_COUNT > 7
|
|
, 14, 15
|
|
#endif
|
|
#endif
|
|
#endif
|
|
#endif
|
|
#endif
|
|
#endif
|
|
};
|
|
#else
|
|
const uint8_t gpio_map[] = {4, 5};
|
|
#endif
|
|
|
|
const uint8_t gpio_count = sizeof(gpio_map) / sizeof(gpio_map[0]);
|
|
|
|
void reset_channels_to_idle_state()
|
|
{
|
|
#if CONFIG_RELAY_CHN_COUNT > 1
|
|
relay_chn_stop(RELAY_CHN_ID_ALL);
|
|
vTaskDelay(pdMS_TO_TICKS(opposite_inertia_ms + test_delay_margin_ms));
|
|
for (int i = 0; i < CONFIG_RELAY_CHN_COUNT; i++) {
|
|
TEST_ASSERT_EQUAL(RELAY_CHN_STATE_IDLE, relay_chn_get_state(i));
|
|
}
|
|
#else
|
|
relay_chn_stop();
|
|
vTaskDelay(pdMS_TO_TICKS(opposite_inertia_ms + test_delay_margin_ms));
|
|
TEST_ASSERT_EQUAL(RELAY_CHN_STATE_IDLE, relay_chn_get_state());
|
|
#endif
|
|
} |