summaryrefslogtreecommitdiff
path: root/zephyr/test/drivers/host_cmd/src/pd_log.c
diff options
context:
space:
mode:
authorYH Lin <yueherngl@google.com>2022-11-30 21:44:08 +0000
committerYH Lin <yueherngl@google.com>2022-11-30 21:44:08 +0000
commitaf25602b15b22b9ef5821dcba9934311f2157c48 (patch)
treed0c89ae8814c2ba35c238c6c0644ec6b1602c63a /zephyr/test/drivers/host_cmd/src/pd_log.c
parent54462f034b635260dd09173b3d082e47fc960ef3 (diff)
parentaa40b859b3a73e5a205bc561c1a29eff38485461 (diff)
downloadchrome-ec-af25602b15b22b9ef5821dcba9934311f2157c48.tar.gz
Merge remote-tracking branch cros/main into factory-brya-14517.B-main
Generated by: util/update_release_branch.py --baseboard brya --relevant_paths_file baseboard/brya/relevant-paths.txt factory-brya-14517.B-main Relevant changes: git log --oneline 54462f034b..aa40b859b3 -- baseboard/brya board/agah board/anahera board/banshee board/brya board/crota board/felwinter board/gimble board/kano board/mithrax board/osiris board/primus board/redrix board/taeko board/taniks board/vell board/volmar driver/bc12/pi3usb9201_public.* driver/charger/bq25710.* driver/ppc/nx20p348x.* driver/ppc/syv682x_public.* driver/retimer/bb_retimer_public.* driver/tcpm/nct38xx.* driver/tcpm/ps8xxx_public.* driver/tcpm/tcpci.* include/power/alderlake* include/intel_x86.h power/alderlake* power/intel_x86.c util/getversion.sh e6da633c38 driver: Sort header files 234a87ae2d tcpci: Add FRS enable to driver structure a56be59ccd tcpm_header: add test for tcpm_dump_registers 57b3256963 Rename CONFIG_CHARGER_INPUT_CURRENT to _CHARGER_DEFAULT_CURRENT_LIMIT e420c8ff9a marasov: Modify TypeC and TypeA configuration. 43b53e0045 Add default implementation of board_set_charge_limit b75dc90677 Add CONFIG_CHARGER_MIN_INPUT_CURRENT_LIMIT f1b563c350 baseboard: Sort header files 7d01b1e58d driver/retimer/ps8818.h: Add I2C ADDR FLAGS 0x30, 0x58, 0x70 ec31407993 Add CONFIG_CHARGER_INPUT_CURRENT_DERATE_PCT 8f89f69a5b crota: disable lid angle sensor for clamshell BRANCH=None BUG=b:259002141 b:255184961 b:247100970 b:259354679 b:260630630 BUG=b:163093572 b:254328661 TEST=`emerge-brya chromeos-ec` Force-Relevant-Builds: all Change-Id: Ia85a701fbf6b8e67ec214b9e25e0e55e980a6f47 Signed-off-by: YH Lin <yueherngl@google.com>
Diffstat (limited to 'zephyr/test/drivers/host_cmd/src/pd_log.c')
-rw-r--r--zephyr/test/drivers/host_cmd/src/pd_log.c39
1 files changed, 35 insertions, 4 deletions
diff --git a/zephyr/test/drivers/host_cmd/src/pd_log.c b/zephyr/test/drivers/host_cmd/src/pd_log.c
index a6022d8bb1..819f020890 100644
--- a/zephyr/test/drivers/host_cmd/src/pd_log.c
+++ b/zephyr/test/drivers/host_cmd/src/pd_log.c
@@ -3,13 +3,14 @@
* found in the LICENSE file.
*/
-#include <zephyr/kernel.h>
-#include <zephyr/ztest.h>
-
#include "event_log.h"
#include "host_command.h"
#include "test/drivers/test_state.h"
#include "usb_pd.h"
+#include "util.h"
+
+#include <zephyr/kernel.h>
+#include <zephyr/ztest.h>
/**
* @brief This is the maximum size of a single log entry.
@@ -20,6 +21,14 @@
#define MAX_EVENT_LOG_ENTRY_SIZE (sizeof(struct event_log_entry) + 16)
/**
+ * @brief This is the maximum size of a response pd log entry.
+ *
+ * Each entry must contain some common data + up to 16 bytes of additional type
+ * specific data.
+ */
+#define MAX_RESPONSE_PD_LOG_ENTRY_SIZE (sizeof(struct ec_response_pd_log) + 16)
+
+/**
* @brief The size of the PD log entry data
*
* Logs from the PD include an additional 8 bytes of data to be sent to the AP.
@@ -120,7 +129,7 @@ ZTEST_USER_F(pd_log, test_mcu_connect)
ZTEST_USER_F(pd_log, test_read_log_entry)
{
- uint8_t response_buffer[sizeof(struct ec_response_pd_log) + 16];
+ uint8_t response_buffer[MAX_RESPONSE_PD_LOG_ENTRY_SIZE];
struct ec_response_pd_log *response =
(struct ec_response_pd_log *)response_buffer;
struct host_cmd_handler_args args =
@@ -133,3 +142,25 @@ ZTEST_USER_F(pd_log, test_read_log_entry)
zassert_equal(sizeof(struct event_log_entry), args.response_size, NULL);
zassert_equal(PD_EVENT_NO_ENTRY, response->type, NULL);
}
+
+ZTEST_USER_F(pd_log, test_log_recv_vdm)
+{
+ uint8_t response_buffer[MAX_RESPONSE_PD_LOG_ENTRY_SIZE];
+ uint32_t *payload = (uint32_t *)response_buffer;
+ struct ec_response_pd_log *response =
+ (struct ec_response_pd_log *)&payload[1];
+
+ memset(response_buffer, 0, sizeof(response_buffer));
+ payload[0] |= VDO_SRC_RESPONDER;
+ response->type = PD_EVENT_MCU_CONNECT;
+ response->size_port = 8;
+ int cnt = DIV_ROUND_UP(response->size_port, sizeof(uint32_t)) + 2;
+
+ pd_log_recv_vdm(0, cnt, payload);
+
+ (void)log_dequeue_event(&fixture->log_entry);
+
+ zassert_equal(response->type, fixture->log_entry.type,
+ "type=%d, received=%d", response->type,
+ fixture->log_entry.type);
+}