| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #!/usr/bin/env python
- #
- # SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
- # SPDX-License-Identifier: Apache-2.0
- import logging
- import os
- import pytest
- from pytest_embedded import Dut
- @pytest.mark.esp32
- @pytest.mark.ethernet
- def test_examples_protocol_mqtt5(dut: Dut) -> None:
- """
- steps: |
- 1. join AP
- 2. connect to mqtt://mqtt.eclipseprojects.io
- 3. check conneciton success
- """
- # check and log bin size
- binary_file = os.path.join(dut.app.binary_path, 'mqtt5.bin')
- bin_size = os.path.getsize(binary_file)
- logging.info('mqtt5_bin_size : {}KB'.format(bin_size // 1024))
- # check if connected or not
- dut.expect_exact('MQTT_EVENT_CONNECTED', timeout=30)
- # check log
- res = dut.expect(r'sent publish successful, msg_id=(\d+)[^\d]')
- msgid_pub1 = res.group(1).decode('utf8')
- res = dut.expect(r'sent subscribe successful, msg_id=(\d+)[^\d]')
- msgid_sub1 = res.group(1).decode('utf8')
- res = dut.expect(r'sent subscribe successful, msg_id=(\d+)[^\d]')
- msgid_sub2 = res.group(1).decode('utf8')
- res = dut.expect(r'sent unsubscribe successful, msg_id=(\d+)[^\d]')
- msgid_unsub = res.group(1).decode('utf8')
- res = dut.expect(r'MQTT_EVENT_PUBLISHED, msg_id=(\d+)[^\d]')
- msgid_pubd = res.group(1).decode('utf8')
- assert msgid_pubd == msgid_pub1
- res = dut.expect(r'MQTT_EVENT_SUBSCRIBED, msg_id=(\d+)[^\d]')
- msgid_subd = res.group(1).decode('utf8')
- assert msgid_subd == msgid_sub1
- dut.expect_exact('sent publish successful, msg_id=0')
- res = dut.expect(r'MQTT_EVENT_SUBSCRIBED, msg_id=(\d+)[^\d]')
- msgid_subd = res.group(1).decode('utf8')
- assert msgid_subd == msgid_sub2
- dut.expect_exact('sent publish successful, msg_id=0')
- dut.expect_exact('MQTT_EVENT_DATA')
- dut.expect_exact('key is board, value is esp32')
- dut.expect_exact('key is u, value is user')
- dut.expect_exact('key is p, value is password')
- dut.expect_exact('payload_format_indicator is 1')
- dut.expect_exact('response_topic is /topic/test/response')
- dut.expect_exact('correlation_data is 123456')
- dut.expect_exact('TOPIC=/topic/qos1')
- dut.expect_exact('DATA=data_3')
- res = dut.expect(r'MQTT_EVENT_UNSUBSCRIBED, msg_id=(\d+)[^\d]')
- msgid_unsubd = res.group(1).decode('utf8')
- assert msgid_unsubd == msgid_unsub
- dut.expect_exact('MQTT_EVENT_DISCONNECTED')
- logging.info('MQTT5 pytest pass')
|