diff options
author | Furquan Shaikh <furquan@google.com> | 2015-09-08 15:36:08 -0700 |
---|---|---|
committer | ChromeOS bot <3su6n15k.default@developer.gserviceaccount.com> | 2015-09-09 01:14:27 +0000 |
commit | e58098995fdb40d61f83a5916cf2140822f43eb2 (patch) | |
tree | 89f20dbb6ed09bd19ad5a3f9222874209af2b7db | |
parent | 03fb701fc07658c5d5ae8a293244502d17063077 (diff) | |
download | vboot-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.c | 47 |
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) |