Add single-partition disk boot tests

F/3043
pull/762/head
Daniele Lacamera 2026-04-29 11:32:24 +02:00
parent 1e6dd16c6a
commit 74c0d29c2d
1 changed files with 34 additions and 0 deletions

View File

@ -264,6 +264,38 @@ START_TEST(test_update_disk_prefers_primary_partition_when_versions_equal)
}
END_TEST
START_TEST(test_update_disk_boots_from_A_when_B_is_blank)
{
reset_mocks();
build_image(part_a_image, 7, 0xA1);
memset(part_b_image, 0, sizeof(part_b_image));
wolfBoot_start();
ck_assert_int_eq(wolfBoot_panicked, 0);
ck_assert_int_eq(mock_do_boot_called, 1);
ck_assert_ptr_eq(mock_boot_address, (const uint32_t *)WOLFBOOT_LOAD_ADDRESS);
ck_assert_int_eq(memcmp(load_buffer, part_a_image + IMAGE_HEADER_SIZE,
TEST_PAYLOAD_SIZE), 0);
}
END_TEST
START_TEST(test_update_disk_boots_from_B_when_A_is_blank)
{
reset_mocks();
memset(part_a_image, 0, sizeof(part_a_image));
build_image(part_b_image, 7, 0xB2);
wolfBoot_start();
ck_assert_int_eq(wolfBoot_panicked, 0);
ck_assert_int_eq(mock_do_boot_called, 1);
ck_assert_ptr_eq(mock_boot_address, (const uint32_t *)WOLFBOOT_LOAD_ADDRESS);
ck_assert_int_eq(memcmp(load_buffer, part_b_image + IMAGE_HEADER_SIZE,
TEST_PAYLOAD_SIZE), 0);
}
END_TEST
START_TEST(test_get_decrypted_blob_version_rejects_truncated_version_tlv)
{
uint8_t hdr[IMAGE_HEADER_SIZE + 2];
@ -315,6 +347,8 @@ Suite *wolfboot_suite(void)
tcase_add_test(tc, test_update_disk_zeroizes_key_material_on_panic);
tcase_add_test(tc, test_update_disk_zeroizes_key_material_before_boot);
tcase_add_test(tc, test_update_disk_prefers_primary_partition_when_versions_equal);
tcase_add_test(tc, test_update_disk_boots_from_A_when_B_is_blank);
tcase_add_test(tc, test_update_disk_boots_from_B_when_A_is_blank);
tcase_add_test(tc, test_get_decrypted_blob_version_rejects_truncated_version_tlv);
tcase_add_test(tc, test_update_disk_rejects_rollback_after_higher_image_failure);
suite_add_tcase(s, tc);