mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-10-31 13:09:38 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			90 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import os
 | |
| import re
 | |
| 
 | |
| import ttfw_idf
 | |
| from tiny_test_fw import Utility
 | |
| 
 | |
| 
 | |
| @ttfw_idf.idf_example_test(env_tag='Example_EthKitV1')
 | |
| def test_examples_protocol_https_request(env, extra_data):
 | |
|     """
 | |
|     steps: |
 | |
|       1. join AP
 | |
|       2. establish TLS connection to www.howsmyssl.com:443 with multiple
 | |
|          certificate verification options
 | |
|       3. send http request
 | |
|     """
 | |
|     dut1 = env.get_dut('https_request', 'examples/protocols/https_request', dut_class=ttfw_idf.ESP32DUT)
 | |
|     # check and log bin size
 | |
|     binary_file = os.path.join(dut1.app.binary_path, 'https_request.bin')
 | |
|     bin_size = os.path.getsize(binary_file)
 | |
|     ttfw_idf.log_performance('https_request_bin_size', '{}KB'.format(bin_size // 1024))
 | |
|     # start tes
 | |
|     Utility.console_log('Starting https_request simple test app')
 | |
|     dut1.start_app()
 | |
| 
 | |
|     # Check for connection using crt bundle
 | |
|     Utility.console_log("Testing for \"https_request using crt bundle\"")
 | |
|     try:
 | |
|         dut1.expect(re.compile('https_request using crt bundle'), timeout=30)
 | |
|         dut1.expect_all('Certificate validated',
 | |
|                         'Connection established...',
 | |
|                         'Reading HTTP response...',
 | |
|                         'HTTP/1.1 200 OK',
 | |
|                         re.compile('connection closed'))
 | |
|     except Exception:
 | |
|         Utility.console_log("Failed the test for \"https_request using crt bundle\"")
 | |
|         raise
 | |
|     Utility.console_log("Passed the test for \"https_request using crt bundle\"")
 | |
| 
 | |
|     # Check for connection using cacert_buf
 | |
|     Utility.console_log("Testing for \"https_request using cacert_buf\"")
 | |
|     try:
 | |
|         dut1.expect(re.compile('https_request using cacert_buf'), timeout=20)
 | |
|         dut1.expect_all('Connection established...',
 | |
|                         'Reading HTTP response...',
 | |
|                         'HTTP/1.1 200 OK',
 | |
|                         re.compile('connection closed'))
 | |
|     except Exception:
 | |
|         Utility.console_log("Passed the test for \"https_request using cacert_buf\"")
 | |
|         raise
 | |
|     Utility.console_log("Passed the test for \"https_request using cacert_buf\"")
 | |
| 
 | |
|     # Check for connection using global ca_store
 | |
|     Utility.console_log("Testing for \"https_request using global ca_store\"")
 | |
|     try:
 | |
|         dut1.expect(re.compile('https_request using global ca_store'), timeout=20)
 | |
|         dut1.expect_all('Connection established...',
 | |
|                         'Reading HTTP response...',
 | |
|                         'HTTP/1.1 200 OK',
 | |
|                         re.compile('connection closed'))
 | |
|     except Exception:
 | |
|         Utility.console_log("Failed the test for \"https_request using global ca_store\"")
 | |
|         raise
 | |
|     Utility.console_log("Passed the test for \"https_request using global ca_store\"")
 | |
| 
 | |
|     # Check for connection using crt bundle with mbedtls dynamic resource enabled
 | |
|     dut1 = env.get_dut('https_request', 'examples/protocols/https_request', dut_class=ttfw_idf.ESP32DUT, app_config_name='ssldyn')
 | |
|     # check and log bin size
 | |
|     binary_file = os.path.join(dut1.app.binary_path, 'https_request.bin')
 | |
|     bin_size = os.path.getsize(binary_file)
 | |
|     ttfw_idf.log_performance('https_request_bin_size', '{}KB'.format(bin_size // 1024))
 | |
|     # start test
 | |
|     dut1.start_app()
 | |
|     # only check if one connection is established
 | |
|     Utility.console_log("Testing for \"https_request using crt bundle\" with mbedtls dynamic resource enabled")
 | |
|     try:
 | |
|         dut1.expect(re.compile('https_request using crt bundle'), timeout=30)
 | |
|         dut1.expect_all('Connection established...',
 | |
|                         'Reading HTTP response...',
 | |
|                         'HTTP/1.1 200 OK',
 | |
|                         re.compile('connection closed'))
 | |
|     except Exception:
 | |
|         Utility.console_log("Failed the test for \"https_request using crt bundle\" when mbedtls dynamic resource was enabled")
 | |
|         raise
 | |
|     Utility.console_log("Passed the test for \"https_request using crt bundle\" when mbedtls dynamic resource was enabled")
 | |
| 
 | |
| 
 | |
| if __name__ == '__main__':
 | |
|     test_examples_protocol_https_request()
 | 
