summaryrefslogtreecommitdiff
path: root/tests/vboot_firmware_tests.c
diff options
context:
space:
mode:
authorRandall Spangler <rspangler@chromium.org>2012-06-13 16:43:59 -0700
committerGerrit <chrome-bot@google.com>2012-06-14 18:57:52 -0700
commitacd6f4688abb9a0253bb469a8a52046c97281347 (patch)
tree7960d5838caa2bb7d11c199ba70f1747947b5196 /tests/vboot_firmware_tests.c
parent3dae2288bb33a2a1bdc839f5e1e72f7507387926 (diff)
downloadvboot-acd6f4688abb9a0253bb469a8a52046c97281347.tar.gz
Add GBB flags to enable dev mode by default
And enable dev_boot_usb by default. And disable rollback checks. The first flag is necessary for factory to build with keyboard controlled dev mode. The other flags are really handy for development on systems where you've defeated firmware WP and are installing custom firmware. BUG=chromium-os:31844 TEST=make && make runtests Signed-off-by: Randall Spangler <rspangler@chromium.org> Change-Id: I9d837fee676cb0186ea98f13005ad60a9ab86393 Reviewed-on: https://gerrit.chromium.org/gerrit/25265 Tested-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Bill Richardson <wfrichar@chromium.org> Reviewed-by: Hung-Te Lin <hungte@chromium.org> Commit-Ready: Randall Spangler <rspangler@chromium.org>
Diffstat (limited to 'tests/vboot_firmware_tests.c')
-rw-r--r--tests/vboot_firmware_tests.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/vboot_firmware_tests.c b/tests/vboot_firmware_tests.c
index 7a023226..0443b061 100644
--- a/tests/vboot_firmware_tests.c
+++ b/tests/vboot_firmware_tests.c
@@ -253,6 +253,14 @@ static void LoadFirmwareTest(void) {
TEST_EQ(shared->check_fw_b_result, VBSD_LF_CHECK_DATA_KEY_PARSE,
"Data key invalid");
+ /* Test invalid key version with GBB bypass-rollback flag */
+ ResetMocks();
+ vblock[0].data_key.key_version = 1; /* Simulate rollback */
+ gbb->flags = GBB_FLAG_DISABLE_FW_ROLLBACK_CHECK;
+ TestLoadFirmware(VBERROR_SUCCESS, 0, "Key version check + GBB override");
+ TEST_EQ(shared->check_fw_a_result, VBSD_LF_CHECK_VALID,
+ "Key version rollback + GBB override");
+
/* Test invalid preamble with A */
ResetMocks();
mpreamble[0].header_version_major = 1; /* Simulate failure */
@@ -277,6 +285,17 @@ static void LoadFirmwareTest(void) {
TEST_EQ(shared->check_fw_b_result, VBSD_LF_CHECK_FW_ROLLBACK,
"Firmware version overflow");
+ /* Test invalid firmware versions with GBB bypass-rollback flag */
+ ResetMocks();
+ mpreamble[0].firmware_version = 3; /* Simulate rollback */
+ mpreamble[1].firmware_version = 0x10001; /* Check overflow */
+ gbb->flags = GBB_FLAG_DISABLE_FW_ROLLBACK_CHECK;
+ TestLoadFirmware(VBERROR_SUCCESS, 0, "Firmware version check + GBB bypass");
+ TEST_EQ(shared->check_fw_a_result, VBSD_LF_CHECK_VALID,
+ "Firmware version rollback + GBB override");
+ TEST_EQ(shared->check_fw_b_result, VBSD_LF_CHECK_HEADER_VALID,
+ "Firmware version overflow + GBB override");
+
/* Test RO normal with A */
ResetMocks();
mpreamble[0].flags = VB_FIRMWARE_PREAMBLE_USE_RO_NORMAL;