@@ -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+
740774START_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