From 4b7c37cca0134056342f918a55b335a160f44299 Mon Sep 17 00:00:00 2001 From: Federico Pellegrin Date: Wed, 16 Jan 2019 05:29:23 +0100 Subject: [PATCH] tests/periph_flashpage: improve flashpage tests -) verify correctness of data written by raw write test -) write to really last flash page and not last - 1 -) use flashpage_addr instead of manual calculation --- tests/periph_flashpage/main.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tests/periph_flashpage/main.c b/tests/periph_flashpage/main.c index 84f995d3fa..b226969ed0 100644 --- a/tests/periph_flashpage/main.c +++ b/tests/periph_flashpage/main.c @@ -310,7 +310,7 @@ static int cmd_test_last(int argc, char **argv) } } - if (flashpage_write_and_verify((int)FLASHPAGE_NUMOF - 2, page_mem) != FLASHPAGE_OK) { + if (flashpage_write_and_verify((int)FLASHPAGE_NUMOF - 1, page_mem) != FLASHPAGE_OK) { puts("error verifying the content of last page"); return 1; } @@ -336,9 +336,15 @@ static int cmd_test_last_raw(int argc, char **argv) memcpy(raw_buf, "test12344321tset", 16); /* erase the page first */ - flashpage_write(((int)FLASHPAGE_NUMOF - 2), NULL); + flashpage_write(((int)FLASHPAGE_NUMOF - 1), NULL); - flashpage_write_raw((void*) ((int)CPU_FLASH_BASE + (int)FLASHPAGE_SIZE * ((int)FLASHPAGE_NUMOF - 2)), raw_buf, strlen(raw_buf)); + flashpage_write_raw(flashpage_addr((int)FLASHPAGE_NUMOF - 1), raw_buf, strlen(raw_buf)); + + /* verify that previous write_raw effectively wrote the desired data */ + if (memcmp(flashpage_addr((int)FLASHPAGE_NUMOF - 1), raw_buf, strlen(raw_buf)) != 0) { + puts("error verifying the content of last page"); + return 1; + } puts("wrote raw short buffer to last flash page"); return 0;