summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/vb2_api_tests.c39
1 files changed, 38 insertions, 1 deletions
diff --git a/tests/vb2_api_tests.c b/tests/vb2_api_tests.c
index 64995591..8c31c2ec 100644
--- a/tests/vb2_api_tests.c
+++ b/tests/vb2_api_tests.c
@@ -34,7 +34,7 @@ static const uint8_t mock_hwid_digest[VB2_GBB_HWID_DIGEST_SIZE] = {
};
/* Mocked function data */
-
+static int force_dev_mode;
static int retval_vb2_fw_parse_gbb;
static int retval_vb2_check_dev_switch;
static int retval_vb2_check_tpm_clear;
@@ -61,6 +61,7 @@ static void reset_common_data(enum reset_type t)
vb2_secdata_create(&cc);
vb2_secdata_init(&cc);
+ force_dev_mode = 0;
retval_vb2_fw_parse_gbb = VB2_SUCCESS;
retval_vb2_check_dev_switch = VB2_SUCCESS;
retval_vb2_check_tpm_clear = VB2_SUCCESS;
@@ -79,6 +80,8 @@ int vb2_fw_parse_gbb(struct vb2_context *ctx)
int vb2_check_dev_switch(struct vb2_context *ctx)
{
+ if (force_dev_mode)
+ sd->flags |= VB2_SD_FLAG_DEV_MODE_ENABLED;
return retval_vb2_check_dev_switch;
}
@@ -121,6 +124,10 @@ static void phase1_tests(void)
TEST_EQ(sd->recovery_reason, 0, " not recovery");
TEST_EQ(cc.flags & VB2_CONTEXT_RECOVERY_MODE, 0, " recovery flag");
TEST_EQ(cc.flags & VB2_CONTEXT_CLEAR_RAM, 0, " clear ram flag");
+ TEST_EQ(cc.flags & VB2_CONTEXT_DISPLAY_INIT,
+ 0, " display init context flag");
+ TEST_EQ(sd->flags & VB2_SD_FLAG_DISPLAY_AVAILABLE,
+ 0, " display available SD flag");
reset_common_data(FOR_MISC);
retval_vb2_fw_parse_gbb = VB2_ERROR_GBB_MAGIC;
@@ -146,6 +153,11 @@ static void phase1_tests(void)
"phase1 dev switch error in recovery");
TEST_EQ(sd->recovery_reason, VB2_RECOVERY_RO_UNSPECIFIED,
" recovery reason");
+ /* Check that DISPLAY_AVAILABLE gets set on recovery mode. */
+ TEST_NEQ(cc.flags & VB2_CONTEXT_DISPLAY_INIT,
+ 0, " display init context flag");
+ TEST_NEQ(sd->flags & VB2_SD_FLAG_DISPLAY_AVAILABLE,
+ 0, " display available SD flag");
reset_common_data(FOR_MISC);
cc.secdata[0] ^= 0x42;
@@ -235,6 +247,31 @@ static void phase1_tests(void)
1, " tpm reboot request");
TEST_EQ(vb2_nv_get(&cc, VB2_NV_RECOVERY_REQUEST), 0,
" recovery request cleared");
+
+ /* Cases for checking DISPLAY_INIT and DISPLAY_AVAILABLE. */
+ reset_common_data(FOR_MISC);
+ cc.flags |= VB2_CONTEXT_DISPLAY_INIT;
+ TEST_SUCC(vb2api_fw_phase1(&cc), "phase1 with DISPLAY_INIT");
+ TEST_NEQ(cc.flags & VB2_CONTEXT_DISPLAY_INIT,
+ 0, " display init context flag");
+ TEST_NEQ(sd->flags & VB2_SD_FLAG_DISPLAY_AVAILABLE,
+ 0, " display available SD flag");
+
+ reset_common_data(FOR_MISC);
+ vb2_nv_set(&cc, VB2_NV_OPROM_NEEDED, 1);
+ TEST_SUCC(vb2api_fw_phase1(&cc), "phase1 with OPROM_NEEDED");
+ TEST_NEQ(cc.flags & VB2_CONTEXT_DISPLAY_INIT,
+ 0, " display init context flag");
+ TEST_NEQ(sd->flags & VB2_SD_FLAG_DISPLAY_AVAILABLE,
+ 0, " display available SD flag");
+
+ reset_common_data(FOR_MISC);
+ force_dev_mode = 1;
+ TEST_SUCC(vb2api_fw_phase1(&cc), "phase1 in dev mode");
+ TEST_NEQ(cc.flags & VB2_CONTEXT_DISPLAY_INIT,
+ 0, " display init context flag");
+ TEST_NEQ(sd->flags & VB2_SD_FLAG_DISPLAY_AVAILABLE,
+ 0, " display available SD flag");
}
static void phase2_tests(void)