mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-11-04 09:01:40 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			66 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
#!/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')
 |