mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
tests/periph_flashpage: add automated test for flash peripheral
This commit is contained in:
parent
99e75948ef
commit
2edfcdfcbb
@ -290,6 +290,35 @@ static int cmd_test(int argc, char **argv)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Does a write and verify test on last page available
|
||||||
|
*
|
||||||
|
* @note Since every hardware can have different flash layouts for
|
||||||
|
* automated testing we always write to the last page available
|
||||||
|
* so we are independent of the size or layout
|
||||||
|
*/
|
||||||
|
static int cmd_test_last(int argc, char **argv)
|
||||||
|
{
|
||||||
|
(void) argc;
|
||||||
|
(void) argv;
|
||||||
|
char fill = 'a';
|
||||||
|
|
||||||
|
for (unsigned i = 0; i < sizeof(page_mem); i++) {
|
||||||
|
page_mem[i] = (uint8_t)fill++;
|
||||||
|
if (fill > 'z') {
|
||||||
|
fill = 'a';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (flashpage_write_and_verify((int)FLASHPAGE_NUMOF - 2, page_mem) != FLASHPAGE_OK) {
|
||||||
|
puts("error verifying the content of last page");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
puts("wrote local page buffer to last flash page");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static const shell_command_t shell_commands[] = {
|
static const shell_command_t shell_commands[] = {
|
||||||
{ "info", "Show information about pages", cmd_info },
|
{ "info", "Show information about pages", cmd_info },
|
||||||
{ "dump", "Dump the selected page to STDOUT", cmd_dump },
|
{ "dump", "Dump the selected page to STDOUT", cmd_dump },
|
||||||
@ -302,6 +331,7 @@ static const shell_command_t shell_commands[] = {
|
|||||||
{ "erase", "Erase the given page buffer", cmd_erase },
|
{ "erase", "Erase the given page buffer", cmd_erase },
|
||||||
{ "edit", "Write bytes to the local page buffer", cmd_edit },
|
{ "edit", "Write bytes to the local page buffer", cmd_edit },
|
||||||
{ "test", "Write and verify test pattern", cmd_test },
|
{ "test", "Write and verify test pattern", cmd_test },
|
||||||
|
{ "test_last", "Write and verify test pattern on last page available", cmd_test_last },
|
||||||
{ NULL, NULL, NULL }
|
{ NULL, NULL, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
20
tests/periph_flashpage/tests/01-run.py
Executable file
20
tests/periph_flashpage/tests/01-run.py
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
# Copyright (C) 2018 Federico Pellegrin <fede@evolware.org>
|
||||||
|
#
|
||||||
|
# This file is subject to the terms and conditions of the GNU Lesser
|
||||||
|
# General Public License v2.1. See the file LICENSE in the top level
|
||||||
|
# directory for more details.
|
||||||
|
|
||||||
|
import sys
|
||||||
|
from testrunner import run
|
||||||
|
|
||||||
|
|
||||||
|
def testfunc(child):
|
||||||
|
# writes and verifies the last page of the flash
|
||||||
|
child.sendline("test_last")
|
||||||
|
child.expect_exact('wrote local page buffer to last flash page')
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
sys.exit(run(testfunc))
|
Loading…
Reference in New Issue
Block a user