test(i2c): Enhance i2c test stability

This commit is contained in:
C.S.M
2024-12-30 18:25:18 +08:00
parent 3f6d1f6496
commit 78af773348
10 changed files with 40 additions and 270 deletions

View File

@@ -61,6 +61,8 @@ static void i2c_master_write_test_10bit(void)
i2c_master_dev_handle_t dev_handle;
TEST_ESP_OK(i2c_master_bus_add_device(bus_handle, &dev_cfg, &dev_handle));
unity_send_signal("i2c master init first");
unity_wait_for_signal("i2c slave init finish");
unity_send_signal("master write");
@@ -78,6 +80,7 @@ static void i2c_master_write_test_10bit(void)
static void i2c_slave_read_test_10bit(void)
{
unity_wait_for_signal("i2c master init first");
uint8_t data_rd[DATA_LENGTH] = {0};
i2c_slave_config_t i2c_slv_config = {

View File

@@ -61,6 +61,8 @@ static void i2c_master_write_test_broadcast(void)
i2c_master_dev_handle_t dev_handle;
TEST_ESP_OK(i2c_master_bus_add_device(bus_handle, &dev_cfg, &dev_handle));
unity_send_signal("i2c master init first");
unity_wait_for_signal("i2c slave init finish");
unity_send_signal("master write");
@@ -78,6 +80,7 @@ static void i2c_master_write_test_broadcast(void)
static void i2c_slave_read_test_broadcast(void)
{
unity_wait_for_signal("i2c master init first");
uint8_t data_rd[DATA_LENGTH] = {0};
i2c_slave_config_t i2c_slv_config = {

View File

@@ -163,6 +163,8 @@ static void i2c_master_write_test_large_write_small_read(void)
i2c_master_dev_handle_t dev_handle;
TEST_ESP_OK(i2c_master_bus_add_device(bus_handle, &dev_cfg, &dev_handle));
unity_send_signal("i2c master init first");
unity_wait_for_signal("i2c slave init finish");
unity_send_signal("master write");
@@ -180,6 +182,7 @@ static void i2c_master_write_test_large_write_small_read(void)
static void i2c_slave_read_test_large_write_small_read(void)
{
unity_wait_for_signal("i2c master init first");
uint8_t data_rd[7] = {0};
i2c_slave_config_t i2c_slv_config = {
@@ -321,6 +324,8 @@ static void i2c_master_write_read_test(void)
i2c_master_dev_handle_t dev_handle;
TEST_ESP_OK(i2c_master_bus_add_device(bus_handle, &dev_cfg, &dev_handle));
unity_send_signal("i2c master init first");
unity_wait_for_signal("i2c slave init finish");
printf("master read buffer\n");
@@ -351,6 +356,7 @@ static void i2c_master_write_read_test(void)
static void i2c_slave_read_write_test(void)
{
unity_wait_for_signal("i2c master init first");
uint8_t data_rd[DATA_LENGTH] = {0};
uint8_t data_wr[DATA_LENGTH] = {0};
@@ -426,6 +432,8 @@ static void i2c_master_repeat_write(void)
i2c_master_dev_handle_t dev_handle;
TEST_ESP_OK(i2c_master_bus_add_device(bus_handle, &dev_cfg, &dev_handle));
unity_send_signal("i2c master init first");
unity_wait_for_signal("i2c slave init finish");
for (int j = 0; j < times; j++) {
@@ -442,6 +450,7 @@ static void i2c_master_repeat_write(void)
static void i2c_slave_repeat_read(void)
{
unity_wait_for_signal("i2c master init first");
uint32_t size = 0;
int times = 3;
uint8_t data_rd[DATA_LENGTH * 3] = {0};
@@ -654,6 +663,8 @@ static void i2c_master_write_multi_buffer_test(void)
i2c_master_dev_handle_t dev_handle;
TEST_ESP_OK(i2c_master_bus_add_device(bus_handle, &dev_cfg, &dev_handle));
unity_send_signal("i2c master init first");
unity_wait_for_signal("i2c slave init finish");
unity_send_signal("master write");
@@ -670,6 +681,7 @@ static void i2c_master_write_multi_buffer_test(void)
static void i2c_slave_read_multi_buffer_test(void)
{
unity_wait_for_signal("i2c master init first");
uint8_t data_rd[DATA_LENGTH * 3] = {0};
i2c_slave_config_t i2c_slv_config = {

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2023 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Unlicense OR CC0-1.0
*/
@@ -63,6 +63,8 @@ static void i2c_master_write_to_ram_test(void)
i2c_master_dev_handle_t dev_handle;
TEST_ESP_OK(i2c_master_bus_add_device(bus_handle, &dev_cfg, &dev_handle));
unity_send_signal("i2c master init first");
unity_wait_for_signal("i2c slave init finish");
unity_send_signal("master write");
@@ -81,6 +83,7 @@ static void i2c_master_write_to_ram_test(void)
static void i2c_slave_read_from_ram_test(void)
{
unity_wait_for_signal("i2c master init first");
uint8_t data_rd[DATA_LENGTH_RAM] = {0};
i2c_slave_config_t i2c_slv_config = {
@@ -135,6 +138,8 @@ static void master_read_slave_from_ram_test(void)
i2c_master_dev_handle_t dev_handle;
TEST_ESP_OK(i2c_master_bus_add_device(bus_handle, &dev_cfg, &dev_handle));
unity_send_signal("i2c master init first");
unity_wait_for_signal("i2c slave init finish");
printf("Slave please write data to buffer\n");
@@ -158,6 +163,7 @@ static void master_read_slave_from_ram_test(void)
static void slave_write_buffer_to_ram_test(void)
{
unity_wait_for_signal("i2c master init first");
uint8_t data_wr[DATA_LENGTH_RAM] = {0};
i2c_slave_config_t i2c_slv_config = {

View File

@@ -60,6 +60,7 @@ static bool i2c_slave_receive_cb(i2c_slave_dev_handle_t i2c_slave, const i2c_sla
static void i2c_slave_read_test_v2(void)
{
unity_wait_for_signal("i2c master init first");
i2c_slave_dev_handle_t handle;
event_queue = xQueueCreate(2, sizeof(i2c_slave_event_t));
assert(event_queue);
@@ -132,6 +133,8 @@ static void i2c_master_write_test_v2(void)
i2c_master_dev_handle_t dev_handle;
TEST_ESP_OK(i2c_master_bus_add_device(bus_handle, &dev_cfg, &dev_handle));
unity_send_signal("i2c master init first");
unity_wait_for_signal("i2c slave init finish");
unity_send_signal("master write");
@@ -147,7 +150,12 @@ static void i2c_master_write_test_v2(void)
TEST_ESP_OK(i2c_del_master_bus(bus_handle));
}
#if CONFIG_IDF_TARGET_ESP32S2
// The test for s2 is unstable on ci, but it should not fail in local test
TEST_CASE_MULTIPLE_DEVICES("I2C master write slave v2 test", "[i2c][test_env=generic_multi_device][timeout=150][ignore]", i2c_master_write_test_v2, i2c_slave_read_test_v2);
#else
TEST_CASE_MULTIPLE_DEVICES("I2C master write slave v2 test", "[i2c][test_env=generic_multi_device][timeout=150]", i2c_master_write_test_v2, i2c_slave_read_test_v2);
#endif
static void master_read_slave_test_v2(void)
{
@@ -262,6 +270,8 @@ static void i2c_master_write_test_with_customize_api(void)
i2c_master_dev_handle_t dev_handle;
TEST_ESP_OK(i2c_master_bus_add_device(bus_handle, &dev_cfg, &dev_handle));
unity_send_signal("i2c master init first");
unity_wait_for_signal("i2c slave init finish");
unity_send_signal("master write");