diff options
Diffstat (limited to 'zephyr/test/system_common/src/get_version.c')
-rw-r--r-- | zephyr/test/system_common/src/get_version.c | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/zephyr/test/system_common/src/get_version.c b/zephyr/test/system_common/src/get_version.c new file mode 100644 index 0000000000..87a41bad58 --- /dev/null +++ b/zephyr/test/system_common/src/get_version.c @@ -0,0 +1,72 @@ +/* Copyright 2022 The ChromiumOS Authors + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include <zephyr/device.h> +#include <zephyr/fff.h> +#include <zephyr/ztest_assert.h> +#include <zephyr/ztest_test_new.h> + +#include "host_command.h" +#include "system.h" + +ZTEST_SUITE(host_cmd_get_version, NULL, NULL, NULL, NULL, NULL); + +__override const char *system_get_version(enum ec_image copy) +{ + switch (copy) { + case EC_IMAGE_RO: + return "version-ro"; + case EC_IMAGE_RW: + return "version-rw"; + default: + return "unknown"; + } +} + +ZTEST(host_cmd_get_version, test_get_version_v1) +{ + int ret; + struct ec_response_get_version_v1 r; + struct host_cmd_handler_args args = + BUILD_HOST_COMMAND_RESPONSE(EC_CMD_GET_VERSION, 1, r); + + ret = host_command_process(&args); + + zassert_equal(ret, EC_SUCCESS, "Unexpected return value: %d", ret); + + zassert_equal(strcmp(r.version_string_ro, "version-ro"), 0, + "version_string_ro: %s", r.version_string_ro); + zassert_equal(args.response_size, sizeof(r), "response_size: %d", + args.response_size); + zassert_equal(strcmp(r.version_string_rw, "version-rw"), 0, + "version_string_rw: %s", r.version_string_rw); + zassert_equal(strcmp(r.cros_fwid_ro, "CROS_FWID_MISSING"), 0, + "cros_fwid_ro: %s", r.cros_fwid_ro); + zassert_equal(strcmp(r.cros_fwid_rw, "CROS_FWID_MISSING"), 0, + "cros_fwid_ro: %s", r.cros_fwid_rw); + zassert_equal(r.current_image, EC_IMAGE_UNKNOWN, "current_image: %s", + r.current_image); +} + +ZTEST(host_cmd_get_version, test_get_version_v0) +{ + int ret; + struct ec_response_get_version r; + struct host_cmd_handler_args args = + BUILD_HOST_COMMAND_RESPONSE(EC_CMD_GET_VERSION, 0, r); + + ret = host_command_process(&args); + + zassert_equal(ret, EC_SUCCESS, "Unexpected return value: %d", ret); + + zassert_equal(strcmp(r.version_string_ro, "version-ro"), 0, + "version_string_ro: %s", r.version_string_ro); + zassert_equal(args.response_size, sizeof(r), "response_size: %d", + args.response_size); + zassert_equal(strcmp(r.version_string_rw, "version-rw"), 0, + "version_string_rw: %s", r.version_string_rw); + zassert_equal(r.current_image, EC_IMAGE_UNKNOWN, "current_image: %s", + r.current_image); +} |