summaryrefslogtreecommitdiff
path: root/tests/vboot_api_kernel_tests.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/vboot_api_kernel_tests.c')
-rw-r--r--tests/vboot_api_kernel_tests.c644
1 files changed, 0 insertions, 644 deletions
diff --git a/tests/vboot_api_kernel_tests.c b/tests/vboot_api_kernel_tests.c
deleted file mode 100644
index 5c1d0182..00000000
--- a/tests/vboot_api_kernel_tests.c
+++ /dev/null
@@ -1,644 +0,0 @@
-/* Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- *
- * Tests for VbTryLoadKernel()
- */
-
-#include "2common.h"
-#include "2misc.h"
-#include "2nvstorage.h"
-#include "2sysincludes.h"
-#include "common/tests.h"
-#include "load_kernel_fw.h"
-#include "vboot_api.h"
-
-#define MAX_TEST_DISKS 10
-#define DEFAULT_COUNT -1
-
-typedef struct {
- uint64_t bytes_per_lba;
- uint64_t lba_count;
- uint32_t flags;
- const char *diskname;
-} disk_desc_t;
-
-typedef struct {
- const char *name;
-
- /* inputs for test case */
- uint32_t ctx_flags;
- uint32_t want_flags;
- vb2_error_t diskgetinfo_return_val;
- disk_desc_t disks_to_provide[MAX_TEST_DISKS];
- int disk_count_to_return;
- vb2_error_t loadkernel_return_val[MAX_TEST_DISKS];
- uint8_t external_expected[MAX_TEST_DISKS];
-
- /* outputs from test */
- uint32_t expected_recovery_request_val;
- const char *expected_to_find_disk;
- const char *expected_to_load_disk;
- uint32_t expected_return_val;
-
-} test_case_t;
-
-/****************************************************************************/
-/* Test cases */
-
-static const char pickme[] = "correct choice";
-#define DONT_CARE ((const char *)42)
-
-test_case_t normal_tests[] = {
- {
- .name = "first drive (removable)",
- .ctx_flags = 0,
- .want_flags = VB_DISK_FLAG_REMOVABLE | VB_DISK_FLAG_FIXED,
- .disks_to_provide = {
- {4096, 100, VB_DISK_FLAG_REMOVABLE, pickme},
- {4096, 100, VB_DISK_FLAG_FIXED, "holygrail"},
- },
- .disk_count_to_return = DEFAULT_COUNT,
- .diskgetinfo_return_val = VB2_SUCCESS,
- .loadkernel_return_val = {0},
- .external_expected = {0},
-
- .expected_recovery_request_val = VB2_RECOVERY_NOT_REQUESTED,
- .expected_to_find_disk = pickme,
- .expected_to_load_disk = pickme,
- .expected_return_val = VB2_SUCCESS
- },
- {
- .name = "first drive (fixed)",
- .ctx_flags = 0,
- .want_flags = VB_DISK_FLAG_REMOVABLE | VB_DISK_FLAG_FIXED,
- .disks_to_provide = {
- {4096, 100, VB_DISK_FLAG_FIXED, pickme},
- {4096, 100, VB_DISK_FLAG_REMOVABLE, "holygrail"},
- },
- .disk_count_to_return = DEFAULT_COUNT,
- .diskgetinfo_return_val = VB2_SUCCESS,
- .loadkernel_return_val = {0},
- .external_expected = {0},
-
- .expected_recovery_request_val = VB2_RECOVERY_NOT_REQUESTED,
- .expected_to_find_disk = pickme,
- .expected_to_load_disk = pickme,
- .expected_return_val = VB2_SUCCESS
- },
- {
- .name = "first removable drive",
- .ctx_flags = 0,
- .want_flags = VB_DISK_FLAG_REMOVABLE,
- .disks_to_provide = {
- /* too small */
- {512, 10, VB_DISK_FLAG_REMOVABLE, 0},
- /* wrong LBA */
- {511, 100, VB_DISK_FLAG_REMOVABLE, 0},
- /* not a power of 2 */
- {2047, 100, VB_DISK_FLAG_REMOVABLE, 0},
- /* wrong type */
- {512, 100, VB_DISK_FLAG_FIXED, 0},
- /* wrong flags */
- {512, 100, 0, 0},
- /* still wrong flags */
- {512, 100, -1, 0},
- {4096, 100, VB_DISK_FLAG_REMOVABLE, pickme},
- /* already got one */
- {512, 100, VB_DISK_FLAG_REMOVABLE, "holygrail"},
- },
- .disk_count_to_return = DEFAULT_COUNT,
- .diskgetinfo_return_val = VB2_SUCCESS,
- .loadkernel_return_val = {0},
- .external_expected = {0},
-
- .expected_recovery_request_val = VB2_RECOVERY_NOT_REQUESTED,
- .expected_to_find_disk = pickme,
- .expected_to_load_disk = pickme,
- .expected_return_val = VB2_SUCCESS
- },
- {
- .name = "first removable drive (skip external GPT)",
- .ctx_flags = 0,
- .want_flags = VB_DISK_FLAG_REMOVABLE,
- .disks_to_provide = {
- /* too small */
- {512, 10, VB_DISK_FLAG_REMOVABLE, 0},
- /* wrong LBA */
- {511, 100, VB_DISK_FLAG_REMOVABLE, 0},
- /* not a power of 2 */
- {2047, 100, VB_DISK_FLAG_REMOVABLE, 0},
- /* wrong type */
- {512, 100, VB_DISK_FLAG_FIXED, 0},
- /* wrong flags */
- {512, 100, 0, 0},
- /* still wrong flags */
- {512, 100, -1, 0},
- {512, 100,
- VB_DISK_FLAG_REMOVABLE | VB_DISK_FLAG_EXTERNAL_GPT,
- pickme},
- /* already got one */
- {512, 100, VB_DISK_FLAG_REMOVABLE, "holygrail"},
- },
- .disk_count_to_return = DEFAULT_COUNT,
- .diskgetinfo_return_val = VB2_SUCCESS,
- .loadkernel_return_val = {0, 0},
- .external_expected = {1, 0},
-
- .expected_recovery_request_val = VB2_RECOVERY_NOT_REQUESTED,
- .expected_to_find_disk = pickme,
- .expected_to_load_disk = pickme,
- .expected_return_val = VB2_SUCCESS
- },
- {
- .name = "second removable drive",
- .ctx_flags = 0,
- .want_flags = VB_DISK_FLAG_REMOVABLE,
- .disks_to_provide = {
- /* wrong flags */
- {512, 100, 0, 0},
- {512, 100, VB_DISK_FLAG_REMOVABLE, "not yet"},
- {512, 100, VB_DISK_FLAG_REMOVABLE, pickme},
- },
- .disk_count_to_return = DEFAULT_COUNT,
- .diskgetinfo_return_val = VB2_SUCCESS,
- .loadkernel_return_val = {VB2_ERROR_LK_INVALID_KERNEL_FOUND, 0},
-
- .expected_recovery_request_val = VB2_RECOVERY_NOT_REQUESTED,
- .expected_to_find_disk = pickme,
- .expected_to_load_disk = pickme,
- .expected_return_val = VB2_SUCCESS
- },
- {
- .name = "first fixed drive",
- .ctx_flags = 0,
- .want_flags = VB_DISK_FLAG_FIXED,
- .disks_to_provide = {
- /* too small */
- {512, 10, VB_DISK_FLAG_FIXED, 0},
- /* wrong LBA */
- {511, 100, VB_DISK_FLAG_FIXED, 0},
- /* not a power of 2 */
- {2047, 100, VB_DISK_FLAG_REMOVABLE, 0},
- /* wrong type */
- {512, 100, VB_DISK_FLAG_REMOVABLE, 0},
- /* wrong flags */
- {512, 100, 0, 0},
- /* still wrong flags */
- {512, 100, -1, 0},
- /* flags */
- {512, 100, VB_DISK_FLAG_REMOVABLE|VB_DISK_FLAG_FIXED,
- 0},
- {512, 100, VB_DISK_FLAG_FIXED, pickme},
- /* already got one */
- {512, 100, VB_DISK_FLAG_FIXED, "holygrail"},
- },
- .disk_count_to_return = DEFAULT_COUNT,
- .diskgetinfo_return_val = VB2_SUCCESS,
- .loadkernel_return_val = {0},
-
- .expected_recovery_request_val = VB2_RECOVERY_NOT_REQUESTED,
- .expected_to_find_disk = pickme,
- .expected_to_load_disk = pickme,
- .expected_return_val = VB2_SUCCESS
- },
- {
- .name = "no drives at all",
- .ctx_flags = 0,
- .want_flags = VB_DISK_FLAG_FIXED,
- .disks_to_provide = {},
- .disk_count_to_return = DEFAULT_COUNT,
- .diskgetinfo_return_val = VB2_SUCCESS,
-
- .expected_recovery_request_val = VB2_RECOVERY_RW_NO_DISK,
- .expected_to_find_disk = 0,
- .expected_to_load_disk = 0,
- .expected_return_val = VB2_ERROR_LK_NO_DISK_FOUND
- },
- {
- .name = "VbExDiskGetInfo() error",
- .ctx_flags = 0,
- .want_flags = VB_DISK_FLAG_FIXED,
- .disks_to_provide = {
- {512, 10, VB_DISK_FLAG_REMOVABLE, 0},
- {512, 100, VB_DISK_FLAG_FIXED, 0},
- },
- .disk_count_to_return = DEFAULT_COUNT,
- .diskgetinfo_return_val = VB2_ERROR_UNKNOWN,
-
- .expected_recovery_request_val = VB2_RECOVERY_RW_NO_DISK,
- .expected_to_find_disk = 0,
- .expected_to_load_disk = 0,
- .expected_return_val = VB2_ERROR_LK_NO_DISK_FOUND,
- },
- {
- .name = "invalid kernel",
- .ctx_flags = 0,
- .want_flags = VB_DISK_FLAG_FIXED,
- .disks_to_provide = {
- /* too small */
- {512, 10, VB_DISK_FLAG_FIXED, 0},
- /* wrong LBA */
- {511, 100, VB_DISK_FLAG_FIXED, 0},
- /* not a power of 2 */
- {2047, 100, VB_DISK_FLAG_FIXED, 0},
- /* wrong type */
- {512, 100, VB_DISK_FLAG_REMOVABLE, 0},
- /* wrong flags */
- {512, 100, 0, 0},
- /* still wrong flags */
- {512, 100, -1, 0},
- /* doesn't load */
- {512, 100, VB_DISK_FLAG_FIXED, "corrupted kernel"},
- /* doesn't load */
- {512, 100, VB_DISK_FLAG_FIXED, "stateful partition"},
- },
- .disk_count_to_return = DEFAULT_COUNT,
- .diskgetinfo_return_val = VB2_SUCCESS,
- .loadkernel_return_val = {VB2_ERROR_LK_INVALID_KERNEL_FOUND,
- VB2_ERROR_LK_NO_KERNEL_FOUND},
-
- .expected_recovery_request_val = VB2_RECOVERY_RW_INVALID_OS,
- .expected_to_find_disk = DONT_CARE,
- .expected_to_load_disk = 0,
- .expected_return_val = VB2_ERROR_LK_INVALID_KERNEL_FOUND,
- },
- {
- .name = "invalid kernel, order flipped",
- .ctx_flags = 0,
- .want_flags = VB_DISK_FLAG_FIXED,
- .disks_to_provide = {
- {512, 1000, VB_DISK_FLAG_FIXED, "stateful partition"},
- {512, 1000, VB_DISK_FLAG_FIXED, "corrupted kernel"},
- },
- .disk_count_to_return = DEFAULT_COUNT,
- .diskgetinfo_return_val = VB2_SUCCESS,
- .loadkernel_return_val = {VB2_ERROR_LK_NO_KERNEL_FOUND,
- VB2_ERROR_LK_INVALID_KERNEL_FOUND},
-
- .expected_recovery_request_val = VB2_RECOVERY_RW_INVALID_OS,
- .expected_to_find_disk = DONT_CARE,
- .expected_to_load_disk = 0,
- .expected_return_val = VB2_ERROR_LK_INVALID_KERNEL_FOUND,
- },
- {
- .name = "no Chrome OS partitions",
- .ctx_flags = 0,
- .want_flags = VB_DISK_FLAG_FIXED,
- .disks_to_provide = {
- {512, 100, VB_DISK_FLAG_FIXED, "stateful partition"},
- {512, 1000, VB_DISK_FLAG_FIXED, "Chrubuntu"},
- },
- .disk_count_to_return = DEFAULT_COUNT,
- .diskgetinfo_return_val = VB2_SUCCESS,
- .loadkernel_return_val = {VB2_ERROR_LK_NO_KERNEL_FOUND,
- VB2_ERROR_LK_NO_KERNEL_FOUND},
-
- .expected_recovery_request_val = VB2_RECOVERY_RW_NO_KERNEL,
- .expected_to_find_disk = DONT_CARE,
- .expected_to_load_disk = 0,
- .expected_return_val = VB2_ERROR_LK_NO_KERNEL_FOUND,
- },
- {
- .name = "invalid kernel (removable)",
- .ctx_flags = 0,
- .want_flags = VB_DISK_FLAG_REMOVABLE,
- .disks_to_provide = {
- {512, 100, VB_DISK_FLAG_REMOVABLE, "corrupted"},
- {512, 100, VB_DISK_FLAG_REMOVABLE, "data"},
- },
- .disk_count_to_return = DEFAULT_COUNT,
- .diskgetinfo_return_val = VB2_SUCCESS,
- .loadkernel_return_val = {VB2_ERROR_LK_INVALID_KERNEL_FOUND,
- VB2_ERROR_LK_NO_KERNEL_FOUND},
-
- .expected_recovery_request_val = VB2_RECOVERY_RW_INVALID_OS,
- .expected_to_find_disk = DONT_CARE,
- .expected_to_load_disk = 0,
- .expected_return_val = VB2_ERROR_LK_INVALID_KERNEL_FOUND,
- },
- {
- .name = "invalid kernel (removable, rec mode)",
- .ctx_flags = VB2_CONTEXT_RECOVERY_MODE,
- .want_flags = VB_DISK_FLAG_REMOVABLE,
- .disks_to_provide = {
- {512, 100, VB_DISK_FLAG_REMOVABLE, "corrupted"},
- {512, 100, VB_DISK_FLAG_REMOVABLE, "data"},
- },
- .disk_count_to_return = DEFAULT_COUNT,
- .diskgetinfo_return_val = VB2_SUCCESS,
- .loadkernel_return_val = {VB2_ERROR_LK_INVALID_KERNEL_FOUND,
- VB2_ERROR_LK_NO_KERNEL_FOUND},
-
- .expected_recovery_request_val = VB2_RECOVERY_NOT_REQUESTED,
- .expected_to_find_disk = DONT_CARE,
- .expected_to_load_disk = 0,
- .expected_return_val = VB2_ERROR_LK_INVALID_KERNEL_FOUND,
- },
- {
- .name = "invalid kernel (removable, dev mode)",
- .ctx_flags = VB2_CONTEXT_DEVELOPER_MODE,
- .want_flags = VB_DISK_FLAG_REMOVABLE,
- .disks_to_provide = {
- {512, 100, VB_DISK_FLAG_REMOVABLE, "corrupted"},
- {512, 100, VB_DISK_FLAG_REMOVABLE, "data"},
- },
- .disk_count_to_return = DEFAULT_COUNT,
- .diskgetinfo_return_val = VB2_SUCCESS,
- .loadkernel_return_val = {VB2_ERROR_LK_INVALID_KERNEL_FOUND,
- VB2_ERROR_LK_NO_KERNEL_FOUND},
-
- .expected_recovery_request_val = VB2_RECOVERY_NOT_REQUESTED,
- .expected_to_find_disk = DONT_CARE,
- .expected_to_load_disk = 0,
- .expected_return_val = VB2_ERROR_LK_INVALID_KERNEL_FOUND,
- },
- {
- .name = "no kernel (removable)",
- .ctx_flags = 0,
- .want_flags = VB_DISK_FLAG_REMOVABLE,
- .disks_to_provide = {
- {512, 100, VB_DISK_FLAG_REMOVABLE, "data"},
- },
- .disk_count_to_return = DEFAULT_COUNT,
- .diskgetinfo_return_val = VB2_SUCCESS,
- .loadkernel_return_val = {VB2_ERROR_LK_NO_KERNEL_FOUND},
-
- .expected_recovery_request_val = VB2_RECOVERY_RW_NO_KERNEL,
- .expected_to_find_disk = DONT_CARE,
- .expected_to_load_disk = 0,
- .expected_return_val = VB2_ERROR_LK_NO_KERNEL_FOUND,
- },
- {
- .name = "no kernel (removable, rec mode)",
- .ctx_flags = VB2_CONTEXT_RECOVERY_MODE,
- .want_flags = VB_DISK_FLAG_REMOVABLE,
- .disks_to_provide = {
- {512, 100, VB_DISK_FLAG_REMOVABLE, "data"},
- },
- .disk_count_to_return = DEFAULT_COUNT,
- .diskgetinfo_return_val = VB2_SUCCESS,
- .loadkernel_return_val = {VB2_ERROR_LK_NO_KERNEL_FOUND},
-
- .expected_recovery_request_val = VB2_RECOVERY_NOT_REQUESTED,
- .expected_to_find_disk = DONT_CARE,
- .expected_to_load_disk = 0,
- .expected_return_val = VB2_ERROR_LK_NO_KERNEL_FOUND,
- },
-};
-
-test_case_t minios_tests[] = {
- {
- .name = "pick first fixed drive",
- .ctx_flags = 0,
- .disks_to_provide = {
- {4096, 100, VB_DISK_FLAG_REMOVABLE, 0},
- {4096, 100, VB_DISK_FLAG_FIXED, pickme},
- {4096, 100, VB_DISK_FLAG_FIXED, "holygrail"},
- },
- .disk_count_to_return = DEFAULT_COUNT,
- .diskgetinfo_return_val = VB2_SUCCESS,
- .loadkernel_return_val = {0},
- .external_expected = {0},
-
- .expected_recovery_request_val = VB2_RECOVERY_NOT_REQUESTED,
- .expected_to_find_disk = pickme,
- .expected_to_load_disk = pickme,
- .expected_return_val = VB2_SUCCESS
- },
- {
- .name = "skip failed fixed drive",
- .ctx_flags = 0,
- .disks_to_provide = {
- {4096, 100, VB_DISK_FLAG_FIXED, "holygrail"},
- {4096, 100, VB_DISK_FLAG_FIXED, pickme},
- },
- .disk_count_to_return = DEFAULT_COUNT,
- .diskgetinfo_return_val = VB2_SUCCESS,
- .loadkernel_return_val = {VB2_ERROR_LK_INVALID_KERNEL_FOUND, 0},
- .external_expected = {0},
-
- .expected_recovery_request_val = VB2_RECOVERY_NOT_REQUESTED,
- .expected_to_find_disk = pickme,
- .expected_to_load_disk = pickme,
- .expected_return_val = VB2_SUCCESS
- },
-};
-
-/****************************************************************************/
-
-/* Mock data */
-static VbDiskInfo mock_disks[MAX_TEST_DISKS];
-static test_case_t *t;
-static int load_kernel_calls;
-static int lk_normal_calls;
-static int lk_minios_calls;
-static uint32_t got_recovery_request_val;
-static const char *got_find_disk;
-static const char *got_load_disk;
-static uint32_t got_return_val;
-static uint32_t got_external_mismatch;
-static uint8_t workbuf[VB2_KERNEL_WORKBUF_RECOMMENDED_SIZE]
- __attribute__((aligned(VB2_WORKBUF_ALIGN)));
-static struct vb2_context *ctx;
-static struct VbSelectAndLoadKernelParams kparams;
-
-/**
- * Reset mock data (for use before each test)
- */
-static void ResetMocks(test_case_t *test_case)
-{
- TEST_SUCC(vb2api_init(workbuf, sizeof(workbuf), &ctx),
- "vb2api_init failed");
-
- memset(&kparams, 0, sizeof(kparams));
-
-
- memset(&mock_disks, 0, sizeof(mock_disks));
- load_kernel_calls = 0;
- lk_normal_calls = 0;
- lk_minios_calls = 0;
-
- got_recovery_request_val = VB2_RECOVERY_NOT_REQUESTED;
- got_find_disk = 0;
- got_load_disk = 0;
- got_return_val = 0xdeadbeef;
-
- t = test_case;
-}
-
-static int is_nonzero(const void *vptr, size_t count)
-{
- const char *p = (const char *)vptr;
- while (count--)
- if (*p++)
- return 1;
-
- return 0;
-}
-
-/****************************************************************************/
-/* Mocked verification functions */
-
-vb2_error_t VbExDiskGetInfo(VbDiskInfo **infos_ptr, uint32_t *count,
- uint32_t disk_flags)
-{
- int i;
- int num_disks = 0;
-
- VB2_DEBUG("My %s\n", __FUNCTION__);
-
- *infos_ptr = mock_disks;
-
- for(i = 0; i < MAX_TEST_DISKS; i++) {
- if (is_nonzero(&t->disks_to_provide[i],
- sizeof(t->disks_to_provide[i]))) {
- mock_disks[num_disks].bytes_per_lba =
- t->disks_to_provide[i].bytes_per_lba;
- mock_disks[num_disks].lba_count =
- mock_disks[num_disks].streaming_lba_count =
- t->disks_to_provide[i].lba_count;
- mock_disks[num_disks].flags =
- t->disks_to_provide[i].flags;
- mock_disks[num_disks].handle = (VbExDiskHandle_t)
- t->disks_to_provide[i].diskname;
- VB2_DEBUG(" mock_disk[%d] %" PRIu64 " %" PRIu64
- " %#x %s\n", i,
- mock_disks[num_disks].bytes_per_lba,
- mock_disks[num_disks].lba_count,
- mock_disks[num_disks].flags,
- (mock_disks[num_disks].handle
- ? (char *)mock_disks[num_disks].handle
- : "0"));
- num_disks++;
- } else {
- mock_disks[num_disks].handle =
- (VbExDiskHandle_t)"INVALID";
- }
- }
-
- if (t->disk_count_to_return >= 0)
- *count = t->disk_count_to_return;
- else
- *count = num_disks;
-
- VB2_DEBUG(" *count=%" PRIu32 "\n", *count);
- VB2_DEBUG(" return %#x\n", t->diskgetinfo_return_val);
-
- return t->diskgetinfo_return_val;
-}
-
-vb2_error_t VbExDiskFreeInfo(VbDiskInfo *infos,
- VbExDiskHandle_t preserve_handle)
-{
- got_load_disk = (const char *)preserve_handle;
- VB2_DEBUG("%s(): got_load_disk = %s\n", __FUNCTION__,
- got_load_disk ? got_load_disk : "0");
- return VB2_SUCCESS;
-}
-
-static vb2_error_t LoadKernelImpl(struct vb2_context *c,
- VbSelectAndLoadKernelParams *params,
- VbDiskInfo *disk_info)
-{
- got_find_disk = (const char *)params->disk_handle;
- VB2_DEBUG("%s(%d): got_find_disk = %s\n", __FUNCTION__,
- load_kernel_calls,
- got_find_disk ? got_find_disk : "0");
- if (t->external_expected[load_kernel_calls] !=
- !!(disk_info->flags & VB_DISK_FLAG_EXTERNAL_GPT))
- got_external_mismatch++;
- return t->loadkernel_return_val[load_kernel_calls++];
-}
-
-vb2_error_t LoadKernel(struct vb2_context *c,
- VbSelectAndLoadKernelParams *params,
- VbDiskInfo *disk_info)
-{
- lk_normal_calls++;
- return LoadKernelImpl(c, params, disk_info);
-}
-
-vb2_error_t LoadMiniOsKernel(struct vb2_context *c,
- VbSelectAndLoadKernelParams *params,
- VbDiskInfo *disk_info, uint32_t minios_flags)
-{
- lk_minios_calls++;
- return LoadKernelImpl(c, params, disk_info);
-}
-
-void vb2_nv_set(struct vb2_context *c,
- enum vb2_nv_param param,
- uint32_t value)
-{
- if (param != VB2_NV_RECOVERY_REQUEST)
- return;
- VB2_DEBUG("%s(): got_recovery_request_val = %d (%#x)\n", __FUNCTION__,
- value, value);
- got_recovery_request_val = value;
-}
-
-/****************************************************************************/
-
-static void VbTryLoadKernelTest(void)
-{
- int i;
- int num_tests = ARRAY_SIZE(normal_tests);
-
- for (i = 0; i < num_tests; i++) {
- printf("Test case: %s ...\n", normal_tests[i].name);
- ResetMocks(&normal_tests[i]);
- ctx->flags = t->ctx_flags;
- TEST_EQ(VbTryLoadKernel(ctx, t->want_flags, &kparams),
- t->expected_return_val, " return value");
- TEST_EQ(got_recovery_request_val,
- t->expected_recovery_request_val, " recovery_request");
- if (t->expected_to_find_disk != DONT_CARE) {
- TEST_PTR_EQ(got_find_disk, t->expected_to_find_disk,
- " find disk");
- TEST_PTR_EQ(got_load_disk, t->expected_to_load_disk,
- " load disk");
- }
- TEST_EQ(got_external_mismatch, 0, " external GPT errors");
- TEST_EQ(!!(ctx->flags & VB2_CONTEXT_DISABLE_TPM), 0,
- " ctx flag disable_tpm");
- }
- TEST_EQ(lk_normal_calls, load_kernel_calls, " LoadKernel called");
- TEST_EQ(lk_minios_calls, 0, " LoadMiniOsKernel not called");
-}
-
-static void VbTryLoadMiniOsKernelTest(void)
-{
- int i;
- int num_tests = ARRAY_SIZE(minios_tests);
-
- for (i = 0; i < num_tests; i++) {
- printf("Test case: %s ...\n", minios_tests[i].name);
- ResetMocks(&minios_tests[i]);
- ctx->flags = t->ctx_flags;
- TEST_EQ(VbTryLoadMiniOsKernel(ctx, 0, &kparams),
- t->expected_return_val, " return value");
- TEST_EQ(got_recovery_request_val,
- t->expected_recovery_request_val, " recovery_request");
- if (t->expected_to_find_disk != DONT_CARE) {
- TEST_PTR_EQ(got_find_disk, t->expected_to_find_disk,
- " find disk");
- TEST_PTR_EQ(got_load_disk, t->expected_to_load_disk,
- " load disk");
- }
- TEST_EQ(got_external_mismatch, 0, " external GPT errors");
- TEST_EQ(!!(ctx->flags & VB2_CONTEXT_DISABLE_TPM), 1,
- " ctx flag disable_tpm");
- }
- TEST_EQ(lk_normal_calls, 0, " LoadKernel not called");
- TEST_EQ(lk_minios_calls, load_kernel_calls,
- " LoadMiniOsKernel called");
-}
-
-int main(void)
-{
- VbTryLoadKernelTest();
- VbTryLoadMiniOsKernelTest();
-
- return gTestSuccess ? 0 : 255;
-}