diff options
Diffstat (limited to 'tests/vboot_detach_menu_tests.c')
-rw-r--r-- | tests/vboot_detach_menu_tests.c | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/tests/vboot_detach_menu_tests.c b/tests/vboot_detach_menu_tests.c index 05785848..6949bedb 100644 --- a/tests/vboot_detach_menu_tests.c +++ b/tests/vboot_detach_menu_tests.c @@ -9,8 +9,7 @@ #include <stdio.h> #include <stdlib.h> -#include "2sysincludes.h" -#include "2api.h" +#include "2common.h" #include "2misc.h" #include "2nvstorage.h" #include "host_common.h" @@ -33,6 +32,7 @@ static LoadKernelParams lkp; static uint8_t workbuf[VB2_KERNEL_WORKBUF_RECOMMENDED_SIZE]; static struct vb2_context ctx; static struct vb2_shared_data *sd; +static struct vb2_gbb_header gbb; static int shutdown_request_calls_left; static int audio_looping_calls_left; @@ -79,6 +79,8 @@ static void ResetMocks(void) sd = vb2_get_sd(&ctx); sd->vbsd = shared; + memset(&gbb, 0, sizeof(gbb)); + /* In recovery we have 50 keyscans per disk scan, this must be high. */ shutdown_request_calls_left = 301; audio_looping_calls_left = 60; @@ -127,6 +129,10 @@ static void ResetMocksForManualRecovery(void) } /* Mock functions */ +struct vb2_gbb_header *vb2_get_gbb(struct vb2_context *c) +{ + return &gbb; +} uint32_t VbExGetAltFwIdxMask() { @@ -279,8 +285,8 @@ static void VbBootDevTest(void) /* Proceed to legacy after timeout if GBB flag set */ ResetMocksForDeveloper(); - sd->gbb_flags |= VB2_GBB_FLAG_DEFAULT_DEV_BOOT_LEGACY | - VB2_GBB_FLAG_FORCE_DEV_BOOT_LEGACY; + gbb.flags |= VB2_GBB_FLAG_DEFAULT_DEV_BOOT_LEGACY | + VB2_GBB_FLAG_FORCE_DEV_BOOT_LEGACY; TEST_EQ(VbBootDeveloperMenu(&ctx), vbtlk_retval_fixed, "default legacy GBB"); TEST_EQ(vbexlegacy_called, 1, " try legacy"); @@ -465,7 +471,7 @@ static void VbBootDevTest(void) /* ENTER functionality is unaffected by GBB flag in detachable UI. */ ResetMocksForDeveloper(); - sd->gbb_flags |= VB2_GBB_FLAG_ENTER_TRIGGERS_TONORM; + gbb.flags |= VB2_GBB_FLAG_ENTER_TRIGGERS_TONORM; mock_keypress[0] = VB_KEY_ENTER; TEST_EQ(VbBootDeveloperMenu(&ctx), VBERROR_SHUTDOWN_REQUESTED, "dev warning menu: ENTER unaffected by GBB"); @@ -520,7 +526,7 @@ static void VbBootDevTest(void) /* Tonorm ignored if GBB forces dev switch on */ ResetMocksForDeveloper(); shared->flags |= VBSD_BOOT_DEV_SWITCH_ON; - sd->gbb_flags |= VB2_GBB_FLAG_FORCE_DEV_SWITCH_ON; + gbb.flags |= VB2_GBB_FLAG_FORCE_DEV_SWITCH_ON; mock_keypress[0] = VB_BUTTON_VOL_UP_SHORT_PRESS; mock_keypress[1] = VB_BUTTON_POWER_SHORT_PRESS; mock_keypress[2] = VB_BUTTON_POWER_SHORT_PRESS; @@ -581,7 +587,7 @@ static void VbBootDevTest(void) /* Ctrl+D doesn't boot legacy even if GBB flag is set */ ResetMocksForDeveloper(); mock_keypress[0] = VB_KEY_CTRL('D'); - sd->gbb_flags |= VB2_GBB_FLAG_DEFAULT_DEV_BOOT_LEGACY; + gbb.flags |= VB2_GBB_FLAG_DEFAULT_DEV_BOOT_LEGACY; TEST_EQ(VbBootDeveloperMenu(&ctx), vbtlk_retval_fixed, "Ctrl+D"); TEST_EQ(vbexlegacy_called, 0, " not legacy"); @@ -621,7 +627,7 @@ static void VbBootDevTest(void) /* Ctrl+L boots legacy if enabled by GBB flag */ ResetMocksForDeveloper(); - sd->gbb_flags |= VB2_GBB_FLAG_FORCE_DEV_BOOT_LEGACY; + gbb.flags |= VB2_GBB_FLAG_FORCE_DEV_BOOT_LEGACY; mock_keypress[0] = VB_KEY_CTRL('L'); mock_keypress[1] = VB_BUTTON_POWER_SHORT_PRESS; TEST_EQ(VbBootDeveloperMenu(&ctx), vbtlk_retval_fixed, @@ -736,7 +742,7 @@ static void VbBootDevTest(void) /* Ctrl+U enabled via GBB */ ResetMocksForDeveloper(); - sd->gbb_flags |= VB2_GBB_FLAG_FORCE_DEV_BOOT_USB; + gbb.flags |= VB2_GBB_FLAG_FORCE_DEV_BOOT_USB; mock_keypress[0] = VB_KEY_CTRL('U'); vbtlk_retval[0] = VBERROR_SUCCESS - VB_DISK_FLAG_REMOVABLE; TEST_EQ(VbBootDeveloperMenu(&ctx), VBERROR_SUCCESS, "Ctrl+U force USB"); @@ -1360,7 +1366,7 @@ static void VbBootRecTest(void) /* go to INSERT if forced by GBB flag */ ResetMocks(); vbtlk_retval[0] = VBERROR_NO_DISK_FOUND - VB_DISK_FLAG_REMOVABLE; - sd->gbb_flags |= VB2_GBB_FLAG_FORCE_MANUAL_RECOVERY; + gbb.flags |= VB2_GBB_FLAG_FORCE_MANUAL_RECOVERY; TEST_EQ(VbBootRecoveryMenu(&ctx), VBERROR_SHUTDOWN_REQUESTED, "Shutdown requested in INSERT forced by GBB flag"); TEST_EQ(vb2_nv_get(&ctx, VB2_NV_RECOVERY_REQUEST), 0, " no recovery"); |