Skip to content

Commit 2d8457e

Browse files
Merge pull request #4782 from marcuschangarm/flash_hal_test
mbed-hal: Fixed flash test
2 parents 579bb3e + 299c7f2 commit 2d8457e

File tree

1 file changed

+13
-3
lines changed
  • TESTS/mbed_hal/flash/functional_tests

1 file changed

+13
-3
lines changed

TESTS/mbed_hal/flash/functional_tests/main.cpp

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,6 @@ void flash_mapping_alignment_test()
148148
TEST_ASSERT_EQUAL(0, sector_start % sector_size);
149149
// All address in a sector must return the same sector size
150150
TEST_ASSERT_EQUAL(sector_size, end_sector_size);
151-
152151
}
153152

154153
// Make sure unmapped flash is reported correctly
@@ -185,6 +184,7 @@ void flash_program_page_test()
185184

186185
uint32_t test_size = flash_get_page_size(&test_flash);
187186
uint8_t *data = new uint8_t[test_size];
187+
uint8_t *data_flashed = new uint8_t[test_size];
188188
for (uint32_t i = 0; i < test_size; i++) {
189189
data[i] = 0xCE;
190190
}
@@ -199,7 +199,9 @@ void flash_program_page_test()
199199

200200
ret = flash_program_page(&test_flash, address, data, test_size);
201201
TEST_ASSERT_EQUAL_INT32(0, ret);
202-
uint8_t *data_flashed = (uint8_t *)address;
202+
203+
ret = flash_read(&test_flash, address, data_flashed, test_size);
204+
TEST_ASSERT_EQUAL_INT32(0, ret);
203205
TEST_ASSERT_EQUAL_UINT8_ARRAY(data, data_flashed, test_size);
204206

205207
// sector size might not be same as page size
@@ -213,11 +215,15 @@ void flash_program_page_test()
213215
}
214216
ret = flash_program_page(&test_flash, address, data, test_size);
215217
TEST_ASSERT_EQUAL_INT32(0, ret);
218+
219+
ret = flash_read(&test_flash, address, data_flashed, test_size);
220+
TEST_ASSERT_EQUAL_INT32(0, ret);
216221
TEST_ASSERT_EQUAL_UINT8_ARRAY(data, data_flashed, test_size);
217222

218223
ret = flash_free(&test_flash);
219224
TEST_ASSERT_EQUAL_INT32(0, ret);
220225
delete[] data;
226+
delete[] data_flashed;
221227
}
222228

223229
// make sure programming works with an unaligned data buffer
@@ -230,6 +236,7 @@ void flash_buffer_alignment_test()
230236
const uint32_t page_size = flash_get_page_size(&test_flash);
231237
const uint32_t buf_size = page_size + 4;
232238
uint8_t *data = new uint8_t[buf_size];
239+
uint8_t *data_flashed = new uint8_t[buf_size];
233240
for (uint32_t i = 0; i < buf_size; i++) {
234241
data[i] = i & 0xFF;
235242
}
@@ -245,13 +252,16 @@ void flash_buffer_alignment_test()
245252
const uint32_t addr = test_addr + i * page_size;
246253
ret = flash_program_page(&test_flash, addr, data + i, page_size);
247254
TEST_ASSERT_EQUAL_INT32(0, ret);
248-
uint8_t *data_flashed = (uint8_t *)addr;
255+
256+
ret = flash_read(&test_flash, addr, data_flashed, page_size);
257+
TEST_ASSERT_EQUAL_INT32(0, ret);
249258
TEST_ASSERT_EQUAL_UINT8_ARRAY(data + i, data_flashed, page_size);
250259
}
251260

252261
ret = flash_free(&test_flash);
253262
TEST_ASSERT_EQUAL_INT32(0, ret);
254263
delete[] data;
264+
delete[] data_flashed;
255265
}
256266

257267
// check the execution speed at the start and end of the test to make sure

0 commit comments

Comments
 (0)