mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 16:52:14 +02:00
efi_selftest: do not execute test if setup failed
Executing a test after failed setup may lead to unexpected behavior like an illegal memory access. So after a setup failure we should skip to teardown. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
committed by
Alexander Graf
parent
c524997acb
commit
b5cd6878e4
@@ -77,20 +77,20 @@ void efi_st_exit_boot_services(void)
|
||||
*/
|
||||
static int setup(struct efi_unit_test *test, unsigned int *failures)
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (!test->setup)
|
||||
if (!test->setup) {
|
||||
test->setup_ok = EFI_ST_SUCCESS;
|
||||
return EFI_ST_SUCCESS;
|
||||
}
|
||||
efi_st_printc(EFI_LIGHTBLUE, "\nSetting up '%s'\n", test->name);
|
||||
ret = test->setup(handle, systable);
|
||||
if (ret != EFI_ST_SUCCESS) {
|
||||
test->setup_ok = test->setup(handle, systable);
|
||||
if (test->setup_ok != EFI_ST_SUCCESS) {
|
||||
efi_st_error("Setting up '%s' failed\n", test->name);
|
||||
++*failures;
|
||||
} else {
|
||||
efi_st_printc(EFI_LIGHTGREEN,
|
||||
"Setting up '%s' succeeded\n", test->name);
|
||||
}
|
||||
return ret;
|
||||
return test->setup_ok;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -200,7 +200,7 @@ void efi_st_do_tests(const u16 *testname, unsigned int phase,
|
||||
continue;
|
||||
if (steps & EFI_ST_SETUP)
|
||||
setup(test, failures);
|
||||
if (steps & EFI_ST_EXECUTE)
|
||||
if (steps & EFI_ST_EXECUTE && test->setup_ok == EFI_ST_SUCCESS)
|
||||
execute(test, failures);
|
||||
if (steps & EFI_ST_TEARDOWN)
|
||||
teardown(test, failures);
|
||||
|
Reference in New Issue
Block a user