diff options
author | Vic Yang <victoryang@chromium.org> | 2013-06-16 21:36:16 +0800 |
---|---|---|
committer | ChromeBot <chrome-bot@google.com> | 2013-06-17 20:27:27 -0700 |
commit | 7de03b0f0eba113681a8b41971b4c17dd04bf8fd (patch) | |
tree | 26586f92133d099eb48a766897b6ab186c216b56 | |
parent | b93658ba02cf381e2a0e20c4d7128814d685e502 (diff) | |
download | chrome-ec-7de03b0f0eba113681a8b41971b4c17dd04bf8fd.tar.gz |
A method to mock host command
This will be used often, so let's move it to test_util.c.
BUG=chrome-os-partner:19235
TEST=Pass flash test.
BRANCH=None
Change-Id: I2f685f657f8742c2b29e3b9c88ba01daacf982f8
Signed-off-by: Vic Yang <victoryang@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/58793
-rw-r--r-- | common/test_util.c | 19 | ||||
-rw-r--r-- | include/test_util.h | 3 | ||||
-rw-r--r-- | test/flash.c | 45 |
3 files changed, 32 insertions, 35 deletions
diff --git a/common/test_util.c b/common/test_util.c index b9b6a7a13f..c133ac9d24 100644 --- a/common/test_util.c +++ b/common/test_util.c @@ -9,6 +9,7 @@ #include <stdlib.h> #include "console.h" +#include "host_command.h" #include "test_util.h" #include "util.h" @@ -64,6 +65,24 @@ int test_get_error_count(void) return __test_error_count; } +#ifdef HAS_TASK_HOSTCMD +int test_send_host_command(int command, int version, const void *params, + int params_size, void *resp, int resp_size) +{ + struct host_cmd_handler_args args; + + args.version = version; + args.command = command; + args.params = params; + args.params_size = params_size; + args.response = resp; + args.response_max = resp_size; + args.response_size = 0; + + return host_command_process(&args); +} +#endif /* TASK_HAS_HOSTCMD */ + static int command_run_test(int argc, char **argv) { run_test(); diff --git a/include/test_util.h b/include/test_util.h index 3faccb8c79..d63acfa741 100644 --- a/include/test_util.h +++ b/include/test_util.h @@ -76,6 +76,9 @@ void test_print_result(void); int test_get_error_count(void); +int test_send_host_command(int command, int version, const void *params, + int params_size, void *resp, int resp_size); + extern int __test_error_count; #endif /* __CROS_EC_TEST_UTIL_H */ diff --git a/test/flash.c b/test/flash.c index 33f47543bd..c8fa65955e 100644 --- a/test/flash.c +++ b/test/flash.c @@ -162,73 +162,48 @@ static int verify_write(int offset, int size, const char *data) int host_command_write(int offset, int size, const char *data) { - struct host_cmd_handler_args args; struct ec_params_flash_write params; params.offset = offset; params.size = size; memcpy(params.data, data, size); - args.version = 0; - args.command = EC_CMD_FLASH_WRITE; - args.params = ¶ms; - args.params_size = sizeof(params); - args.response = NULL; - args.response_max = 0; - args.response_size = 0; - - return host_command_process(&args); + return test_send_host_command(EC_CMD_FLASH_WRITE, 0, ¶ms, + sizeof(params), NULL, 0); } int host_command_erase(int offset, int size) { - struct host_cmd_handler_args args; struct ec_params_flash_write params; params.offset = offset; params.size = size; - args.version = 0; - args.command = EC_CMD_FLASH_ERASE; - args.params = ¶ms; - args.params_size = sizeof(params); - args.response = NULL; - args.response_max = 0; - args.response_size = 0; - - return host_command_process(&args); + return test_send_host_command(EC_CMD_FLASH_ERASE, 0, ¶ms, + sizeof(params), NULL, 0); } int host_command_protect(uint32_t mask, uint32_t flags, uint32_t *flags_out, uint32_t *valid_out, uint32_t *writable_out) { - struct host_cmd_handler_args args; struct ec_params_flash_protect params; - struct ec_response_flash_protect *r = - (struct ec_response_flash_protect *)¶ms; + struct ec_response_flash_protect resp; int res; params.mask = mask; params.flags = flags; - args.version = 1; - args.command = EC_CMD_FLASH_PROTECT; - args.params = ¶ms; - args.params_size = sizeof(params); - args.response = ¶ms; - args.response_max = EC_HOST_PARAM_SIZE; - args.response_size = 0; - - res = host_command_process(&args); + res = test_send_host_command(EC_CMD_FLASH_PROTECT, 1, ¶ms, + sizeof(params), &resp, sizeof(resp)); if (res == EC_RES_SUCCESS) { if (flags_out) - *flags_out = r->flags; + *flags_out = resp.flags; if (valid_out) - *valid_out = r->valid_flags; + *valid_out = resp.valid_flags; if (writable_out) - *writable_out = r->writable_flags; + *writable_out = resp.writable_flags; } return res; |