Skip to content

Commit 5fd08b6

Browse files
committed
tests/drivers/flash_simulator: Add test scenario for flash_mmap
Add testing of flash_mmap implementation of Flash Simulator. Signed-off-by: Dominik Ermel <[email protected]>
1 parent a0219be commit 5fd08b6

File tree

1 file changed

+47
-0
lines changed
  • tests/drivers/flash_simulator/flash_sim_impl/src

1 file changed

+47
-0
lines changed

tests/drivers/flash_simulator/flash_sim_impl/src/main.c

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -498,6 +498,53 @@ ZTEST(flash_sim_api, test_flash_fill)
498498
}
499499
}
500500

501+
ZTEST(flash_sim_api, test_flash_mmap)
502+
{
503+
const uint8_t out[] = "Hello world!!!\n";
504+
uint8_t in[64];
505+
uint8_t *p;
506+
uint64_t size;
507+
int rc;
508+
#if defined(CONFIG_FLASH_SIMULATOR_EXPLICIT_ERASE)
509+
rc = flash_erase(flash_dev, FLASH_SIMULATOR_BASE_OFFSET,
510+
FLASH_SIMULATOR_FLASH_SIZE);
511+
zassert_equal(0, rc, "flash_erase should succeed");
512+
#else
513+
rc = flash_fill(flash_dev, FLASH_SIMULATOR_ERASE_VALUE,
514+
FLASH_SIMULATOR_BASE_OFFSET,
515+
FLASH_SIMULATOR_FLASH_SIZE);
516+
zassert_equal(0, rc, "flash_fill should succeed");
517+
#endif
518+
zassert_ok(flash_mmap(flash_dev, (void **)&p, &size, FLASH_MMAP_F_READ));
519+
zassert_ok(flash_write(flash_dev, FLASH_SIMULATOR_BASE_OFFSET, out,
520+
sizeof(out)));
521+
522+
zassert_ok(memcmp(p, out, sizeof(out)));
523+
524+
zassert_ok(flash_read(flash_dev, FLASH_SIMULATOR_BASE_OFFSET, in,
525+
sizeof(out)));
526+
zassert_ok(memcmp(out, in, sizeof(out)));
527+
528+
#if defined(CONFIG_FLASH_SIMULATOR_EXPLICIT_ERASE)
529+
rc = flash_erase(flash_dev, FLASH_SIMULATOR_BASE_OFFSET,
530+
FLASH_SIMULATOR_FLASH_SIZE);
531+
zassert_equal(0, rc, "flash_erase should succeed");
532+
#else
533+
rc = flash_fill(flash_dev, FLASH_SIMULATOR_ERASE_VALUE,
534+
FLASH_SIMULATOR_BASE_OFFSET,
535+
FLASH_SIMULATOR_FLASH_SIZE);
536+
zassert_equal(0, rc, "flash_fill should succeed");
537+
#endif
538+
zassert_ok(flash_mmap(flash_dev, (void **)&p, &size, FLASH_MMAP_F_WRITE));
539+
memset(in, 0, sizeof(in));
540+
/* Write via memcpy */
541+
memcpy(p, out, sizeof(out));
542+
zassert_ok(memcmp(p, out, sizeof(out)));
543+
zassert_ok(flash_read(flash_dev, FLASH_SIMULATOR_BASE_OFFSET, in,
544+
sizeof(out)));
545+
zassert_ok(memcmp(out, in, sizeof(out)));
546+
}
547+
501548
ZTEST(flash_sim_api, test_flash_flatten)
502549
{
503550
int rc;

0 commit comments

Comments
 (0)