tests/periph_eeprom: cleanup + add auto tests for clear and set

This commit is contained in:
Alexandre Abadie 2018-12-04 10:28:47 +01:00
parent c97bedcd8b
commit 3e8c113c59

View File

@ -150,7 +150,7 @@ static int cmd_set(int argc, char **argv)
uint32_t count = atoi(argv[3]); uint32_t count = atoi(argv[3]);
if (strlen(argv[2]) != 1) { if (strlen(argv[2]) != 1) {
puts("Failed: char must a single digit"); puts("Failed: char must be a single digit");
return 1; return 1;
} }
@ -216,24 +216,25 @@ static int cmd_test(int argc, char **argv)
return 1; return 1;
} }
const char *test = "test"; const char *expected = "test";
/* test read/write function */ /* test read/write function */
/* read/write from beginning of EEPROM */ /* read/write from beginning of EEPROM */
size_t ret = eeprom_write(0, (uint8_t *)test, 4); size_t ret = eeprom_write(0, (uint8_t *)expected, 4);
assert(ret == 4); assert(ret == 4);
char *expected[4]; char *result[4];
ret = eeprom_read(0, (uint8_t *)expected, 4); ret = eeprom_read(0, (uint8_t *)result, 4);
assert(strncmp((const char *)expected, (const char *)test, 4) == 0); assert(strncmp((const char *)result, (const char *)expected, 4) == 0);
assert(ret == 4); assert(ret == 4);
/* read/write at end of EEPROM */ /* read/write at end of EEPROM */
ret = eeprom_write(EEPROM_SIZE - 4, (uint8_t *)test, 4); ret = eeprom_write(EEPROM_SIZE - 4, (uint8_t *)expected, 4);
assert(ret == 4); assert(ret == 4);
ret = eeprom_read(EEPROM_SIZE - 4, (uint8_t *)expected, 4); memset(result, 0, 4);
assert(strncmp((const char *)expected, test, 4) == 0); ret = eeprom_read(EEPROM_SIZE - 4, (uint8_t *)result, 4);
assert(strncmp((const char *)result, expected, 4) == 0);
assert(ret == 4); assert(ret == 4);
/* read/write single byte */ /* read/write single byte */
@ -244,6 +245,30 @@ static int cmd_test(int argc, char **argv)
eeprom_write_byte(EEPROM_SIZE / 2, 'A'); eeprom_write_byte(EEPROM_SIZE / 2, 'A');
assert(eeprom_read_byte(EEPROM_SIZE / 2) == 'A'); assert(eeprom_read_byte(EEPROM_SIZE / 2) == 'A');
/* clear some bytes */
eeprom_clear(0, 4);
memset(result, 0, 4);
ret = eeprom_read(0, (uint8_t *)result, 4);
assert(strncmp((const char *)result, "", 4) == 0);
assert(ret == 4);
eeprom_clear(EEPROM_SIZE - 4, 4);
ret = eeprom_read(EEPROM_SIZE - 4, (uint8_t *)result, 4);
assert(strncmp((const char *)result, "", 4) == 0);
assert(ret == 4);
/* set some bytes */
eeprom_set(0, 'A', 4);
ret = eeprom_read(0, (uint8_t *)result, 4);
assert(strncmp((const char *)result, "AAAA", 4) == 0);
assert(ret == 4);
memset(result, 0, 4);
eeprom_set(EEPROM_SIZE - 4, 'A', 4);
ret = eeprom_read(EEPROM_SIZE - 4, (uint8_t *)result, 4);
assert(strncmp((const char *)result, "AAAA", 4) == 0);
assert(ret == 4);
puts("SUCCESS"); puts("SUCCESS");
return 0; return 0;
} }