efi_selfest: redefine enum efi_test_phase
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Wed, 24 Mar 2021 16:48:01 +0000 (17:48 +0100)
committerHeinrich Schuchardt <xypron.glpk@gmx.de>
Thu, 25 Mar 2021 19:54:12 +0000 (20:54 +0100)
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>
include/efi_selftest.h
lib/efi_selftest/efi_selftest.c
lib/efi_selftest/efi_selftest_set_virtual_address_map.c

index 1515fda..07b6199 100644 (file)
@@ -66,11 +66,10 @@ enum efi_test_phase {
         */
        EFI_SETUP_BEFORE_BOOTTIME_EXIT,
        /**
-        * @EFI_SETUP_AFTER_BOOTTIME_EXIT: - setup after ExitBootServices
-        *
-        * Setup, execute, and teardown are executed after ExitBootServices().
+        * @EFI_SETTING_VIRTUAL_ADDRESS_MAP - calls SetVirtualAddressMap()
+        * Execute calls SetVirtualAddressMap().
         */
-       EFI_SETUP_AFTER_BOOTTIME_EXIT,
+       EFI_SETTING_VIRTUAL_ADDRESS_MAP,
 };
 
 extern struct efi_simple_text_output_protocol *con_out;
index b8eed04..39ee2ed 100644 (file)
@@ -160,7 +160,7 @@ static bool need_reset(const u16 *testname)
                if (testname && efi_st_strcmp_16_8(testname, test->name))
                        continue;
                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 false;
@@ -327,15 +327,16 @@ efi_status_t EFIAPI efi_selftest(efi_handle_t image_handle,
        /* Execute mixed tests */
        efi_st_do_tests(testname, EFI_SETUP_BEFORE_BOOTTIME_EXIT,
                        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_do_tests(testname, EFI_SETUP_BEFORE_BOOTTIME_EXIT,
                        EFI_ST_EXECUTE | EFI_ST_TEARDOWN, &failures);
-
-       /* Execute runtime tests */
-       efi_st_do_tests(testname, EFI_SETUP_AFTER_BOOTTIME_EXIT,
-                       EFI_ST_SETUP | EFI_ST_EXECUTE | EFI_ST_TEARDOWN,
+       /* Execute test setting the virtual address map */
+       efi_st_do_tests(testname, EFI_SETTING_VIRTUAL_ADDRESS_MAP,
+                       EFI_ST_EXECUTE | EFI_ST_TEARDOWN,
                        &failures);
 
        /* Give feedback */
index b097a81..8e2e8ba 100644 (file)
@@ -201,7 +201,7 @@ static int execute(void)
 
 EFI_UNIT_TEST(virtaddrmap) = {
        .name = "virtual address map",
-       .phase = EFI_SETUP_BEFORE_BOOTTIME_EXIT,
+       .phase = EFI_SETTING_VIRTUAL_ADDRESS_MAP,
        .setup = setup,
        .execute = execute,
 };