diff --git a/components/driver/test_apps/legacy_pcnt_driver/main/test_legacy_pcnt.c b/components/driver/test_apps/legacy_pcnt_driver/main/test_legacy_pcnt.c index 80bd8657f37..5083754820a 100644 --- a/components/driver/test_apps/legacy_pcnt_driver/main/test_legacy_pcnt.c +++ b/components/driver/test_apps/legacy_pcnt_driver/main/test_legacy_pcnt.c @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -288,7 +288,7 @@ static void count_mode_test(gpio_num_t ctl_io) vTaskDelay(1000 / portTICK_PERIOD_MS); TEST_ESP_OK(pcnt_get_counter_value(PCNT_UNIT_0, &test_counter)); printf("value: %d\n", test_counter); - TEST_ASSERT_INT16_WITHIN(1, test_counter, result[0]); + TEST_ASSERT_INT16_WITHIN(2, test_counter, result[0]); //2, 0, 0, 0 TEST_ESP_OK(pcnt_counter_pause(PCNT_UNIT_0)); @@ -300,7 +300,7 @@ static void count_mode_test(gpio_num_t ctl_io) vTaskDelay(1000 / portTICK_PERIOD_MS); TEST_ESP_OK(pcnt_get_counter_value(PCNT_UNIT_0, &test_counter)); printf("value: %d\n", test_counter); - TEST_ASSERT_INT16_WITHIN(1, test_counter, result[1]); + TEST_ASSERT_INT16_WITHIN(2, test_counter, result[1]); //0,0,0,0 TEST_ESP_OK(pcnt_counter_pause(PCNT_UNIT_0)); @@ -312,7 +312,7 @@ static void count_mode_test(gpio_num_t ctl_io) vTaskDelay(1000 / portTICK_PERIOD_MS); TEST_ESP_OK(pcnt_get_counter_value(PCNT_UNIT_0, &test_counter)); printf("value: %d\n", test_counter); - TEST_ASSERT_INT16_WITHIN(1, test_counter, result[2]); + TEST_ASSERT_INT16_WITHIN(2, test_counter, result[2]); //1,0,1,0 TEST_ESP_OK(pcnt_counter_pause(PCNT_UNIT_0)); @@ -324,7 +324,7 @@ static void count_mode_test(gpio_num_t ctl_io) vTaskDelay(1000 / portTICK_PERIOD_MS); TEST_ESP_OK(pcnt_get_counter_value(PCNT_UNIT_0, &test_counter)); printf("value: %d\n", test_counter); - TEST_ASSERT_INT16_WITHIN(1, test_counter, result[3]); + TEST_ASSERT_INT16_WITHIN(2, test_counter, result[3]); //1,0,0,1 TEST_ESP_OK(pcnt_counter_pause(PCNT_UNIT_0)); @@ -336,7 +336,7 @@ static void count_mode_test(gpio_num_t ctl_io) vTaskDelay(1000 / portTICK_PERIOD_MS); TEST_ESP_OK(pcnt_get_counter_value(PCNT_UNIT_0, &test_counter)); printf("value: %d\n", test_counter); - TEST_ASSERT_INT16_WITHIN(1, test_counter, result[4]); + TEST_ASSERT_INT16_WITHIN(2, test_counter, result[4]); //2,0,0,1 TEST_ESP_OK(pcnt_counter_pause(PCNT_UNIT_0)); @@ -348,7 +348,7 @@ static void count_mode_test(gpio_num_t ctl_io) vTaskDelay(1000 / portTICK_PERIOD_MS); TEST_ESP_OK(pcnt_get_counter_value(PCNT_UNIT_0, &test_counter)); printf("value: %d\n", test_counter); - TEST_ASSERT_INT16_WITHIN(1, test_counter, result[5]); + TEST_ASSERT_INT16_WITHIN(2, test_counter, result[5]); //1,0,2,0 TEST_ESP_OK(pcnt_counter_pause(PCNT_UNIT_0)); @@ -360,7 +360,7 @@ static void count_mode_test(gpio_num_t ctl_io) vTaskDelay(1000 / portTICK_PERIOD_MS); TEST_ESP_OK(pcnt_get_counter_value(PCNT_UNIT_0, &test_counter)); printf("value: %d\n", test_counter); - TEST_ASSERT_INT16_WITHIN(1, test_counter, result[6]); + TEST_ASSERT_INT16_WITHIN(2, test_counter, result[6]); //1,0,0,2 TEST_ESP_OK(pcnt_counter_pause(PCNT_UNIT_0)); @@ -372,7 +372,7 @@ static void count_mode_test(gpio_num_t ctl_io) vTaskDelay(1000 / portTICK_PERIOD_MS); TEST_ESP_OK(pcnt_get_counter_value(PCNT_UNIT_0, &test_counter)); printf("value: %d\n", test_counter); - TEST_ASSERT_INT16_WITHIN(1, test_counter, result[7]); + TEST_ASSERT_INT16_WITHIN(2, test_counter, result[7]); } /* PCNT basic property: @@ -521,24 +521,24 @@ TEST_CASE("PCNT_interrupt_method_test_control_IO_high", "[pcnt][timeout=120]") // test event event_calculate(&event); - TEST_ASSERT_INT_WITHIN(2, event.h_threshold, 2); - TEST_ASSERT_INT_WITHIN(2, event.l_threshold, 2); + TEST_ASSERT_INT_WITHIN(3, event.h_threshold, 2); + TEST_ASSERT_INT_WITHIN(3, event.l_threshold, 2); TEST_ASSERT(event.l_limit == 0); - TEST_ASSERT_INT_WITHIN(2, event.h_limit, 2); - TEST_ASSERT_INT_WITHIN(2, event.zero_times, 2); - TEST_ASSERT_INT_WITHIN(3, event.filter_time, 4); + TEST_ASSERT_INT_WITHIN(3, event.h_limit, 2); + TEST_ASSERT_INT_WITHIN(3, event.zero_times, 2); + TEST_ASSERT_INT_WITHIN(4, event.filter_time, 4); // test interrupt disable TEST_ESP_OK(pcnt_intr_disable(PCNT_UNIT_0)); TEST_ESP_OK(pcnt_counter_clear(PCNT_UNIT_0)); // for the original control io disable interrupt status event_calculate(&event); - TEST_ASSERT_INT_WITHIN(2, event.h_threshold, 2); - TEST_ASSERT_INT_WITHIN(2, event.l_threshold, 2); + TEST_ASSERT_INT_WITHIN(3, event.h_threshold, 2); + TEST_ASSERT_INT_WITHIN(3, event.l_threshold, 2); TEST_ASSERT(event.l_limit == 0); - TEST_ASSERT_INT_WITHIN(2, event.h_limit, 2); - TEST_ASSERT_INT_WITHIN(2, event.zero_times, 2); - TEST_ASSERT_INT_WITHIN(3, event.filter_time, 4); + TEST_ASSERT_INT_WITHIN(3, event.h_limit, 2); + TEST_ASSERT_INT_WITHIN(3, event.zero_times, 2); + TEST_ASSERT_INT_WITHIN(4, event.filter_time, 4); // enable the intr TEST_ESP_OK(pcnt_intr_enable(PCNT_UNIT_0)); @@ -546,24 +546,24 @@ TEST_CASE("PCNT_interrupt_method_test_control_IO_high", "[pcnt][timeout=120]") TEST_ESP_OK(pcnt_counter_clear(PCNT_UNIT_0)); TEST_ESP_OK(pcnt_counter_resume(PCNT_UNIT_0)); event_calculate(&event); - TEST_ASSERT_INT_WITHIN(2, event.h_threshold, 4); - TEST_ASSERT_INT_WITHIN(2, event.l_threshold, 4); + TEST_ASSERT_INT_WITHIN(3, event.h_threshold, 4); + TEST_ASSERT_INT_WITHIN(3, event.l_threshold, 4); TEST_ASSERT(event.l_limit == 0); - TEST_ASSERT_INT_WITHIN(2, event.h_limit, 4); - TEST_ASSERT_INT_WITHIN(2, event.zero_times, 4); - TEST_ASSERT_INT_WITHIN(3, event.filter_time, 10); + TEST_ASSERT_INT_WITHIN(3, event.h_limit, 4); + TEST_ASSERT_INT_WITHIN(3, event.zero_times, 4); + TEST_ASSERT_INT_WITHIN(4, event.filter_time, 10); // disable part of events TEST_ESP_OK(pcnt_event_disable(PCNT_UNIT_0, PCNT_EVT_ZERO)); TEST_ESP_OK(pcnt_event_disable(PCNT_UNIT_0, PCNT_EVT_L_LIM)); TEST_ESP_OK(pcnt_event_disable(PCNT_UNIT_0, PCNT_EVT_THRES_0)); event_calculate(&event); - TEST_ASSERT_INT_WITHIN(2, event.h_threshold, 5); - TEST_ASSERT_INT_WITHIN(2, event.l_threshold, 4); + TEST_ASSERT_INT_WITHIN(3, event.h_threshold, 5); + TEST_ASSERT_INT_WITHIN(3, event.l_threshold, 4); TEST_ASSERT(event.l_limit == 0); - TEST_ASSERT_INT_WITHIN(3, event.h_limit, 6); - TEST_ASSERT_INT_WITHIN(2, event.zero_times, 4); - TEST_ASSERT_INT_WITHIN(3, event.filter_time, 14); + TEST_ASSERT_INT_WITHIN(4, event.h_limit, 6); + TEST_ASSERT_INT_WITHIN(3, event.zero_times, 4); + TEST_ASSERT_INT_WITHIN(4, event.filter_time, 14); // Because this test uses its own ISR, we need to release it with `pcnt_isr_unregister` instead of `pcnt_isr_service_uninstall` TEST_ESP_OK(pcnt_isr_unregister(pcnt_isr_service)); @@ -621,24 +621,24 @@ TEST_CASE("PCNT_interrupt_method_test_control_IO_low", "[pcnt][timeout=120]") // test event event_calculate(&event); - TEST_ASSERT_INT_WITHIN(2, event.h_threshold, 1); - TEST_ASSERT_INT_WITHIN(2, event.l_threshold, 1); - TEST_ASSERT_INT_WITHIN(2, event.l_limit, 1); - TEST_ASSERT_INT_WITHIN(2, event.h_limit, 0); - TEST_ASSERT_INT_WITHIN(2, event.zero_times, 1); - TEST_ASSERT_INT_WITHIN(2, event.filter_time, 2); + TEST_ASSERT_INT_WITHIN(3, event.h_threshold, 1); + TEST_ASSERT_INT_WITHIN(3, event.l_threshold, 1); + TEST_ASSERT_INT_WITHIN(3, event.l_limit, 1); + TEST_ASSERT_INT_WITHIN(3, event.h_limit, 0); + TEST_ASSERT_INT_WITHIN(3, event.zero_times, 1); + TEST_ASSERT_INT_WITHIN(3, event.filter_time, 2); // test interrupt disable TEST_ESP_OK(pcnt_intr_disable(PCNT_UNIT_0)); TEST_ESP_OK(pcnt_counter_clear(PCNT_UNIT_0)); // for the original control io disable interrupt status event_calculate(&event); - TEST_ASSERT_INT_WITHIN(2, event.h_threshold, 1); - TEST_ASSERT_INT_WITHIN(2, event.l_threshold, 1); - TEST_ASSERT_INT_WITHIN(2, event.l_limit, 1); - TEST_ASSERT_INT_WITHIN(2, event.h_limit, 0); - TEST_ASSERT_INT_WITHIN(2, event.zero_times, 1); - TEST_ASSERT_INT_WITHIN(2, event.filter_time, 2); + TEST_ASSERT_INT_WITHIN(3, event.h_threshold, 1); + TEST_ASSERT_INT_WITHIN(3, event.l_threshold, 1); + TEST_ASSERT_INT_WITHIN(3, event.l_limit, 1); + TEST_ASSERT_INT_WITHIN(3, event.h_limit, 0); + TEST_ASSERT_INT_WITHIN(3, event.zero_times, 1); + TEST_ASSERT_INT_WITHIN(3, event.filter_time, 2); // enable the intr pcnt_unit_config(&config); @@ -648,24 +648,24 @@ TEST_CASE("PCNT_interrupt_method_test_control_IO_low", "[pcnt][timeout=120]") TEST_ESP_OK(pcnt_counter_clear(PCNT_UNIT_0)); TEST_ESP_OK(pcnt_counter_resume(PCNT_UNIT_0)); event_calculate(&event); - TEST_ASSERT_INT_WITHIN(2, event.h_threshold, 2); - TEST_ASSERT_INT_WITHIN(2, event.l_threshold, 3); - TEST_ASSERT_INT_WITHIN(2, event.l_limit, 2); - TEST_ASSERT_INT_WITHIN(2, event.h_limit, 0); - TEST_ASSERT_INT_WITHIN(2, event.zero_times, 2); - TEST_ASSERT_INT_WITHIN(2, event.filter_time, 6); + TEST_ASSERT_INT_WITHIN(3, event.h_threshold, 2); + TEST_ASSERT_INT_WITHIN(3, event.l_threshold, 3); + TEST_ASSERT_INT_WITHIN(3, event.l_limit, 2); + TEST_ASSERT_INT_WITHIN(3, event.h_limit, 0); + TEST_ASSERT_INT_WITHIN(3, event.zero_times, 2); + TEST_ASSERT_INT_WITHIN(3, event.filter_time, 6); // disable part of events TEST_ESP_OK(pcnt_event_disable(PCNT_UNIT_0, PCNT_EVT_ZERO)); TEST_ESP_OK(pcnt_event_disable(PCNT_UNIT_0, PCNT_EVT_L_LIM)); TEST_ESP_OK(pcnt_event_disable(PCNT_UNIT_0, PCNT_EVT_THRES_0)); event_calculate(&event); - TEST_ASSERT_INT_WITHIN(2, event.h_threshold, 4); - TEST_ASSERT_INT_WITHIN(2, event.l_threshold, 3); - TEST_ASSERT_INT_WITHIN(2, event.l_limit, 2); - TEST_ASSERT_INT_WITHIN(2, event.h_limit, 0); - TEST_ASSERT_INT_WITHIN(2, event.zero_times, 2); - TEST_ASSERT_INT_WITHIN(2, event.filter_time, 8); + TEST_ASSERT_INT_WITHIN(3, event.h_threshold, 4); + TEST_ASSERT_INT_WITHIN(3, event.l_threshold, 3); + TEST_ASSERT_INT_WITHIN(3, event.l_limit, 2); + TEST_ASSERT_INT_WITHIN(3, event.h_limit, 0); + TEST_ASSERT_INT_WITHIN(3, event.zero_times, 2); + TEST_ASSERT_INT_WITHIN(3, event.filter_time, 8); // Because this test uses its own ISR, we need to release it with `pcnt_isr_unregister` instead of `pcnt_isr_service_uninstall` TEST_ESP_OK(pcnt_isr_unregister(pcnt_isr_service));