efi_selfest: redefine enum efi_test_phase

Setup will always occur before ExitBootServices(). So eliminate
EFI_SETUP_AFTER_BOOTTIME_EXIT. Put the SetVirtualAddressMap() test into a
separate class so that we can execute it last.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
This commit is contained in:
Heinrich Schuchardt 2021-03-24 17:48:01 +01:00
parent f69a2016b6
commit 5e21958c02
3 changed files with 10 additions and 10 deletions

View File

@ -66,11 +66,10 @@ enum efi_test_phase {
*/ */
EFI_SETUP_BEFORE_BOOTTIME_EXIT, EFI_SETUP_BEFORE_BOOTTIME_EXIT,
/** /**
* @EFI_SETUP_AFTER_BOOTTIME_EXIT: - setup after ExitBootServices * @EFI_SETTING_VIRTUAL_ADDRESS_MAP - calls SetVirtualAddressMap()
* * Execute calls SetVirtualAddressMap().
* Setup, execute, and teardown are executed after ExitBootServices().
*/ */
EFI_SETUP_AFTER_BOOTTIME_EXIT, EFI_SETTING_VIRTUAL_ADDRESS_MAP,
}; };
extern struct efi_simple_text_output_protocol *con_out; extern struct efi_simple_text_output_protocol *con_out;

View File

@ -160,7 +160,7 @@ static bool need_reset(const u16 *testname)
if (testname && efi_st_strcmp_16_8(testname, test->name)) if (testname && efi_st_strcmp_16_8(testname, test->name))
continue; continue;
if (test->phase == EFI_SETUP_BEFORE_BOOTTIME_EXIT || if (test->phase == EFI_SETUP_BEFORE_BOOTTIME_EXIT ||
test->phase == EFI_SETUP_AFTER_BOOTTIME_EXIT) test->phase == EFI_SETTING_VIRTUAL_ADDRESS_MAP)
return true; return true;
} }
return false; return false;
@ -327,15 +327,16 @@ efi_status_t EFIAPI efi_selftest(efi_handle_t image_handle,
/* Execute mixed tests */ /* Execute mixed tests */
efi_st_do_tests(testname, EFI_SETUP_BEFORE_BOOTTIME_EXIT, efi_st_do_tests(testname, EFI_SETUP_BEFORE_BOOTTIME_EXIT,
EFI_ST_SETUP, &failures); EFI_ST_SETUP, &failures);
efi_st_do_tests(testname, EFI_SETTING_VIRTUAL_ADDRESS_MAP,
EFI_ST_SETUP, &failures);
efi_st_exit_boot_services(); efi_st_exit_boot_services();
efi_st_do_tests(testname, EFI_SETUP_BEFORE_BOOTTIME_EXIT, efi_st_do_tests(testname, EFI_SETUP_BEFORE_BOOTTIME_EXIT,
EFI_ST_EXECUTE | EFI_ST_TEARDOWN, &failures); EFI_ST_EXECUTE | EFI_ST_TEARDOWN, &failures);
/* Execute test setting the virtual address map */
/* Execute runtime tests */ efi_st_do_tests(testname, EFI_SETTING_VIRTUAL_ADDRESS_MAP,
efi_st_do_tests(testname, EFI_SETUP_AFTER_BOOTTIME_EXIT, EFI_ST_EXECUTE | EFI_ST_TEARDOWN,
EFI_ST_SETUP | EFI_ST_EXECUTE | EFI_ST_TEARDOWN,
&failures); &failures);
/* Give feedback */ /* Give feedback */

View File

@ -201,7 +201,7 @@ static int execute(void)
EFI_UNIT_TEST(virtaddrmap) = { EFI_UNIT_TEST(virtaddrmap) = {
.name = "virtual address map", .name = "virtual address map",
.phase = EFI_SETUP_BEFORE_BOOTTIME_EXIT, .phase = EFI_SETTING_VIRTUAL_ADDRESS_MAP,
.setup = setup, .setup = setup,
.execute = execute, .execute = execute,
}; };