1# Copyright (c) 2017, Heinrich Schuchardt <xypron.glpk@gmx.de> 2# 3# SPDX-License-Identifier: GPL-2.0 4 5# Test efi API implementation 6 7import pytest 8import u_boot_utils 9 10@pytest.mark.buildconfigspec('cmd_bootefi_selftest') 11def test_efi_selftest(u_boot_console): 12 """ 13 Run bootefi selftest 14 """ 15 16 u_boot_console.run_command(cmd='setenv efi_selftest') 17 u_boot_console.run_command(cmd='bootefi selftest', wait_for_prompt=False) 18 m = u_boot_console.p.expect(['Summary: 0 failures', 'Press any key']) 19 if m != 0: 20 raise Exception('Failures occured during the EFI selftest') 21 u_boot_console.run_command(cmd='', wait_for_echo=False, wait_for_prompt=False); 22 m = u_boot_console.p.expect(['resetting', 'U-Boot']) 23 if m != 0: 24 raise Exception('Reset failed during the EFI selftest') 25 u_boot_console.restart_uboot(); 26 27@pytest.mark.buildconfigspec('cmd_bootefi_selftest') 28@pytest.mark.buildconfigspec('of_control') 29def test_efi_selftest_device_tree(u_boot_console): 30 u_boot_console.run_command(cmd='setenv efi_selftest list') 31 output = u_boot_console.run_command('bootefi selftest') 32 assert '\'device tree\'' in output 33 u_boot_console.run_command(cmd='setenv efi_selftest device tree') 34 u_boot_console.run_command(cmd='setenv -f serial# Testing DT') 35 u_boot_console.run_command(cmd='bootefi selftest ${fdtcontroladdr}', wait_for_prompt=False) 36 m = u_boot_console.p.expect(['serial-number: Testing DT', 'U-Boot']) 37 if m != 0: 38 raise Exception('Reset failed in \'device tree\' test') 39 u_boot_console.restart_uboot(); 40 41@pytest.mark.buildconfigspec('cmd_bootefi_selftest') 42def test_efi_selftest_watchdog_reboot(u_boot_console): 43 u_boot_console.run_command(cmd='setenv efi_selftest list') 44 output = u_boot_console.run_command('bootefi selftest') 45 assert '\'watchdog reboot\'' in output 46 u_boot_console.run_command(cmd='setenv efi_selftest watchdog reboot') 47 u_boot_console.run_command(cmd='bootefi selftest', wait_for_prompt=False) 48 m = u_boot_console.p.expect(['resetting', 'U-Boot']) 49 if m != 0: 50 raise Exception('Reset failed in \'watchdog reboot\' test') 51 u_boot_console.restart_uboot(); 52