summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFurquan Shaikh <furquan@google.com>2015-09-08 15:36:08 -0700
committerChromeOS bot <3su6n15k.default@developer.gserviceaccount.com>2015-09-09 01:14:27 +0000
commite58098995fdb40d61f83a5916cf2140822f43eb2 (patch)
tree89f20dbb6ed09bd19ad5a3f9222874209af2b7db
parent03fb701fc07658c5d5ae8a293244502d17063077 (diff)
downloadvboot-e58098995fdb40d61f83a5916cf2140822f43eb2.tar.gz
tests: Update the tests for VbVerifyMemoryBootImage
With CL:298090, signature for VbVerifyMemoryBootImage change. Fix the tests to reflect this. Add tests for integrity_check only set to 1. BUG=chrome-os-partner:44929 BRANCH=None TEST=make -j runtests successful. Change-Id: I096316c963eda2347593584cc1b435482e0e2e5c Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://chromium-review.googlesource.com/298172 Trybot-Ready: Furquan Shaikh <furquan@chromium.org> Tested-by: Furquan Shaikh <furquan@chromium.org> Reviewed-by: Aaron Durbin <adurbin@chromium.org> Commit-Queue: Furquan Shaikh <furquan@chromium.org>
-rw-r--r--tests/vboot_api_kernel5_tests.c47
1 files changed, 35 insertions, 12 deletions
diff --git a/tests/vboot_api_kernel5_tests.c b/tests/vboot_api_kernel5_tests.c
index 8c59622f..8c62aba0 100644
--- a/tests/vboot_api_kernel5_tests.c
+++ b/tests/vboot_api_kernel5_tests.c
@@ -161,7 +161,7 @@ static void VerifyMemoryBootImageTest(void)
kernel_body_start = (uintptr_t)kernel_buffer + kernel_body_offset;
u = VbVerifyMemoryBootImage(&cparams, &kparams, kernel_buffer,
- kernel_buffer_size);
+ kernel_buffer_size, 0);
TEST_EQ(u, 0, "Image good");
TEST_EQ(kparams.partition_number, 0, " part num");
TEST_EQ(kparams.bootloader_address, 0xbeadd008, " bootloader addr");
@@ -174,19 +174,20 @@ static void VerifyMemoryBootImageTest(void)
/* Empty image buffer. */
ResetMocks();
TEST_EQ(VbVerifyMemoryBootImage(&cparams, &kparams, NULL,
- kernel_buffer_size),
+ kernel_buffer_size, 0),
VBERROR_INVALID_PARAMETER, "Empty image");
/* Illegal image size. */
ResetMocks();
- TEST_EQ(VbVerifyMemoryBootImage(&cparams, &kparams, kernel_buffer, 0),
+ TEST_EQ(VbVerifyMemoryBootImage(&cparams, &kparams, kernel_buffer, 0,
+ 0),
VBERROR_INVALID_PARAMETER, "Illegal image size");
/* Key Block Verification Failure */
ResetMocks();
key_block_verify_fail = 1;
TEST_EQ(VbVerifyMemoryBootImage(&cparams, &kparams, kernel_buffer,
- kernel_buffer_size),
+ kernel_buffer_size, 0),
VBERROR_INVALID_KERNEL_FOUND, "Key verify failed");
TEST_EQ(hash_only_check, 0, " hash check");
@@ -196,7 +197,7 @@ static void VerifyMemoryBootImageTest(void)
gbb.flags = GBB_FLAG_FORCE_DEV_BOOT_FASTBOOT_FULL_CAP;
key_block_verify_fail = 1;
TEST_EQ(VbVerifyMemoryBootImage(&cparams, &kparams, kernel_buffer,
- kernel_buffer_size),
+ kernel_buffer_size, 0),
VBERROR_INVALID_KERNEL_FOUND, "Key verify failed");
TEST_EQ(hash_only_check, 1, " hash check");
@@ -207,7 +208,7 @@ static void VerifyMemoryBootImageTest(void)
copy_kbh();
shared->flags = VBSD_BOOT_DEV_SWITCH_ON;
TEST_EQ(VbVerifyMemoryBootImage(&cparams, &kparams, kernel_buffer,
- kernel_buffer_size),
+ kernel_buffer_size, 0),
VBERROR_INVALID_KERNEL_FOUND,
"Developer flag mismatch - dev switch on");
@@ -219,7 +220,7 @@ static void VerifyMemoryBootImageTest(void)
gbb.flags = GBB_FLAG_FORCE_DEV_BOOT_FASTBOOT_FULL_CAP;
shared->flags = VBSD_BOOT_DEV_SWITCH_ON;
TEST_EQ(VbVerifyMemoryBootImage(&cparams, &kparams, kernel_buffer,
- kernel_buffer_size),
+ kernel_buffer_size, 0),
VBERROR_SUCCESS,
"Developer flag mismatch - dev switch on(gbb override)");
@@ -231,7 +232,7 @@ static void VerifyMemoryBootImageTest(void)
shared->flags = VBSD_BOOT_DEV_SWITCH_ON;
gbb.flags = GBB_FLAG_FORCE_DEV_BOOT_FASTBOOT_FULL_CAP;
TEST_EQ(VbVerifyMemoryBootImage(&cparams, &kparams, kernel_buffer,
- kernel_buffer_size),
+ kernel_buffer_size, 0),
VBERROR_SUCCESS,
"Recovery flag mismatch - dev switch on(gbb override)");
@@ -241,7 +242,7 @@ static void VerifyMemoryBootImageTest(void)
KEY_BLOCK_FLAG_RECOVERY_1;
copy_kbh();
TEST_EQ(VbVerifyMemoryBootImage(&cparams, &kparams, kernel_buffer,
- kernel_buffer_size),
+ kernel_buffer_size, 0),
VBERROR_INVALID_KERNEL_FOUND,
"Developer flag mismatch - dev switch off");
@@ -252,22 +253,44 @@ static void VerifyMemoryBootImageTest(void)
shared->flags = 0;
copy_kbh();
TEST_EQ(VbVerifyMemoryBootImage(&cparams, &kparams, kernel_buffer,
- kernel_buffer_size),
+ kernel_buffer_size, 0),
VBERROR_INVALID_KERNEL_FOUND, "Recovery flag mismatch");
/* Preamble verification */
ResetMocks();
preamble_verify_fail = 1;
TEST_EQ(VbVerifyMemoryBootImage(&cparams, &kparams, kernel_buffer,
- kernel_buffer_size),
+ kernel_buffer_size, 0),
VBERROR_INVALID_KERNEL_FOUND, "Preamble verification");
/* Data verification */
ResetMocks();
verify_data_fail = 1;
TEST_EQ(VbVerifyMemoryBootImage(&cparams, &kparams, kernel_buffer,
- kernel_buffer_size),
+ kernel_buffer_size, 0),
VBERROR_INVALID_KERNEL_FOUND, "Data verification");
+
+ /* Developer flag mismatch - integrity_only check. */
+ ResetMocks();
+ kbh.key_block_flags = KEY_BLOCK_FLAG_DEVELOPER_0 |
+ KEY_BLOCK_FLAG_RECOVERY_1;
+ copy_kbh();
+ shared->flags = VBSD_BOOT_DEV_SWITCH_ON;
+ TEST_EQ(VbVerifyMemoryBootImage(&cparams, &kparams, kernel_buffer,
+ kernel_buffer_size, 1),
+ VBERROR_SUCCESS,
+ "Developer flag mismatch - dev switch on(integrity only)");
+
+ /* Recovery flag mismatch - dev switch on with GBB override */
+ ResetMocks();
+ kbh.key_block_flags = KEY_BLOCK_FLAG_DEVELOPER_0 |
+ KEY_BLOCK_FLAG_RECOVERY_0;
+ copy_kbh();
+ shared->flags = VBSD_BOOT_DEV_SWITCH_ON;
+ TEST_EQ(VbVerifyMemoryBootImage(&cparams, &kparams, kernel_buffer,
+ kernel_buffer_size, 1),
+ VBERROR_SUCCESS,
+ "Recovery flag mismatch - dev switch on(integrity only)");
}
int main(void)