mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-11-04 09:01:40 +01:00 
			
		
		
		
	
		
			
	
	
		
			47 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								# SPDX-FileCopyrightText: 2022-2023 Espressif Systems (Shanghai) CO LTD
							 | 
						||
| 
								 | 
							
								# SPDX-License-Identifier: Unlicense OR CC0-1.0
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import logging
							 | 
						||
| 
								 | 
							
								import re
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import pytest
							 | 
						||
| 
								 | 
							
								from pytest_embedded import Dut
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@pytest.mark.esp32s3
							 | 
						||
| 
								 | 
							
								@pytest.mark.emmc
							 | 
						||
| 
								 | 
							
								@pytest.mark.parametrize(
							 | 
						||
| 
								 | 
							
								    'config',
							 | 
						||
| 
								 | 
							
								    [
							 | 
						||
| 
								 | 
							
								        '1line',
							 | 
						||
| 
								 | 
							
								        '4line',
							 | 
						||
| 
								 | 
							
								        '8line',
							 | 
						||
| 
								 | 
							
								    ],
							 | 
						||
| 
								 | 
							
								    indirect=True,
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								def test_examples_sd_card_sdmmc(dut: Dut) -> None:
							 | 
						||
| 
								 | 
							
								    dut.expect('example: Initializing eMMC', timeout=20)
							 | 
						||
| 
								 | 
							
								    dut.expect('example: Using SDMMC peripheral', timeout=10)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # Provide enough time for possible SD card formatting
							 | 
						||
| 
								 | 
							
								    dut.expect('Filesystem mounted', timeout=60)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    # These lines are matched separately because of ASCII color codes in the output
							 | 
						||
| 
								 | 
							
								    name = dut.expect(re.compile(rb'Name: (\w+)\r'), timeout=10).group(1).decode()
							 | 
						||
| 
								 | 
							
								    _type = dut.expect(re.compile(rb'Type: (\S+)'), timeout=10).group(1).decode()
							 | 
						||
| 
								 | 
							
								    speed = dut.expect(re.compile(rb'Speed: (\S+)'), timeout=10).group(1).decode()
							 | 
						||
| 
								 | 
							
								    size = dut.expect(re.compile(rb'Size: (\S+)'), timeout=10).group(1).decode()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    logging.info('Card {} {} {}MHz {} found'.format(name, _type, speed, size))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    message_list = ('Opening file /eMMC/hello.txt',
							 | 
						||
| 
								 | 
							
								                    'File written',
							 | 
						||
| 
								 | 
							
								                    'Renaming file /eMMC/hello.txt to /eMMC/foo.txt',
							 | 
						||
| 
								 | 
							
								                    'Reading file /eMMC/foo.txt',
							 | 
						||
| 
								 | 
							
								                    "Read from file: 'Hello {}!'".format(name),
							 | 
						||
| 
								 | 
							
								                    'Card unmounted')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    for msg in message_list:
							 | 
						||
| 
								 | 
							
								        dut.expect(msg, timeout=10)
							 |