summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVic Yang <victoryang@chromium.org>2013-06-16 21:36:16 +0800
committerChromeBot <chrome-bot@google.com>2013-06-17 20:27:27 -0700
commit7de03b0f0eba113681a8b41971b4c17dd04bf8fd (patch)
tree26586f92133d099eb48a766897b6ab186c216b56
parentb93658ba02cf381e2a0e20c4d7128814d685e502 (diff)
downloadchrome-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.c19
-rw-r--r--include/test_util.h3
-rw-r--r--test/flash.c45
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 = &params;
- 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, &params,
+ 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 = &params;
- 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, &params,
+ 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 *)&params;
+ 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 = &params;
- args.params_size = sizeof(params);
- args.response = &params;
- 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, &params,
+ 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;