diff options
author | Tristan Honscheid <honscheid@google.com> | 2023-02-06 14:55:24 -0700 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2023-02-15 19:01:07 +0000 |
commit | 8636762aff20e11da8a99b010550ea3952d5bbc0 (patch) | |
tree | eb5e9bdc57e905064945641dcd5b564cc2de58c7 | |
parent | bca2869e404b32d3e6b624084465c8c75f2d6891 (diff) | |
download | chrome-ec-8636762aff20e11da8a99b010550ea3952d5bbc0.tar.gz |
zephyr: test: Test 'flashread' console command
Test the operation, edge cases, and output formatting of the `flashread`
console command
BUG=None
BRANCH=None
TEST=./twister -s drivers/drivers.flash
Change-Id: Ic572b4a34ebbe0436142b1214449944175af29f3
Signed-off-by: Tristan Honscheid <honscheid@google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4224879
Reviewed-by: Tomasz Michalec <tmichalec@google.com>
-rw-r--r-- | common/flash.c | 4 | ||||
-rw-r--r-- | zephyr/test/drivers/flash/src/flash.c | 42 |
2 files changed, 44 insertions, 2 deletions
diff --git a/common/flash.c b/common/flash.c index c68f47a368..de2596ab27 100644 --- a/common/flash.c +++ b/common/flash.c @@ -1183,7 +1183,7 @@ static int command_flash_read(int argc, const char **argv) int offset = -1; int size = 256; int rv; - char *data; + uint8_t *data; int i; rv = parse_offset_size(argc, argv, 1, &offset, &size); @@ -1194,7 +1194,7 @@ static int command_flash_read(int argc, const char **argv) size = shared_mem_size(); /* Acquire the shared memory buffer */ - rv = shared_mem_acquire(size, &data); + rv = shared_mem_acquire(size, (char **)&data); if (rv) { ccputs("Can't get shared mem\n"); return rv; diff --git a/zephyr/test/drivers/flash/src/flash.c b/zephyr/test/drivers/flash/src/flash.c index f5ee17bb24..c0b0d9ef4f 100644 --- a/zephyr/test/drivers/flash/src/flash.c +++ b/zephyr/test/drivers/flash/src/flash.c @@ -16,6 +16,7 @@ #include <zephyr/drivers/gpio/gpio_emul.h> #include <zephyr/kernel.h> #include <zephyr/shell/shell_dummy.h> +#include <zephyr/sys/byteorder.h> #include <zephyr/ztest.h> #define WP_L_GPIO_PATH NAMED_GPIOS_GPIO_NODE(wp_l) @@ -645,6 +646,47 @@ ZTEST_USER(flash, test_console_cmd_flash_write__happy) zassert_equal(output, 0xFFFFFFFF, "Got %08x", output); } +ZTEST_USER(flash, test_console_cmd_flash_read__bad_args) +{ + /* No args*/ + CHECK_CONSOLE_CMD("flashread", NULL, EC_ERROR_PARAM_COUNT); + + /* Check for alpha arg instead of number*/ + CHECK_CONSOLE_CMD("flashread xyz 100", NULL, EC_ERROR_PARAM1); + CHECK_CONSOLE_CMD("flashread 100 xyz", NULL, EC_ERROR_PARAM2); +} + +ZTEST_USER(flash, test_console_cmd_flash_read__too_big) +{ + CHECK_CONSOLE_CMD("flashread 0x10000 " STRINGIFY(INT_MAX), NULL, + EC_ERROR_INVAL); +} + +ZTEST_USER(flash, test_console_cmd_flash_read__happy_4_bytes) +{ + /* Write some bytes to read */ + zassert_ok(write_flash_helper32(0x10000, sys_cpu_to_be32(0xA1B2C3D4))); + + static const char *expected = "\r\n\r\n" + "00010000: a1 b2 c3 d4\r\n"; + CHECK_CONSOLE_CMD("flashread 0x10000 4", expected, EC_SUCCESS); +} + +ZTEST_USER(flash, test_console_cmd_flash_read__happy_17_bytes) +{ + /* Test 16-byte column wrapping behavior */ + + /* Write some bytes to read */ + zassert_ok(write_flash_helper32(0x10000, sys_cpu_to_be32(0xA1B2C3D4))); + + static const char *expected = + "\r\n\r\n" + "00010000: a1 b2 c3 d4 ff ff ff ff ff ff ff ff ff ff ff ff\r\n" + "00010010: ff\r\n"; + + CHECK_CONSOLE_CMD("flashread 0x10000 17", expected, EC_SUCCESS); +} + /** * @brief Prepare a region of flash for the test_crec_flash_is_erased* tests * |