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

From: Tzung-Bi Shih
Date: Thu Jun 09 2022 - 04:51:29 EST


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

Tzung-Bi Shih (21):
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_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 | 3 -
drivers/platform/chrome/cros_ec_proto.c | 291 ++--
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, 1700 insertions(+), 152 deletions(-)
create mode 100644 drivers/platform/chrome/cros_kunit_util.c
create mode 100644 drivers/platform/chrome/cros_kunit_util.h

Changes from v3:
(https://patchwork.kernel.org/project/chrome-platform/cover/20220608110734.2928245-1-tzungbi@xxxxxxxxxx/)
- Drop 2 patches regarding `din` and `dout`. One of them crashes kernel.
- Fix typo in commit message.

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.

--
2.36.1.255.ge46751e96f-goog