drivers: flash: flash_simulator: Erase flash first

With native_posix, a flash.bin file is created when running the tests.
If the tests are re-run, they fail since the flash is no-longer erased.

Before running the tests, erase the flash so that the 'read' test can
work regardless of the previous state.

Fixes: 25171
Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass 2020-05-13 12:16:54 -06:00 committed by Anas Nashif
commit b15bec5a2a

View file

@ -71,17 +71,32 @@ static void test_check_pattern32(off_t start, uint32_t (*pattern_gen)(void),
}
}
static void test_int(void)
/* Get access to the device and erase it ready for testing*/
static void test_init(void)
{
int rc;
off_t i;
flash_dev =
device_get_binding(DT_CHOSEN_ZEPHYR_FLASH_CONTROLLER_LABEL);
flash_dev = device_get_binding(DT_CHOSEN_ZEPHYR_FLASH_CONTROLLER_LABEL);
zassert_true(flash_dev != NULL,
"Simulated flash driver was not found!");
rc = flash_write_protection_set(flash_dev, false);
zassert_equal(0, rc, NULL);
rc = flash_erase(flash_dev, FLASH_SIMULATOR_BASE_OFFSET,
FLASH_SIMULATOR_FLASH_SIZE);
zassert_equal(0, rc, "flash_erase should succeed");
rc = flash_write_protection_set(flash_dev, false);
zassert_equal(0, rc, NULL);
}
static void test_read(void)
{
off_t i;
int rc;
rc = flash_read(flash_dev, FLASH_SIMULATOR_BASE_OFFSET,
test_read_buf, sizeof(test_read_buf));
zassert_equal(0, rc, "flash_read should succeed");
@ -294,13 +309,14 @@ static void test_get_erase_value(void)
void test_main(void)
{
ztest_test_suite(flash_sim_api,
ztest_unit_test(test_int),
ztest_unit_test(test_get_erase_value),
ztest_unit_test(test_init),
ztest_unit_test(test_read),
ztest_unit_test(test_write_read),
ztest_unit_test(test_erase),
ztest_unit_test(test_access),
ztest_unit_test(test_out_of_bounds),
ztest_unit_test(test_align),
ztest_unit_test(test_get_erase_value),
ztest_unit_test(test_double_write));
ztest_run_test_suite(flash_sim_api);