[PATCH v3 00/23] platform/chrome: Kunit tests and refactor for cros_ec_query_all()

From: Tzung-Bi Shih
Date: Wed Jun 08 2022 - 07:08:01 EST


The series adds Kunit tests, refactors, and clean-ups for cros_ec_query_all().

Tzung-Bi Shih (23):
platform/chrome: cros_ec_commands: fix compile errors
-> Fixes compile errors when including cros_ec_commands.h.

platform/chrome: cros_ec_proto: add Kunit tests for
cros_ec_query_all()
-> Adds Kunit tests for cros_ec_query_all(). They are baseline tests
for the following refactor patches. They are designed to pass current
code.

platform/chrome: use macros for passthru indexes
platform/chrome: cros_ec_proto: assign buffer size from protocol info
-> Refactors.

platform/chrome: cros_ec_proto: remove redundant NULL check
-> Clean up.

platform/chrome: cros_ec_proto: use cros_ec_map_error()
-> Changes the internal return code.

platform/chrome: cros_ec_proto: separate cros_ec_get_proto_info()
-> Move refactor.

platform/chrome: cros_ec_proto: add Kunit tests for getting proto info
platform/chrome: cros_ec_proto: handle empty payload in getting proto
info
-> Test and handle if send_command() returns 0 in cros_ec_get_proto_info().

platform/chrome: cros_ec_proto: separate
cros_ec_get_proto_info_legacy()
-> Move refactor.

platform/chrome: cros_ec_proto: add Kunit test for getting legacy info
platform/chrome: cros_ec_proto: handle empty payload in getting info
legacy
-> Test and handle if send_command() returns 0 in
cros_ec_get_proto_info_legacy().

platform/chrome: cros_ec: don't allocate `din` and `dout` in
cros_ec_register()
-> Clean up.

platform/chrome: don't use devm variants for `din` and `dout`
-> Replace devm variants to non-devm.

platform/chrome: cros_ec_proto: don't show MKBP version if unsupported
-> Minor fix up.

platform/chrome: cros_ec_proto: return 0 on getting cmd mask success
-> Conform to kernel convention: return 0 on success;
otherwise, negative integers.

platform/chrome: cros_ec_proto: add Kunit test for getting cmd mask
error
platform/chrome: cros_ec_proto: check `msg->result` in getting cmd
mask
-> Test and handle if `msg->result` isn't EC_RES_SUCCESS in
cros_ec_get_host_command_version_mask().

platform/chrome: cros_ec_proto: add Kunit tests for getting cmd mask
platform/chrome: cros_ec_proto: handle empty payload in getting cmd
mask
-> Test and handle if send_command() returns 0 in
cros_ec_get_host_command_version_mask().

platform/chrome: cros_ec_proto: return 0 on getting wake mask success
-> Conform to kernel convention: return 0 on success;
otherwise, negative integers.

platform/chrome: cros_ec_proto: add Kunit test for getting wake mask
platform/chrome: cros_ec_proto: handle empty payload in getting wake
mask
-> Test and handle if send_command() returns 0 in
cros_ec_get_host_event_wake_mask().

drivers/platform/chrome/Kconfig | 6 +
drivers/platform/chrome/Makefile | 1 +
drivers/platform/chrome/cros_ec.c | 17 +-
drivers/platform/chrome/cros_ec_proto.c | 320 ++--
drivers/platform/chrome/cros_ec_proto_test.c | 1402 +++++++++++++++++
drivers/platform/chrome/cros_ec_trace.h | 8 +-
drivers/platform/chrome/cros_kunit_util.c | 98 ++
drivers/platform/chrome/cros_kunit_util.h | 36 +
.../linux/platform_data/cros_ec_commands.h | 4 +-
include/linux/platform_data/cros_ec_proto.h | 3 +
10 files changed, 1717 insertions(+), 178 deletions(-)
create mode 100644 drivers/platform/chrome/cros_kunit_util.c
create mode 100644 drivers/platform/chrome/cros_kunit_util.h

Changes from v2:
(https://patchwork.kernel.org/project/chrome-platform/cover/20220607145639.2362750-1-tzungbi@xxxxxxxxxx/)
- Split patches into smaller pieces.

Changes from v1:
(https://patchwork.kernel.org/project/chrome-platform/cover/20220606141051.285823-1-tzungbi@xxxxxxxxxx/)
- Fix review comments.
- Split and reorder patches.

base-commit: 4319cbd4ed99003e0c981728ab1626c25be7af4a
--
2.36.1.255.ge46751e96f-goog