summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Short <keithshort@chromium.org>2022-09-22 13:59:07 -0600
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-09-26 19:24:57 +0000
commit1f28adcc8189bcc52fad68f58c74e5e8f45c6853 (patch)
treeb73cd5dc16978a5969bbac1f62af455bc751ee83
parent32c9b990f18f858cfa0e2fbc058f9744daa772d7 (diff)
downloadchrome-ec-1f28adcc8189bcc52fad68f58c74e5e8f45c6853.tar.gz
zephyr: create fakes for the shimmed tasks
Many tests don't actually require the shimmed tasks. Create stub task entries and fakes for the task API. This allows tests to disable CONFIG_SHIMMED_TASKS. BUG=none BRANCH=none TEST=./twister Signed-off-by: Keith Short <keithshort@chromium.org> Change-Id: I2da33bc76189447d09e01587e4c8ef496890d3a4 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3916580 Reviewed-by: Tristan Honscheid <honscheid@google.com>
-rw-r--r--zephyr/shim/include/shimmed_task_id.h30
-rw-r--r--zephyr/test/kingler/prj.conf1
-rw-r--r--zephyr/test/krabby/prj.conf1
-rw-r--r--zephyr/test/system_common/prj.conf1
-rw-r--r--zephyr/test/test_utils/CMakeLists.txt8
-rw-r--r--zephyr/test/test_utils/tasks_fakes.c30
-rw-r--r--zephyr/test/vboot_efs2/CMakeLists.txt2
-rw-r--r--zephyr/test/vboot_efs2/prj.conf1
8 files changed, 69 insertions, 5 deletions
diff --git a/zephyr/shim/include/shimmed_task_id.h b/zephyr/shim/include/shimmed_task_id.h
index 1a29acafdf..a0295ad764 100644
--- a/zephyr/shim/include/shimmed_task_id.h
+++ b/zephyr/shim/include/shimmed_task_id.h
@@ -171,7 +171,35 @@ enum {
#if defined(CONFIG_TEST_TASK_LIST) && !defined(CROS_EC_TASK_LIST)
#define CROS_EC_TASK_LIST CONFIG_TEST_TASK_LIST
#endif /* CONFIG_TEST_TASK_LIST && !CROS_EC_TASK_LIST */
-#endif /* !CONFIG_ZTEST */
+
+/*
+ * Tests often must link in files that reference task IDs, even when the
+ * shimmed tasks are not created. Define stub tasks to satisfy the final link.
+ */
+#else /* !CONFIG_SHIMMED_TASKS && !CONFIG_HAS_TEST_TASKS */
+#define CROS_EC_TASK_LIST \
+ CROS_EC_TASK(CHG_RAMP, NULL, 0, 0, EC_TASK_CHG_RAMP_PRIO) \
+ CROS_EC_TASK(USB_CHG, NULL, 0, 0, EC_TASK_USB_CHG_PRIO) \
+ CROS_EC_TASK(DPS, NULL, 0, 0, EC_TASK_DPS_PRIO) \
+ CROS_EC_TASK(CHARGER, NULL, 0, 0, EC_TASK_CHARGER_PRIO) \
+ CROS_EC_TASK(CHIPSET, NULL, 0, 0, EC_TASK_CHIPSET_PRIO) \
+ CROS_EC_TASK(MOTIONSENSE, NULL, 0, 0, EC_TASK_MOTIONSENSE_PRIO) \
+ CROS_EC_TASK(USB_MUX, NULL, 0, 0, EC_TASK_USB_MUX_PRIO) \
+ CROS_EC_TASK(HOSTCMD, NULL, 0, 0, EC_TASK_HOSTCMD_PRIO) \
+ CROS_EC_TASK(KEYPROTO, NULL, 0, 0, EC_TASK_KEYPROTO_PRIO) \
+ CROS_EC_TASK(POWERBTN, NULL, 0, 0, EC_TASK_POWERBTN_PRIO) \
+ CROS_EC_TASK(KEYSCAN, NULL, 0, 0, EC_TASK_KEYSCAN_PRIO) \
+ CROS_EC_TASK(PD_C0, NULL, 0, 0, EC_TASK_PD_C0_PRIO) \
+ CROS_EC_TASK(PD_C1, NULL, 0, 0, EC_TASK_PD_C1_PRIO) \
+ CROS_EC_TASK(PD_C2, NULL, 0, 0, EC_TASK_PD_C2_PRIO) \
+ CROS_EC_TASK(PD_C3, NULL, 0, 0, EC_TASK_PD_C3_PRIO) \
+ CROS_EC_TASK(PD_INT_SHARED, NULL, 0, 0, EC_TASK_PD_INT_SHARED_PRIO) \
+ CROS_EC_TASK(PD_INT_C0, NULL, 0, 0, EC_TASK_PD_INT_C0_PRIO) \
+ CROS_EC_TASK(PD_INT_C1, NULL, 1, 0, EC_TASK_PD_INT_C1_PRIO) \
+ CROS_EC_TASK(PD_INT_C2, NULL, 2, 0, EC_TASK_PD_INT_C2_PRIO) \
+ CROS_EC_TASK(PD_INT_C3, NULL, 3, 0, EC_TASK_PD_INT_C3_PRIO)
+
+#endif /* CONFIG_SHIMMED_TASKS */
#ifndef CROS_EC_TASK_LIST
#define CROS_EC_TASK_LIST
diff --git a/zephyr/test/kingler/prj.conf b/zephyr/test/kingler/prj.conf
index dfa1c68d4d..2eb14afb0e 100644
--- a/zephyr/test/kingler/prj.conf
+++ b/zephyr/test/kingler/prj.conf
@@ -11,7 +11,6 @@ CONFIG_PLATFORM_EC_HOOKS=y
CONFIG_CROS_EC=y
CONFIG_PLATFORM_EC=y
-CONFIG_SHIMMED_TASKS=y
CONFIG_PLATFORM_EC_MOTIONSENSE=y
CONFIG_PLATFORM_EC_DYNAMIC_MOTION_SENSOR_COUNT=y
diff --git a/zephyr/test/krabby/prj.conf b/zephyr/test/krabby/prj.conf
index 25bc89c33a..21a2603db2 100644
--- a/zephyr/test/krabby/prj.conf
+++ b/zephyr/test/krabby/prj.conf
@@ -14,7 +14,6 @@ CONFIG_EMUL_SMART_BATTERY=y
CONFIG_EMUL_TCPCI=y
CONFIG_I2C=y
CONFIG_I2C_EMUL=y
-CONFIG_SHIMMED_TASKS=y
CONFIG_PLATFORM_EC=y
CONFIG_PLATFORM_EC_BACKLIGHT_LID=n
diff --git a/zephyr/test/system_common/prj.conf b/zephyr/test/system_common/prj.conf
index ebc7c64321..02ba4c42a1 100644
--- a/zephyr/test/system_common/prj.conf
+++ b/zephyr/test/system_common/prj.conf
@@ -15,4 +15,3 @@ CONFIG_PLATFORM_EC_LID_SWITCH=n
CONFIG_PLATFORM_EC_PANIC=n
CONFIG_PLATFORM_EC_SWITCH=n
CONFIG_PLATFORM_EC_VBOOT_HASH=n
-CONFIG_SHIMMED_TASKS=y
diff --git a/zephyr/test/test_utils/CMakeLists.txt b/zephyr/test/test_utils/CMakeLists.txt
index 53baafc624..be5ec575a9 100644
--- a/zephyr/test/test_utils/CMakeLists.txt
+++ b/zephyr/test/test_utils/CMakeLists.txt
@@ -6,4 +6,12 @@ zephyr_interface_library_named(test_utils)
zephyr_library_sources(fff.c)
+if (NOT CONFIG_SHIMMED_TASKS AND NOT CONFIG_HAS_TEST_TASKS)
+ zephyr_include_directories("${PLATFORM_EC}/include"
+ "${PLATFORM_EC}/fuzz"
+ "${PLATFORM_EC}/test"
+ "${PLATFORM_EC}/zephyr/shim/include")
+ zephyr_library_sources(tasks_fakes.c)
+endif()
+
zephyr_library_link_libraries(test_utils)
diff --git a/zephyr/test/test_utils/tasks_fakes.c b/zephyr/test/test_utils/tasks_fakes.c
new file mode 100644
index 0000000000..9145a6f0ea
--- /dev/null
+++ b/zephyr/test/test_utils/tasks_fakes.c
@@ -0,0 +1,30 @@
+/* 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/fff.h>
+#include "task_id.h"
+
+/*
+ * The fakes below are needed to satisfy the final link, but are never
+ * actually called at runtime. Exclude from the coverage report to avoid
+ * false positives on the low-coverage check.
+ */
+/* LCOV_EXCL_START */
+FAKE_VALUE_FUNC(task_id_t, task_get_current);
+FAKE_VALUE_FUNC(atomic_t *, task_get_event_bitmap, task_id_t);
+FAKE_VOID_FUNC(task_set_event, task_id_t, uint32_t);
+FAKE_VALUE_FUNC(int, task_start_called);
+FAKE_VALUE_FUNC(uint32_t, task_wait_event, int);
+FAKE_VALUE_FUNC(uint32_t, task_wait_event_mask, uint32_t, int);
+
+/*
+ * If cros-ec tasks aren't enabled, always indicate we are in a deferred
+ * context.
+ */
+bool in_deferred_context(void)
+{
+ return true;
+}
+/* LCOV_EXCL_STOP */
diff --git a/zephyr/test/vboot_efs2/CMakeLists.txt b/zephyr/test/vboot_efs2/CMakeLists.txt
index c3343bcdd2..2d38c7baf7 100644
--- a/zephyr/test/vboot_efs2/CMakeLists.txt
+++ b/zephyr/test/vboot_efs2/CMakeLists.txt
@@ -6,5 +6,7 @@ cmake_minimum_required(VERSION 3.13.1)
find_package(Zephyr REQUIRED HINTS "${ZEPHYR_BASE}")
project(vboot_efs2)
+add_subdirectory(${PLATFORM_EC}/zephyr/test/test_utils test_utils)
+
FILE(GLOB app_sources src/*.c)
target_sources(app PRIVATE ${app_sources})
diff --git a/zephyr/test/vboot_efs2/prj.conf b/zephyr/test/vboot_efs2/prj.conf
index 602bd22c65..f085fa8f73 100644
--- a/zephyr/test/vboot_efs2/prj.conf
+++ b/zephyr/test/vboot_efs2/prj.conf
@@ -38,6 +38,5 @@ CONFIG_SERIAL=y
CONFIG_SHELL_BACKEND_DUMMY=y
CONFIG_SHELL_BACKEND_DUMMY_BUF_SIZE=1000
CONFIG_SHELL_BACKEND_SERIAL=n
-CONFIG_SHIMMED_TASKS=y
CONFIG_ZTEST=y
CONFIG_ZTEST_NEW_API=y