diff options
Diffstat (limited to 'tests/vb2_kernel2_tests.c')
-rw-r--r-- | tests/vb2_kernel2_tests.c | 146 |
1 files changed, 0 insertions, 146 deletions
diff --git a/tests/vb2_kernel2_tests.c b/tests/vb2_kernel2_tests.c deleted file mode 100644 index 04defe50..00000000 --- a/tests/vb2_kernel2_tests.c +++ /dev/null @@ -1,146 +0,0 @@ -/* Copyright 2022 The ChromiumOS Authors. - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - * - * Tests for vb2api_normal_boot. - */ - -#include "2api.h" -#include "2common.h" -#include "2misc.h" -#include "2nvstorage.h" -#include "2secdata.h" -#include "2sysincludes.h" -#include "common/boot_mode.h" -#include "common/tests.h" -#include "host_common.h" -#include "load_kernel_fw.h" -#include "tlcl.h" -#include "tss_constants.h" -#include "vboot_struct.h" - -/* Common context for tests */ -static uint8_t workbuf[VB2_KERNEL_WORKBUF_RECOMMENDED_SIZE] - __attribute__((aligned(VB2_WORKBUF_ALIGN))); -static struct vb2_context *ctx; -static struct vb2_shared_data *sd; -static uint32_t kernel_version; -static uint32_t new_version; -static VbSelectAndLoadKernelParams kparams; - -/* Mocked function data */ -static struct vb2_gbb_header mock_gbb; -static int mock_vbtlk_expect_fixed; -static int mock_vbtlk_expect_removable; -static vb2_error_t mock_vbtlk_retval; - -static void reset_common_data(void) -{ - memset(&kparams, 0, sizeof(kparams)); - - memset(&mock_gbb, 0, sizeof(mock_gbb)); - mock_gbb.major_version = VB2_GBB_MAJOR_VER; - mock_gbb.minor_version = VB2_GBB_MINOR_VER; - mock_gbb.flags = 0; - - mock_vbtlk_expect_fixed = 1; - mock_vbtlk_expect_removable = 0; - mock_vbtlk_retval = VB2_SUCCESS; - - TEST_SUCC(vb2api_init(workbuf, sizeof(workbuf), &ctx), - "vb2api_init failed"); - - SET_BOOT_MODE(ctx, VB2_BOOT_MODE_NORMAL); - - sd = vb2_get_sd(ctx); - - vb2_nv_init(ctx); - vb2_nv_set(ctx, VB2_NV_KERNEL_MAX_ROLLFORWARD, 0xffffffff); - - kernel_version = new_version = 0x10002; - - sd->kernel_version_secdata = kernel_version; - sd->kernel_version = kernel_version; -} - -/* Mock functions */ - -struct vb2_gbb_header *vb2_get_gbb(struct vb2_context *c) -{ - return &mock_gbb; -} - -void vb2_secdata_kernel_set(struct vb2_context *c, - enum vb2_secdata_kernel_param param, - uint32_t value) -{ - kernel_version = value; -} - -vb2_error_t VbTryLoadKernel(struct vb2_context *c, uint32_t disk_flags, - VbSelectAndLoadKernelParams *kpa) -{ - /* - * TODO: Currently we don't have a good way of testing for an ordered - * sequence of VB_DISK_FLAG_FIXED and then VB_DISK_FLAG_REMOVABLE. If - * both are set, then just assume success. - */ - if (mock_vbtlk_expect_fixed && mock_vbtlk_expect_removable) - return mock_vbtlk_retval; - - TEST_EQ(!!mock_vbtlk_expect_fixed, - !!(disk_flags & VB_DISK_FLAG_FIXED), - " unexpected fixed disk call"); - TEST_EQ(!!mock_vbtlk_expect_removable, - !!(disk_flags & VB_DISK_FLAG_REMOVABLE), - " unexpected removable disk call"); - - sd->kernel_version = new_version; - - return mock_vbtlk_retval; -} - -/* Tests */ - -static void normal_boot_tests(void) -{ - reset_common_data(); - TEST_SUCC(vb2api_normal_boot(ctx, &kparams), - "vb2api_normal_boot() returns VB2_SUCCESS"); - - reset_common_data(); - mock_vbtlk_retval = VB2_ERROR_MOCK; - TEST_EQ(vb2api_normal_boot(ctx, &kparams), VB2_ERROR_MOCK, - "vb2api_normal_boot() returns VB2_ERROR_MOCK"); - - reset_common_data(); - new_version = 0x20003; - TEST_SUCC(vb2api_normal_boot(ctx, &kparams), "Roll forward"); - TEST_EQ(kernel_version, 0x20003, " version"); - - reset_common_data(); - vb2_nv_set(ctx, VB2_NV_FW_RESULT, VB2_FW_RESULT_TRYING); - new_version = 0x20003; - TEST_SUCC(vb2api_normal_boot(ctx, &kparams), - "Don't roll forward kernel when trying new FW"); - TEST_EQ(kernel_version, 0x10002, " version"); - - reset_common_data(); - vb2_nv_set(ctx, VB2_NV_KERNEL_MAX_ROLLFORWARD, 0x30005); - new_version = 0x40006; - TEST_SUCC(vb2api_normal_boot(ctx, &kparams), "Limit max roll forward"); - TEST_EQ(kernel_version, 0x30005, " version"); - - reset_common_data(); - vb2_nv_set(ctx, VB2_NV_KERNEL_MAX_ROLLFORWARD, 0x10001); - new_version = 0x40006; - TEST_SUCC(vb2api_normal_boot(ctx, &kparams), - "Max roll forward can't rollback"); - TEST_EQ(kernel_version, 0x10002, " version"); -} - -int main(void) -{ - normal_boot_tests(); - return gTestSuccess ? 0 : 255; -} |