diff options
author | Pranay Shoroff <pshoroff@google.com> | 2020-01-13 14:30:01 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-01-14 18:12:30 +0000 |
commit | b597ea7a016baa1a1416ca3f78aea2220479691c (patch) | |
tree | 68164f8999a2f951aa39b6fd0a0293a19b70bdde | |
parent | cd08c7797d8281cb10c7721599ddc5602ab359e3 (diff) | |
download | vboot-b597ea7a016baa1a1416ca3f78aea2220479691c.tar.gz |
vboot kernel tests: Refactored vendor-data-specific tests
No additional features added, simply moved tests relating to setting
vendor data to a separate function
BUG=b:138812835
BRANCH=none
TEST=Run 'FEATURES=test emerge-drallion vboot_reference' and
verify tests run
Change-Id: Ib9c1d32a4cd149c0e5eb464b7f9b4b17839c42d3
Signed-off-by: Pranay Shoroff <pshoroff@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/1999043
Reviewed-by: Joel Kitching <kitching@chromium.org>
-rw-r--r-- | tests/vboot_api_kernel2_tests.c | 106 |
1 files changed, 56 insertions, 50 deletions
diff --git a/tests/vboot_api_kernel2_tests.c b/tests/vboot_api_kernel2_tests.c index 55cd7cad..81db3958 100644 --- a/tests/vboot_api_kernel2_tests.c +++ b/tests/vboot_api_kernel2_tests.c @@ -841,6 +841,61 @@ static void VbBootDevTest(void) vbtlk_expect_removable = 1; TEST_EQ(VbBootDeveloper(ctx), 0, "Ctrl+U force USB"); + /* If no USB, eventually times out and tries fixed disk */ + ResetMocks(); + vb2_nv_set(ctx, VB2_NV_DEV_BOOT_USB, 1); + mock_keypress[0] = VB_KEY_CTRL('U'); + /* TODO: Currently the test suite has no way of specifying the order in + which the expected VbTryLoadKernel calls occur. */ + vbtlk_expect_fixed = 1; + vbtlk_expect_removable = 1; + TEST_EQ(VbBootDeveloper(ctx), VB2_ERROR_MOCK, "Ctrl+U enabled"); + TEST_EQ(vbexlegacy_called, 0, " not legacy"); + TEST_EQ(vb2_nv_get(ctx, VB2_NV_RECOVERY_REQUEST), 0, + " recovery reason"); + TEST_EQ(audio_looping_calls_left, 0, " used up audio"); + + /* If dev mode is disabled, goes to TONORM screen repeatedly */ + ResetMocks(); + fwmp->flags |= VB2_SECDATA_FWMP_DEV_DISABLE_BOOT; + mock_keypress[0] = VB_KEY_ESC; /* Just causes TONORM again */ + mock_keypress[1] = VB_KEY_ENTER; + TEST_EQ(VbBootDeveloper(ctx), VBERROR_REBOOT_REQUIRED, + "FWMP dev disabled"); + TEST_EQ(screens_displayed[0], VB_SCREEN_DEVELOPER_TO_NORM, + " tonorm screen"); + TEST_EQ(screens_displayed[1], VB_SCREEN_DEVELOPER_TO_NORM, + " tonorm screen"); + TEST_EQ(screens_displayed[2], VB_SCREEN_TO_NORM_CONFIRMED, + " confirm screen"); + TEST_EQ(vb2_nv_get(ctx, VB2_NV_DISABLE_DEV_REQUEST), 1, + " disable dev request"); + + /* Shutdown requested when dev disabled */ + ResetMocks(); + sd->flags = VB2_SD_FLAG_DEV_MODE_ENABLED; + fwmp->flags |= VB2_SECDATA_FWMP_DEV_DISABLE_BOOT; + MockGpioAfter(1, GPIO_SHUTDOWN); + TEST_EQ(VbBootDeveloper(ctx), + VBERROR_SHUTDOWN_REQUESTED, + "Shutdown requested when dev disabled"); + TEST_EQ(screens_displayed[0], VB_SCREEN_DEVELOPER_TO_NORM, + " tonorm screen"); + + /* Shutdown requested by keyboard when dev disabled */ + ResetMocks(); + sd->flags = VB2_SD_FLAG_DEV_MODE_ENABLED; + fwmp->flags |= VB2_SECDATA_FWMP_DEV_DISABLE_BOOT; + mock_keypress[0] = VB_BUTTON_POWER_SHORT_PRESS; + TEST_EQ(VbBootDeveloper(ctx), + VBERROR_SHUTDOWN_REQUESTED, + "Shutdown requested by keyboard when dev disabled"); + + VB2_DEBUG("...done.\n"); +} + +static void VbBootDevVendorDataTest(void) +{ /* Ctrl+S set vendor data and reboot */ ResetMocks(); ctx->flags |= VB2_CONTEXT_VENDOR_DATA_SETTABLE; @@ -1037,56 +1092,6 @@ static void VbBootDevTest(void) "Ctrl+S esc from set screen"); TEST_EQ(set_vendor_data_called, 0, " VbExSetVendorData() not called"); - /* If no USB, eventually times out and tries fixed disk */ - ResetMocks(); - vb2_nv_set(ctx, VB2_NV_DEV_BOOT_USB, 1); - mock_keypress[0] = VB_KEY_CTRL('U'); - /* TODO: Currently the test suite has no way of specifying the order in - which the expected VbTryLoadKernel calls occur. */ - vbtlk_expect_fixed = 1; - vbtlk_expect_removable = 1; - TEST_EQ(VbBootDeveloper(ctx), VB2_ERROR_MOCK, "Ctrl+U enabled"); - TEST_EQ(vbexlegacy_called, 0, " not legacy"); - TEST_EQ(vb2_nv_get(ctx, VB2_NV_RECOVERY_REQUEST), 0, - " recovery reason"); - TEST_EQ(audio_looping_calls_left, 0, " used up audio"); - - /* If dev mode is disabled, goes to TONORM screen repeatedly */ - ResetMocks(); - fwmp->flags |= VB2_SECDATA_FWMP_DEV_DISABLE_BOOT; - mock_keypress[0] = VB_KEY_ESC; /* Just causes TONORM again */ - mock_keypress[1] = VB_KEY_ENTER; - TEST_EQ(VbBootDeveloper(ctx), VBERROR_REBOOT_REQUIRED, - "FWMP dev disabled"); - TEST_EQ(screens_displayed[0], VB_SCREEN_DEVELOPER_TO_NORM, - " tonorm screen"); - TEST_EQ(screens_displayed[1], VB_SCREEN_DEVELOPER_TO_NORM, - " tonorm screen"); - TEST_EQ(screens_displayed[2], VB_SCREEN_TO_NORM_CONFIRMED, - " confirm screen"); - TEST_EQ(vb2_nv_get(ctx, VB2_NV_DISABLE_DEV_REQUEST), 1, - " disable dev request"); - - /* Shutdown requested when dev disabled */ - ResetMocks(); - sd->flags = VB2_SD_FLAG_DEV_MODE_ENABLED; - fwmp->flags |= VB2_SECDATA_FWMP_DEV_DISABLE_BOOT; - MockGpioAfter(1, GPIO_SHUTDOWN); - TEST_EQ(VbBootDeveloper(ctx), - VBERROR_SHUTDOWN_REQUESTED, - "Shutdown requested when dev disabled"); - TEST_EQ(screens_displayed[0], VB_SCREEN_DEVELOPER_TO_NORM, - " tonorm screen"); - - /* Shutdown requested by keyboard when dev disabled */ - ResetMocks(); - sd->flags = VB2_SD_FLAG_DEV_MODE_ENABLED; - fwmp->flags |= VB2_SECDATA_FWMP_DEV_DISABLE_BOOT; - mock_keypress[0] = VB_BUTTON_POWER_SHORT_PRESS; - TEST_EQ(VbBootDeveloper(ctx), - VBERROR_SHUTDOWN_REQUESTED, - "Shutdown requested by keyboard when dev disabled"); - VB2_DEBUG("...done.\n"); } @@ -1597,6 +1602,7 @@ int main(void) VbUserConfirmsTest(); VbBootTest(); VbBootDevTest(); + VbBootDevVendorDataTest(); VbBootRecTest(); if (DIAGNOSTIC_UI) VbBootDiagTest(); |