summaryrefslogtreecommitdiff
path: root/tests/vb2_secdata_kernel_tests.c
diff options
context:
space:
mode:
authorYu-Ping Wu <yupingso@chromium.org>2020-04-01 16:36:48 +0800
committerCommit Bot <commit-bot@chromium.org>2020-04-20 15:21:06 +0000
commitecf8073bd306ca45d7b6551efe094f9a555f9985 (patch)
tree37d2fd86a0b04b6cc54b13d80cf06201c0cf32b0 /tests/vb2_secdata_kernel_tests.c
parentcc719d12112eadb578480b26e323f0760e0c13f6 (diff)
downloadvboot-ecf8073bd306ca45d7b6551efe094f9a555f9985.tar.gz
vboot: Add vb2api_phone_recovery_enabled() to vboot API
In order to implement a kill switch for phone recovery in recovery UI, add VB2_SECDATA_KERNEL_FLAGS to enum vb2_secdata_kernel_flags, and add VB2_SECDATA_KERNEL_FLAG_PHONE_RECOVERY_DISABLED to the flags to indicate whether to disable phone recovery. Set this flag to 1 in vb2api_kernel_phase1(). Also add vb2api_phone_recovery_enabled() to vboot API. BRANCH=none BUG=b:146399181, b:147744345 TEST=make runtests Change-Id: I65c8faa593f5f90dd762f0092058048983c5b3a2 Signed-off-by: Yu-Ping Wu <yupingso@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2131236 Reviewed-by: Joel Kitching <kitching@chromium.org>
Diffstat (limited to 'tests/vb2_secdata_kernel_tests.c')
-rw-r--r--tests/vb2_secdata_kernel_tests.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/vb2_secdata_kernel_tests.c b/tests/vb2_secdata_kernel_tests.c
index 06f8474b..327018dc 100644
--- a/tests/vb2_secdata_kernel_tests.c
+++ b/tests/vb2_secdata_kernel_tests.c
@@ -214,6 +214,22 @@ static void secdata_kernel_access_test_v10(void)
v = vb2_secdata_kernel_get(ctx, VB2_SECDATA_KERNEL_VERSIONS);
TEST_EQ(v, 0x123456ff, "Versions changed");
+ /* Read/write flags */
+ vb2api_secdata_kernel_create(ctx);
+ vb2_secdata_kernel_init(ctx);
+ ctx->flags = 0;
+ v = vb2_secdata_kernel_get(ctx, VB2_SECDATA_KERNEL_FLAGS);
+ TEST_EQ(v, 0, "Flags created 0");
+ test_changed(ctx, 0, "Get doesn't change data");
+ vb2_secdata_kernel_set(ctx, VB2_SECDATA_KERNEL_FLAGS, 0x12);
+ test_changed(ctx, 1, "Set changes data");
+ vb2_secdata_kernel_set(ctx, VB2_SECDATA_KERNEL_FLAGS, 0x12);
+ test_changed(ctx, 0, "Set again doesn't change data");
+ v = vb2_secdata_kernel_get(ctx, VB2_SECDATA_KERNEL_FLAGS);
+ TEST_EQ(v, 0x12, "Flags changed");
+ TEST_ABORT(vb2_secdata_kernel_set(ctx, VB2_SECDATA_KERNEL_FLAGS, 0x100),
+ "Bad flags");
+
/* Invalid field fails */
TEST_ABORT(vb2_secdata_kernel_get(ctx, -1), "Get invalid");
TEST_ABORT(vb2_secdata_kernel_set(ctx, -1, 456), "Set invalid");
@@ -284,6 +300,13 @@ static void secdata_kernel_access_test_v02(void)
v = vb2_secdata_kernel_get(ctx, VB2_SECDATA_KERNEL_VERSIONS);
TEST_EQ(v, 0x123456ff, "Versions changed");
+ /* Read/write flags: should be no-op for v0 */
+ TEST_EQ(vb2_secdata_kernel_get(ctx, VB2_SECDATA_KERNEL_FLAGS), 0,
+ "Get flags");
+ vb2_secdata_kernel_set(ctx, VB2_SECDATA_KERNEL_FLAGS, 0x1);
+ TEST_EQ(vb2_secdata_kernel_get(ctx, VB2_SECDATA_KERNEL_FLAGS), 0,
+ "Get flags again");
+
/* Invalid field fails */
TEST_ABORT(vb2_secdata_kernel_get(ctx, -1), "Get invalid");
TEST_ABORT(vb2_secdata_kernel_set(ctx, -1, 456), "Set invalid");