summaryrefslogtreecommitdiff
path: root/tests/vboot_api_kernel4_tests.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/vboot_api_kernel4_tests.c')
-rw-r--r--tests/vboot_api_kernel4_tests.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/tests/vboot_api_kernel4_tests.c b/tests/vboot_api_kernel4_tests.c
index 59650701..e00c928a 100644
--- a/tests/vboot_api_kernel4_tests.c
+++ b/tests/vboot_api_kernel4_tests.c
@@ -53,6 +53,7 @@ static void ResetMocks(void)
memset(&vnc, 0, sizeof(vnc));
VbNvSetup(&vnc);
+ VbNvSet(&vnc, VBNV_KERNEL_MAX_ROLLFORWARD, 0xffffffff);
VbNvTeardown(&vnc); /* So CRC gets generated */
memset(&shared_data, 0, sizeof(shared_data));
@@ -88,7 +89,6 @@ uint32_t RollbackKernelRead(uint32_t *version)
uint32_t RollbackKernelWrite(uint32_t version)
{
- TEST_EQ(version, new_version, "RollbackKernelWrite new version");
rkr_version = version;
return rkw_retval;
}
@@ -150,6 +150,7 @@ static void VbSlkTest(void)
{
ResetMocks();
test_slk(0, 0, "Normal");
+ TEST_EQ(rkr_version, 0x10002, " version");
/*
* If shared->flags doesn't ask for software sync, we won't notice
@@ -183,6 +184,20 @@ static void VbSlkTest(void)
TEST_EQ(rkr_version, 0x10002, " version");
ResetMocks();
+ VbNvSet(&vnc, VBNV_KERNEL_MAX_ROLLFORWARD, 0x30005);
+ VbNvTeardown(&vnc);
+ new_version = 0x40006;
+ test_slk(0, 0, "Limit max roll forward");
+ TEST_EQ(rkr_version, 0x30005, " version");
+
+ ResetMocks();
+ VbNvSet(&vnc, VBNV_KERNEL_MAX_ROLLFORWARD, 0x10001);
+ VbNvTeardown(&vnc);
+ new_version = 0x40006;
+ test_slk(0, 0, "Max roll forward can't rollback");
+ TEST_EQ(rkr_version, 0x10002, " version");
+
+ ResetMocks();
vbboot_retval = VBERROR_INVALID_KERNEL_FOUND;
VbNvSet(&vnc, VBNV_RECOVERY_REQUEST, 123);
VbNvTeardown(&vnc);