summaryrefslogtreecommitdiff
path: root/tests/vb2_api_tests.c
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2014-10-29 15:08:39 -0500
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2014-11-03 23:41:02 +0000
commit941e25fa59816cf6ae32a585b013f671eccbd813 (patch)
tree92cd71ba208ce89e08a22854317d62ab6c26fb40 /tests/vb2_api_tests.c
parent42f02139d522cc787630ee95ecf654f4410175e5 (diff)
downloadvboot-941e25fa59816cf6ae32a585b013f671eccbd813.tar.gz
vb2: parse dev mode in phase1
The rest of the system software expects dev mode to be orthogonal to recovery mode. However, vb2_fw_phase1() was only checking recovery mode. The caller would then not call vb2_fw_phase2() which checked the developer mode settings. Fix this by doing the necessary steps in vb2_fw_phase1(). BUG=chrome-os-partner:33264 BRANCH=None TEST=None yet. Change-Id: I06da388c3ca33754ddb5937a2877fbc287946490 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://chromium-review.googlesource.com/225906 Tested-by: Furquan Shaikh <furquan@chromium.org> Commit-Queue: Furquan Shaikh <furquan@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Benson Leung <bleung@chromium.org> Tested-by: Benson Leung <bleung@chromium.org>
Diffstat (limited to 'tests/vb2_api_tests.c')
-rw-r--r--tests/vb2_api_tests.c38
1 files changed, 23 insertions, 15 deletions
diff --git a/tests/vb2_api_tests.c b/tests/vb2_api_tests.c
index 0d2773a5..cf706d46 100644
--- a/tests/vb2_api_tests.c
+++ b/tests/vb2_api_tests.c
@@ -218,10 +218,30 @@ static void phase1_tests(void)
TEST_EQ(cc.flags & VB2_CONTEXT_CLEAR_RAM, 0, " clear ram flag");
reset_common_data(FOR_MISC);
+ retval_vb2_fw_parse_gbb = VB2_ERROR_GBB_MAGIC;
+ TEST_EQ(vb2api_fw_phase1(&cc), VB2_ERROR_API_PHASE1_RECOVERY,
+ "phase1 gbb");
+ TEST_EQ(sd->recovery_reason, VB2_RECOVERY_GBB_HEADER,
+ " recovery reason");
+ TEST_NEQ(cc.flags & VB2_CONTEXT_RECOVERY_MODE, 0, " recovery flag");
+ TEST_NEQ(cc.flags & VB2_CONTEXT_CLEAR_RAM, 0, " clear ram flag");
+
+
+ reset_common_data(FOR_MISC);
+ retval_vb2_check_dev_switch = VB2_ERROR_MOCK;
+ TEST_EQ(vb2api_fw_phase1(&cc), VB2_ERROR_API_PHASE1_RECOVERY,
+ "phase1 dev switch");
+ TEST_EQ(sd->recovery_reason, VB2_RECOVERY_DEV_SWITCH,
+ " recovery reason");
+ TEST_NEQ(cc.flags & VB2_CONTEXT_RECOVERY_MODE, 0, " recovery flag");
+ TEST_NEQ(cc.flags & VB2_CONTEXT_CLEAR_RAM, 0, " clear ram flag");
+
+ reset_common_data(FOR_MISC);
cc.secdata[0] ^= 0x42;
- TEST_EQ(vb2api_fw_phase1(&cc),
- VB2_ERROR_API_PHASE1_RECOVERY, "phase1 secdata");
- TEST_EQ(sd->recovery_reason, VB2_RECOVERY_SECDATA_INIT, " recovery");
+ TEST_EQ(vb2api_fw_phase1(&cc), VB2_ERROR_API_PHASE1_RECOVERY,
+ "phase1 secdata");
+ TEST_EQ(sd->recovery_reason, VB2_RECOVERY_SECDATA_INIT,
+ " recovery reason");
TEST_NEQ(cc.flags & VB2_CONTEXT_RECOVERY_MODE, 0, " recovery flag");
TEST_NEQ(cc.flags & VB2_CONTEXT_CLEAR_RAM, 0, " clear ram flag");
}
@@ -233,18 +253,6 @@ static void phase2_tests(void)
TEST_EQ(cc.flags & VB2_CONTEXT_CLEAR_RAM, 0, " clear ram flag");
reset_common_data(FOR_MISC);
- retval_vb2_fw_parse_gbb = VB2_ERROR_GBB_MAGIC;
- TEST_EQ(vb2api_fw_phase2(&cc), VB2_ERROR_GBB_MAGIC, "phase2 gbb");
- TEST_EQ(vb2_nv_get(&cc, VB2_NV_RECOVERY_REQUEST),
- VB2_RECOVERY_GBB_HEADER, " recovery reason");
-
- reset_common_data(FOR_MISC);
- retval_vb2_check_dev_switch = VB2_ERROR_MOCK;
- TEST_EQ(vb2api_fw_phase2(&cc), VB2_ERROR_MOCK, "phase2 dev switch");
- TEST_EQ(vb2_nv_get(&cc, VB2_NV_RECOVERY_REQUEST),
- VB2_RECOVERY_DEV_SWITCH, " recovery reason");
-
- reset_common_data(FOR_MISC);
cc.flags |= VB2_CONTEXT_DEVELOPER_MODE;
TEST_SUCC(vb2api_fw_phase2(&cc), "phase1 dev");
TEST_NEQ(cc.flags & VB2_CONTEXT_CLEAR_RAM, 0, " clear ram flag");