mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-07 14:44:32 +02:00
CI: Update mqtt test to cleanup connect-publish-URI interaction
This commit is contained in:
committed by
David Čermák
parent
999710fd6a
commit
00b1170588
@@ -245,6 +245,9 @@ def connection_tests(dut, cases):
|
|||||||
set_server_cert_cn(ip)
|
set_server_cert_cn(ip)
|
||||||
server_port = 2222
|
server_port = 2222
|
||||||
|
|
||||||
|
def teardown_connection_suite():
|
||||||
|
dut.write('conn teardown 0 0')
|
||||||
|
|
||||||
def start_connection_case(case, desc):
|
def start_connection_case(case, desc):
|
||||||
print('Starting {}: {}'.format(case, desc))
|
print('Starting {}: {}'.format(case, desc))
|
||||||
case_id = cases[case]
|
case_id = cases[case]
|
||||||
@@ -301,6 +304,8 @@ def connection_tests(dut, cases):
|
|||||||
else:
|
else:
|
||||||
raise Exception('Unexpected negotiated protocol {}'.format(s.get_negotiated_protocol()))
|
raise Exception('Unexpected negotiated protocol {}'.format(s.get_negotiated_protocol()))
|
||||||
|
|
||||||
|
teardown_connection_suite()
|
||||||
|
|
||||||
|
|
||||||
@ttfw_idf.idf_custom_test(env_tag='Example_WIFI', group='test-apps')
|
@ttfw_idf.idf_custom_test(env_tag='Example_WIFI', group='test-apps')
|
||||||
def test_app_protocol_mqtt_publish_connect(env, extra_data):
|
def test_app_protocol_mqtt_publish_connect(env, extra_data):
|
||||||
|
@@ -70,6 +70,17 @@ static void create_client(void)
|
|||||||
esp_mqtt_client_register_event(client, ESP_EVENT_ANY_ID, mqtt_event_handler, client);
|
esp_mqtt_client_register_event(client, ESP_EVENT_ANY_ID, mqtt_event_handler, client);
|
||||||
mqtt_client = client;
|
mqtt_client = client;
|
||||||
esp_mqtt_client_start(client);
|
esp_mqtt_client_start(client);
|
||||||
|
ESP_LOGI(TAG, "mqtt client created for connection tests");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void destroy_client(void)
|
||||||
|
{
|
||||||
|
if (mqtt_client) {
|
||||||
|
esp_mqtt_client_stop(mqtt_client);
|
||||||
|
esp_mqtt_client_destroy(mqtt_client);
|
||||||
|
mqtt_client = NULL;
|
||||||
|
ESP_LOGI(TAG, "mqtt client for connection tests destroyed");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void connect_no_certs(const char *host, const int port)
|
static void connect_no_certs(const char *host, const int port)
|
||||||
@@ -200,6 +211,9 @@ void connection_test(const char *line)
|
|||||||
if (mqtt_client == NULL) {
|
if (mqtt_client == NULL) {
|
||||||
create_client();
|
create_client();
|
||||||
}
|
}
|
||||||
|
if (strcmp(host, "teardown") == 0) {
|
||||||
|
destroy_client();;
|
||||||
|
}
|
||||||
ESP_LOGI(TAG, "CASE:%d, connecting to mqtts://%s:%d ", test_case, host, port);
|
ESP_LOGI(TAG, "CASE:%d, connecting to mqtts://%s:%d ", test_case, host, port);
|
||||||
running_test_case = test_case;
|
running_test_case = test_case;
|
||||||
switch (test_case) {
|
switch (test_case) {
|
||||||
|
@@ -159,17 +159,12 @@ static void configure_client(char *transport)
|
|||||||
|
|
||||||
if (selected_transport != current_transport) {
|
if (selected_transport != current_transport) {
|
||||||
esp_mqtt_client_config_t config = {0};
|
esp_mqtt_client_config_t config = {0};
|
||||||
if (selected_transport == SSL || selected_transport == WSS) {
|
|
||||||
ESP_LOGI(TAG, "Set certificate");
|
|
||||||
config.cert_pem = (const char *)mqtt_eclipseprojects_io_pem_start;
|
|
||||||
esp_mqtt_set_config(mqtt_client, &config);
|
|
||||||
}
|
|
||||||
switch (selected_transport) {
|
switch (selected_transport) {
|
||||||
case NONE:
|
case NONE:
|
||||||
break;
|
break;
|
||||||
case TCP:
|
case TCP:
|
||||||
ESP_LOGI(TAG, "[TCP transport] Startup..");
|
ESP_LOGI(TAG, "[TCP transport] Startup..");
|
||||||
esp_mqtt_client_set_uri(mqtt_client, CONFIG_EXAMPLE_BROKER_TCP_URI);
|
config.uri = CONFIG_EXAMPLE_BROKER_TCP_URI;
|
||||||
break;
|
break;
|
||||||
case SSL:
|
case SSL:
|
||||||
ESP_LOGI(TAG, "[SSL transport] Startup..");
|
ESP_LOGI(TAG, "[SSL transport] Startup..");
|
||||||
@@ -177,14 +172,21 @@ static void configure_client(char *transport)
|
|||||||
break;
|
break;
|
||||||
case WS:
|
case WS:
|
||||||
ESP_LOGI(TAG, "[WS transport] Startup..");
|
ESP_LOGI(TAG, "[WS transport] Startup..");
|
||||||
esp_mqtt_client_set_uri(mqtt_client, CONFIG_EXAMPLE_BROKER_WS_URI);
|
config.uri = CONFIG_EXAMPLE_BROKER_WS_URI;
|
||||||
break;
|
break;
|
||||||
case WSS:
|
case WSS:
|
||||||
ESP_LOGI(TAG, "[WSS transport] Startup..");
|
ESP_LOGI(TAG, "[WSS transport] Startup..");
|
||||||
esp_mqtt_client_set_uri(mqtt_client, CONFIG_EXAMPLE_BROKER_WSS_URI);
|
config.uri = CONFIG_EXAMPLE_BROKER_WSS_URI;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
if (selected_transport == SSL || selected_transport == WSS) {
|
||||||
|
ESP_LOGI(TAG, "Set certificate");
|
||||||
|
config.cert_pem = (const char *)mqtt_eclipseprojects_io_pem_start;
|
||||||
|
}
|
||||||
|
esp_mqtt_set_config(mqtt_client, &config);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
void publish_test(const char *line)
|
void publish_test(const char *line)
|
||||||
{
|
{
|
||||||
@@ -193,12 +195,12 @@ void publish_test(const char *line)
|
|||||||
int repeat = 0;
|
int repeat = 0;
|
||||||
int enqueue = 0;
|
int enqueue = 0;
|
||||||
|
|
||||||
esp_mqtt_client_stop(mqtt_client);
|
|
||||||
|
|
||||||
static bool is_test_init = false;
|
static bool is_test_init = false;
|
||||||
if (!is_test_init) {
|
if (!is_test_init) {
|
||||||
test_init();
|
test_init();
|
||||||
is_test_init = true;
|
is_test_init = true;
|
||||||
|
} else {
|
||||||
|
esp_mqtt_client_stop(mqtt_client);
|
||||||
}
|
}
|
||||||
|
|
||||||
sscanf(line, "%s %s %d %d %d %d", transport, pattern, &repeat, &expected_published, &qos_test, &enqueue);
|
sscanf(line, "%s %s %d %d %d %d", transport, pattern, &repeat, &expected_published, &qos_test, &enqueue);
|
||||||
|
Reference in New Issue
Block a user