Skip to content

Commit

Permalink
fix(modem): Update target test builds to use external Catch2
Browse files Browse the repository at this point in the history
Switched from the deprecated Catch framework (IDF/tools) to Catch2,
as Catch will be removed in v6.0.
Note that Catch2 has higher memory requirements,
necessitating an increase in stack size and partition table.
Additionally, Catch2 increases compilation time due to its larger footprint.
  • Loading branch information
david-cermak committed Sep 18, 2024
1 parent 6705bca commit f1e2ef1
Show file tree
Hide file tree
Showing 5 changed files with 39 additions and 18 deletions.
2 changes: 1 addition & 1 deletion components/esp_modem/test/target/main/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
idf_component_register(SRCS "pppd_test.cpp"
"NetworkDCE.cpp"
REQUIRES esp_modem)
REQUIRES esp_modem catch2)

set_target_properties(${COMPONENT_LIB} PROPERTIES
CXX_STANDARD 17
Expand Down
4 changes: 4 additions & 0 deletions components/esp_modem/test/target/main/idf_component.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
dependencies:
espressif/catch2: "*"
idf:
version: ">=4.4"
45 changes: 30 additions & 15 deletions components/esp_modem/test/target/main/pppd_test.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Unlicense OR CC0-1.0
*/
Expand All @@ -17,6 +17,10 @@
#include "freertos/FreeRTOS.h"
#include "freertos/event_groups.h"

#define CATCH_CONFIG_MAIN
#include "catch2/catch_test_macros.hpp"
#include "catch2/catch_session.hpp"

static const char *TAG = "pppd_test";
static EventGroupHandle_t event_group = NULL;

Expand Down Expand Up @@ -73,9 +77,6 @@ esp_err_t modem_init_network(esp_netif_t *netif);
void modem_start_network();
void modem_stop_network();

bool test_connect();
bool test_disconnect();

extern "C" void app_main(void)
{

Expand All @@ -99,27 +100,41 @@ extern "C" void app_main(void)
#endif

modem_start_network();

bool t1 = test_connect();
bool t2 = test_disconnect();

if (t1 && t2) {
ESP_LOGI(TAG, "All tests passed");
} else {
Catch::Session session;
int numFailed = session.run();
if (numFailed > 0) {
ESP_LOGE(TAG, "Test FAILED!");
} else {
ESP_LOGI(TAG, "Test passed!");
}

}

bool test_connect() //("Connect test", "[esp_modem]")
TEST_CASE("Connect test", "[esp_modem]")
{
EventBits_t b = xEventGroupWaitBits(event_group, 1, pdTRUE, pdFALSE, pdMS_TO_TICKS(15000));
return b == 1;
CHECK(b == 1);
}

bool test_disconnect() //("Disconnection test", "[esp_modem]")
TEST_CASE("Disconnection test", "[esp_modem]")
{
modem_stop_network();
EventBits_t b = xEventGroupWaitBits(event_group, 2, pdTRUE, pdFALSE, pdMS_TO_TICKS(15000));
return b == 2;
CHECK(b == 2);
}


extern "C" {

static void handle(int nr)
{
ESP_LOGE(TAG, "Signal handler %d", nr);
}

_sig_func_ptr signal (int nr, _sig_func_ptr)
{
return handle;
}


}
3 changes: 2 additions & 1 deletion components/esp_modem/test/target/sdkconfig.ci.pppd_chap_auth
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
CONFIG_COMPILER_CXX_EXCEPTIONS=y
CONFIG_ESP_MAIN_TASK_STACK_SIZE=4096
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
CONFIG_LWIP_PPP_SUPPORT=y
CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y
CONFIG_TEST_APP_AUTH=y
3 changes: 2 additions & 1 deletion components/esp_modem/test/target/sdkconfig.defaults
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
CONFIG_COMPILER_CXX_EXCEPTIONS=y
CONFIG_ESP_MAIN_TASK_STACK_SIZE=4096
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
CONFIG_LWIP_PPP_SUPPORT=y
CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y

0 comments on commit f1e2ef1

Please sign in to comment.