kopia lustrzana https://github.com/espressif/esp-idf
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.pull/7307/head
rodzic
3be3d5fff2
commit
ea3c901874
|
@ -168,6 +168,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) {
|
||||
|
||||
|
@ -272,8 +275,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);
|
||||
|
@ -319,13 +320,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);
|
||||
|
@ -337,11 +341,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);
|
||||
}
|
||||
|
||||
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32S3)
|
||||
|
|
Ładowanie…
Reference in New Issue