mirror of https://github.com/ARMmbed/mbed-os.git
Extend storage tests with de-init test case
parent
829a3cded3
commit
94bb831753
|
@ -690,6 +690,40 @@ void test_deinit_bd()
|
||||||
block_device = NULL;
|
block_device = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void test_write_deinit_init()
|
||||||
|
{
|
||||||
|
TEST_SKIP_UNLESS_MESSAGE(block_device != NULL, "no block device found.");
|
||||||
|
// Determine start_address & stop_address
|
||||||
|
bd_addr_t addr = sectors_addr[rand() % num_of_sectors];
|
||||||
|
bd_size_t erase_size = block_device->get_erase_size(addr);
|
||||||
|
bd_size_t prog_size = block_device->get_program_size();
|
||||||
|
uint8_t *prog = (uint8_t *) malloc(prog_size);
|
||||||
|
TEST_ASSERT_NOT_EQUAL(prog, 0);
|
||||||
|
uint8_t *buf = (uint8_t *) malloc(prog_size);
|
||||||
|
TEST_ASSERT_NOT_EQUAL(buf, 0);
|
||||||
|
|
||||||
|
for (int i = 0; i < 3; i++) {
|
||||||
|
// Generate test pattern
|
||||||
|
for (int j = 0; j < prog_size; j++) {
|
||||||
|
prog[j] = (uint8_t)'0' + i + j;
|
||||||
|
}
|
||||||
|
|
||||||
|
int err;
|
||||||
|
err = block_device->erase(addr, erase_size);
|
||||||
|
TEST_ASSERT_EQUAL(err, 0);
|
||||||
|
err = block_device->program(prog, addr, prog_size);
|
||||||
|
TEST_ASSERT_EQUAL(err, 0);
|
||||||
|
err = block_device->deinit();
|
||||||
|
TEST_ASSERT_EQUAL(0, err);
|
||||||
|
err = block_device->init();
|
||||||
|
TEST_ASSERT_EQUAL(0, err);
|
||||||
|
err = block_device->read(buf, addr, prog_size);
|
||||||
|
TEST_ASSERT_EQUAL(0, memcmp(prog, buf, prog_size));
|
||||||
|
}
|
||||||
|
free(prog);
|
||||||
|
free(buf);
|
||||||
|
}
|
||||||
|
|
||||||
void test_get_type_functionality()
|
void test_get_type_functionality()
|
||||||
{
|
{
|
||||||
utest_printf("\nTest get blockdevice type..\n");
|
utest_printf("\nTest get blockdevice type..\n");
|
||||||
|
@ -727,6 +761,7 @@ typedef struct {
|
||||||
|
|
||||||
template_case_t template_cases[] = {
|
template_case_t template_cases[] = {
|
||||||
{"Testing Init block device", test_init_bd, greentea_failure_handler},
|
{"Testing Init block device", test_init_bd, greentea_failure_handler},
|
||||||
|
{"Testing write -> deinit -> init -> read", test_write_deinit_init, greentea_failure_handler},
|
||||||
{"Testing read write random blocks", test_random_program_read_erase, greentea_failure_handler},
|
{"Testing read write random blocks", test_random_program_read_erase, greentea_failure_handler},
|
||||||
#if defined(MBED_CONF_RTOS_PRESENT)
|
#if defined(MBED_CONF_RTOS_PRESENT)
|
||||||
{"Testing multi threads erase program read", test_multi_threads, greentea_failure_handler},
|
{"Testing multi threads erase program read", test_multi_threads, greentea_failure_handler},
|
||||||
|
|
Loading…
Reference in New Issue