CI: Update mqtt test to cleanup connect-publish-URI interaction

This commit is contained in:
David Cermak
2021-09-07 11:26:59 +02:00
committed by David Čermák
parent 999710fd6a
commit 00b1170588
3 changed files with 31 additions and 10 deletions

View File

@@ -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):

View File

@@ -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) {

View File

@@ -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);