Skip to content

Commit 6ef9e02

Browse files
committed
test nvm sector flag invalid magic guard
F/2579
1 parent 194b363 commit 6ef9e02

1 file changed

Lines changed: 34 additions & 0 deletions

File tree

tools/unit-tests/unit-nvm.c

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,38 @@ START_TEST(test_partition_magic_write_stops_on_flash_write_error)
330330
}
331331
END_TEST
332332

333+
START_TEST(test_get_update_sector_flag_rejects_invalid_magic)
334+
{
335+
int ret;
336+
uint8_t st = 0xA5;
337+
uint32_t *magic;
338+
339+
ret = mmap_file("/tmp/wolfboot-unit-invalid-magic.bin", (void *)MOCK_ADDRESS,
340+
WOLFBOOT_PARTITION_SIZE, NULL);
341+
ck_assert(ret >= 0);
342+
#ifdef FLAGS_HOME
343+
ret = mmap_file("/tmp/wolfboot-unit-invalid-magic-int.bin",
344+
(void *)MOCK_ADDRESS_BOOT, WOLFBOOT_PARTITION_SIZE, NULL);
345+
ck_assert(ret >= 0);
346+
#endif
347+
ret = mmap_file("/tmp/wolfboot-unit-invalid-magic-swap.bin",
348+
(void *)MOCK_ADDRESS_SWAP, WOLFBOOT_SECTOR_SIZE, NULL);
349+
ck_assert(ret >= 0);
350+
351+
hal_flash_unlock();
352+
wolfBoot_erase_partition(PART_UPDATE);
353+
354+
magic = get_partition_magic(PART_UPDATE);
355+
*magic = 0xFFFFFFFF;
356+
357+
ret = wolfBoot_get_update_sector_flag(0, &st);
358+
ck_assert_int_eq(ret, -1);
359+
ck_assert_uint_eq(st, 0xA5);
360+
361+
hal_flash_lock();
362+
}
363+
END_TEST
364+
333365

334366
Suite *wolfboot_suite(void)
335367
{
@@ -341,6 +373,8 @@ Suite *wolfboot_suite(void)
341373
tcase_add_test(nvm_select_fresh_sector, test_nvm_select_fresh_sector);
342374
tcase_add_test(nvm_select_fresh_sector,
343375
test_partition_magic_write_stops_on_flash_write_error);
376+
tcase_add_test(nvm_select_fresh_sector,
377+
test_get_update_sector_flag_rejects_invalid_magic);
344378
suite_add_tcase(s, nvm_select_fresh_sector);
345379

346380
return s;

0 commit comments

Comments
 (0)