Skip to content

Commit 7048dd6

Browse files
committed
Add update-size boundary coverage tests
F/2575
1 parent b4b9ba3 commit 7048dd6

1 file changed

Lines changed: 36 additions & 0 deletions

File tree

tools/unit-tests/unit-update-flash.c

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -737,6 +737,40 @@ START_TEST (test_update_toolarge) {
737737
cleanup_flash();
738738
}
739739

740+
START_TEST (test_update_max_size_minus_one_accepted)
741+
{
742+
uint32_t boundary_ok = (uint32_t)(MAX_UPDATE_SIZE - 1U);
743+
744+
reset_mock_stats();
745+
prepare_flash();
746+
add_payload(PART_BOOT, 1, TEST_SIZE_SMALL);
747+
add_payload(PART_UPDATE, 2, boundary_ok);
748+
wolfBoot_update_trigger();
749+
wolfBoot_start();
750+
ck_assert(!wolfBoot_panicked);
751+
ck_assert(wolfBoot_staged_ok);
752+
ck_assert(wolfBoot_current_firmware_version() == 2);
753+
cleanup_flash();
754+
}
755+
END_TEST
756+
757+
START_TEST (test_update_max_size_rejected)
758+
{
759+
uint32_t boundary_reject = (uint32_t)MAX_UPDATE_SIZE;
760+
761+
reset_mock_stats();
762+
prepare_flash();
763+
add_payload(PART_BOOT, 1, TEST_SIZE_SMALL);
764+
add_payload(PART_UPDATE, 2, boundary_reject);
765+
wolfBoot_update_trigger();
766+
wolfBoot_start();
767+
ck_assert(!wolfBoot_panicked);
768+
ck_assert(wolfBoot_staged_ok);
769+
ck_assert(wolfBoot_current_firmware_version() == 1);
770+
cleanup_flash();
771+
}
772+
END_TEST
773+
740774
START_TEST (test_zero_size_update_rejected)
741775
{
742776
int ret;
@@ -1056,6 +1090,8 @@ Suite *wolfboot_suite(void)
10561090
tcase_add_test(invalid_update_type, test_invalid_update_type);
10571091
tcase_add_test(invalid_update_auth_type, test_invalid_update_auth_type);
10581092
tcase_add_test(update_toolarge, test_update_toolarge);
1093+
tcase_add_test(update_toolarge, test_update_max_size_minus_one_accepted);
1094+
tcase_add_test(update_toolarge, test_update_max_size_rejected);
10591095
tcase_add_test(zero_size_update, test_zero_size_update_rejected);
10601096
tcase_add_test(invalid_sha, test_invalid_sha);
10611097
tcase_add_test(emergency_rollback, test_emergency_rollback);

0 commit comments

Comments
 (0)