mirror of
https://github.com/espressif/esp-idf
synced 2025-03-12 10:39:11 -04:00
mbedtls: fix crt_bundle test to ensure proper server start event
This fixes occasional test failure that was observed due to client task getting started before server was up.
This commit is contained in:
parent
4333e618b5
commit
f817971f68
@ -165,6 +165,9 @@ void server_task(void *pvParameters)
|
||||
goto exit;
|
||||
}
|
||||
|
||||
/* Signal that server is up and hence client task can start now */
|
||||
xSemaphoreGive(*sema);
|
||||
|
||||
bool connected = false;
|
||||
while (!exit_flag) {
|
||||
|
||||
@ -269,8 +272,6 @@ int client_task(const uint8_t *bundle, esp_crt_validate_res_t *res)
|
||||
esp_crt_bundle_set(bundle);
|
||||
}
|
||||
|
||||
|
||||
|
||||
ESP_LOGI(TAG, "Connecting to %s:%s...", SERVER_ADDRESS, SERVER_PORT);
|
||||
if ((ret = mbedtls_net_connect(&client.client_fd, SERVER_ADDRESS, SERVER_PORT, MBEDTLS_NET_PROTO_TCP)) != 0) {
|
||||
ESP_LOGE(TAG, "mbedtls_net_connect returned -%x", -ret);
|
||||
@ -316,13 +317,16 @@ TEST_CASE("custom certificate bundle", "[mbedtls]")
|
||||
|
||||
test_case_uses_tcpip();
|
||||
|
||||
xSemaphoreHandle exit_sema = xSemaphoreCreateBinary();
|
||||
xSemaphoreHandle signal_sem = xSemaphoreCreateBinary();
|
||||
TEST_ASSERT_NOT_NULL(signal_sem);
|
||||
|
||||
exit_flag = false;
|
||||
xTaskCreate(server_task, "server task", 8192, &exit_sema, 10, NULL);
|
||||
xTaskCreate(server_task, "server task", 8192, &signal_sem, 10, NULL);
|
||||
|
||||
// Wait for the server to start up
|
||||
vTaskDelay(100 / portTICK_PERIOD_MS);
|
||||
if (!xSemaphoreTake(signal_sem, 10000 / portTICK_PERIOD_MS)) {
|
||||
TEST_FAIL_MESSAGE("signal_sem not released, server start failed");
|
||||
}
|
||||
|
||||
/* Test with default crt bundle that doesnt contain the ca crt */
|
||||
client_task(NULL, &validate_res);
|
||||
@ -334,11 +338,11 @@ TEST_CASE("custom certificate bundle", "[mbedtls]")
|
||||
|
||||
exit_flag = true;
|
||||
|
||||
if (!xSemaphoreTake(exit_sema, 10000 / portTICK_PERIOD_MS)) {
|
||||
TEST_FAIL_MESSAGE("exit_sem not released by server task");
|
||||
if (!xSemaphoreTake(signal_sem, 10000 / portTICK_PERIOD_MS)) {
|
||||
TEST_FAIL_MESSAGE("signal_sem not released, server exit failed");
|
||||
}
|
||||
|
||||
vSemaphoreDelete(exit_sema);
|
||||
vSemaphoreDelete(signal_sem);
|
||||
}
|
||||
|
||||
TEST_CASE("custom certificate bundle - weak hash", "[mbedtls]")
|
||||
|
Loading…
x
Reference in New Issue
Block a user