From 0c910b770fcbb759d2845c0acddea5da254abbcf Mon Sep 17 00:00:00 2001 From: Bogdan Kolendovskyy Date: Tue, 2 Dec 2025 10:05:10 +0100 Subject: [PATCH] ci(mqtt): Update and fix MQTT SSL test, remove the binary file send/receive stage --- examples/protocols/mqtt/pytest_mqtt_ssl.py | 37 ++-------------------- 1 file changed, 3 insertions(+), 34 deletions(-) diff --git a/examples/protocols/mqtt/pytest_mqtt_ssl.py b/examples/protocols/mqtt/pytest_mqtt_ssl.py index ebc68886e3..90de8ab7eb 100644 --- a/examples/protocols/mqtt/pytest_mqtt_ssl.py +++ b/examples/protocols/mqtt/pytest_mqtt_ssl.py @@ -1,7 +1,5 @@ # SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD # SPDX-License-Identifier: Unlicense OR CC0-1.0 -import logging -import os import re import ssl import sys @@ -16,7 +14,6 @@ from pytest_embedded_idf.utils import idf_parametrize event_client_connected = Event() event_stop_client = Event() event_client_received_correct = Event() -event_client_received_binary = Event() message_log = '' @@ -25,7 +22,7 @@ def on_connect(client, userdata, flags, rc): # type: (mqtt.Client, str, bool, s _ = (userdata, flags) print('Connected with result code ' + str(rc)) event_client_connected.set() - client.subscribe('/topic/qos0') + client.subscribe('topic/qos0') def mqtt_client_task(client): # type: (mqtt.Client) -> None @@ -37,26 +34,10 @@ def mqtt_client_task(client): # type: (mqtt.Client) -> None def on_message(client, userdata, msg): # type: (mqtt.Client, tuple, mqtt.client.MQTTMessage) -> None global message_log global event_client_received_correct - global event_client_received_binary - if msg.topic == '/topic/binary': - binary, bin_size = userdata - print(f'Receiving binary from esp and comparing with {binary}, size {bin_size}...') - with open(binary, 'rb') as f: - data = f.read() - if data[:bin_size] == msg.payload[:bin_size]: - print('...matches!') - event_client_received_binary.set() - return - recv_binary = binary + '.received' - with open(recv_binary, 'w', encoding='utf-8') as fw: - fw.write(msg.payload) - raise ValueError(f'Received binary (saved as: {recv_binary}) does not match the original file: {binary}') payload = msg.payload.decode() if not event_client_received_correct.is_set() and payload == 'data': - client.subscribe('/topic/binary') - client.publish('/topic/qos0', 'send binary please') - if msg.topic == '/topic/qos0' and payload == 'data': + if msg.topic == 'topic/qos0' and payload == 'data': event_client_received_correct.set() message_log += 'Received data:' + msg.topic + ' ' + payload + '\n' @@ -72,29 +53,21 @@ def test_examples_protocol_mqtt_ssl(dut): # type: ignore 2. Test connects a client to the same broker 3. Test evaluates python client received correct qos0 message 4. Test ESP32 client received correct qos0 message - 5. Test python client receives binary data from running partition and compares it with the binary """ - binary_file = os.path.join(dut.app.binary_path, 'mqtt_ssl.bin') - bin_size = os.path.getsize(binary_file) - logging.info('[Performance][mqtt_ssl_bin_size]: %s KB', bin_size // 1024) - # Look for host:port in sdkconfig try: - value = re.search(r'\:\/\/([^:]+)\:([0-9]+)', dut.app.sdkconfig.get('BROKER_URI')) + value = re.search(r'\:\/\/([^:]+)\:([0-9]+)', dut.app.sdkconfig.get('EXAMPLE_MQTT_BROKER_URI')) assert value is not None broker_url = value.group(1) broker_port = int(value.group(2)) - bin_size = min(int(dut.app.sdkconfig.get('BROKER_BIN_SIZE_TO_SEND')), bin_size) except Exception: print('ENV_TEST_FAILURE: Cannot find broker url in sdkconfig') raise - client = None # 1. Test connects to a broker try: client = mqtt.Client() client.on_connect = on_connect client.on_message = on_message - client.user_data_set((binary_file, bin_size)) client.tls_set(None, None, None, cert_reqs=ssl.CERT_NONE, tls_version=ssl.PROTOCOL_TLSv1_2, ciphers=None) client.tls_insecure_set(True) print('Connecting...') @@ -119,10 +92,6 @@ def test_examples_protocol_mqtt_ssl(dut): # type: ignore if not event_client_received_correct.wait(timeout=30): raise ValueError(f'Wrong data received, msg log: {message_log}') print('Checking esp-client received msg published from py-client...') - dut.expect(r'DATA=send binary please', timeout=30) - print('Receiving binary data from running partition...') - if not event_client_received_binary.wait(timeout=30): - raise ValueError('Binary not received within timeout') finally: event_stop_client.set() thread1.join()