]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
platform/chrome: cros_ec_proto: add Kunit tests for cmd_xfer_status
authorTzung-Bi Shih <tzungbi@kernel.org>
Wed, 22 Jun 2022 04:10:34 +0000 (04:10 +0000)
committerTzung-Bi Shih <tzungbi@kernel.org>
Wed, 20 Jul 2022 01:22:58 +0000 (01:22 +0000)
cros_ec_cmd_xfer_status() calls cros_ec_cmd_xfer() and cros_ec_map_error().

Given that there are already test cases for cros_ec_cmd_xfer(), only add
basic Kunit tests for cros_ec_cmd_xfer_status().

Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
Reviewed-by: Guenter Roeck <groeck@chromium.org>
Link: https://lore.kernel.org/r/20220622041040.202737-2-tzungbi@kernel.org
drivers/platform/chrome/cros_ec_proto_test.c

index d76e09b8a36a49ae2770eefd22695005ea7b3940..7949a2fa9c7794a7ddb28723e8a56f94b6904405 100644 (file)
@@ -1964,6 +1964,46 @@ static void cros_ec_proto_test_cmd_xfer_in_progress_return0(struct kunit *test)
        KUNIT_EXPECT_EQ(test, cros_kunit_ec_pkt_xfer_mock_called, 2);
 }
 
+static void cros_ec_proto_test_cmd_xfer_status_normal(struct kunit *test)
+{
+       struct cros_ec_proto_test_priv *priv = test->priv;
+       struct cros_ec_device *ec_dev = &priv->ec_dev;
+       struct ec_xfer_mock *mock;
+       int ret;
+       struct cros_ec_command msg;
+
+       memset(&msg, 0, sizeof(msg));
+
+       /* For cros_ec_cmd_xfer(). */
+       {
+               mock = cros_kunit_ec_xfer_mock_add(test, 0);
+               KUNIT_ASSERT_PTR_NE(test, mock, NULL);
+       }
+
+       ret = cros_ec_cmd_xfer_status(ec_dev, &msg);
+       KUNIT_EXPECT_EQ(test, ret, 0);
+}
+
+static void cros_ec_proto_test_cmd_xfer_status_xfer_error(struct kunit *test)
+{
+       struct cros_ec_proto_test_priv *priv = test->priv;
+       struct cros_ec_device *ec_dev = &priv->ec_dev;
+       struct ec_xfer_mock *mock;
+       int ret;
+       struct cros_ec_command msg;
+
+       memset(&msg, 0, sizeof(msg));
+
+       /* For cros_ec_cmd_xfer(). */
+       {
+               mock = cros_kunit_ec_xfer_mock_addx(test, -EPROTO, EC_RES_SUCCESS, 0);
+               KUNIT_ASSERT_PTR_NE(test, mock, NULL);
+       }
+
+       ret = cros_ec_cmd_xfer_status(ec_dev, &msg);
+       KUNIT_EXPECT_EQ(test, ret, -EPROTO);
+}
+
 static void cros_ec_proto_test_release(struct device *dev)
 {
 }
@@ -2044,6 +2084,8 @@ static struct kunit_case cros_ec_proto_test_cases[] = {
        KUNIT_CASE(cros_ec_proto_test_cmd_xfer_in_progress_xfer_error),
        KUNIT_CASE(cros_ec_proto_test_cmd_xfer_in_progress_return_error),
        KUNIT_CASE(cros_ec_proto_test_cmd_xfer_in_progress_return0),
+       KUNIT_CASE(cros_ec_proto_test_cmd_xfer_status_normal),
+       KUNIT_CASE(cros_ec_proto_test_cmd_xfer_status_xfer_error),
        {}
 };