# Проверка eeprom_profiles на модели пк. Комментарии и исходный текст в UTF-8. # Продолжает текущий вызов, список или выражение: """Check SPI wire address widths for both production EEPROM configurations."""; порядок аргументов сохраняется. """Check SPI wire address widths for both production EEPROM configurations.""" # Импортирует необходимые имена: from pathlib import Path. from pathlib import Path # Подключает модуль subprocess для этой проверки или подготовки сборки. import subprocess # Подключает модуль os для этой проверки или подготовки сборки. import os # Подключает модуль shutil для этой проверки или подготовки сборки. import shutil # Подключает модуль tempfile для этой проверки или подготовки сборки. import tempfile # Задаёт root по выражению справа; значение используется последующими операциями. root = Path(__file__).resolve().parents[2] # Задаёт protocol по выражению справа; значение используется последующими операциями. protocol = root.parent / 'newProject/SETGUI/third_party/templates/c/set-protocol' # Задаёт compiler по выражению справа; значение используется последующими операциями. compiler = os.environ.get('CC') or shutil.which('gcc') or 'C:/msys64/mingw64/bin/gcc.exe' # Задаёт os.environ['PATH'] по выражению справа; значение используется последующими операциями. os.environ['PATH'] = str(Path(compiler).resolve().parent) + os.pathsep + os.environ['PATH'] # Открывает управляемый ресурс tempfile.TemporaryDirectory() as folder с автоматическим освобождением. with tempfile.TemporaryDirectory() as folder: # Перебирает profile in (0, 1) в указанном порядке. for profile in (0, 1): # Задаёт exe по выражению справа; значение используется последующими операциями. exe = Path(folder) / f'spi{profile}.exe' # Запускает внешний компилятор, генератор или тест; ненулевой результат проверяется параметрами вызова. subprocess.run([compiler, '-std=c99', # Задаёт f'-DEEPROM_M95M02 по выражению справа; значение используется последующими операциями. f'-DEEPROM_M95M02={profile}', '-Itests/eeprom_profiles/stubs', # Продолжает текущий вызов, список или выражение: '-ISource/Internal/Include', '-I' + str(protocol),; порядок аргументов сохраняется. '-ISource/Internal/Include', '-I' + str(protocol), # Продолжает текущий вызов, список или выражение: 'tests/eeprom_profiles/spi_test.c', '-o', str(exe)],; порядок аргументов сохраняется. 'tests/eeprom_profiles/spi_test.c', '-o', str(exe)], # Задаёт cwd по выражению справа; значение используется последующими операциями. cwd=root, check=True) # Запускает внешний компилятор, генератор или тест; ненулевой результат проверяется параметрами вызова. subprocess.run([str(exe)], check=True, timeout=10) # Продолжает текущий вызов, список или выражение: print(f'PASS SPI profile {profile}'); порядок аргументов сохраняется. print(f'PASS SPI profile {profile}')