diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/vboot_api_kernel2_tests.c | 11 | ||||
-rw-r--r-- | tests/vboot_detach_menu_tests.c | 14 |
2 files changed, 25 insertions, 0 deletions
diff --git a/tests/vboot_api_kernel2_tests.c b/tests/vboot_api_kernel2_tests.c index 2a714baa..b9e05157 100644 --- a/tests/vboot_api_kernel2_tests.c +++ b/tests/vboot_api_kernel2_tests.c @@ -605,6 +605,17 @@ static void VbBootRecTest(void) TEST_EQ(screens_displayed[0], VB_SCREEN_OS_BROKEN, " broken screen"); + /* Force insert screen with GBB flag */ + ResetMocks(); + shutdown_request_calls_left = 100; + sd->gbb_flags |= VB2_GBB_FLAG_FORCE_MANUAL_RECOVERY; + vbtlk_retval = VBERROR_NO_DISK_FOUND - VB_DISK_FLAG_REMOVABLE; + TEST_EQ(VbBootRecovery(&ctx), + VBERROR_SHUTDOWN_REQUESTED, + "Insert (forced by GBB)"); + TEST_EQ(screens_displayed[0], VB_SCREEN_RECOVERY_INSERT, + " insert screen"); + /* No removal if recovery button physically pressed */ ResetMocks(); shutdown_request_calls_left = 100; diff --git a/tests/vboot_detach_menu_tests.c b/tests/vboot_detach_menu_tests.c index 3d30683a..f494dc91 100644 --- a/tests/vboot_detach_menu_tests.c +++ b/tests/vboot_detach_menu_tests.c @@ -1333,6 +1333,20 @@ static void VbBootRecTest(void) TEST_EQ(screens_count, 2, " no extra screens"); TEST_EQ(beeps_count, 0, " no beep on shutdown"); + /* go to INSERT if forced by GBB flag */ + ResetMocks(); + vbtlk_retval[0] = VBERROR_NO_DISK_FOUND - VB_DISK_FLAG_REMOVABLE; + sd->gbb_flags |= 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"); + TEST_EQ(debug_info_displayed, 0, " no debug info"); + TEST_EQ(screens_displayed[0], VB_SCREEN_RECOVERY_INSERT, + " insert screen"); + TEST_EQ(screens_displayed[1], VB_SCREEN_BLANK, " final blank screen"); + TEST_EQ(screens_count, 2, " no extra screens"); + TEST_EQ(beeps_count, 0, " no beep on shutdown"); + /* Stay at BROKEN if recovery button not physically pressed */ ResetMocksForManualRecovery(); vbtlk_retval[0] = VBERROR_NO_DISK_FOUND - VB_DISK_FLAG_REMOVABLE; |