diff options
author | Keith Short <keithshort@chromium.org> | 2022-09-22 13:59:07 -0600 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-09-26 19:24:57 +0000 |
commit | 1f28adcc8189bcc52fad68f58c74e5e8f45c6853 (patch) | |
tree | b73cd5dc16978a5969bbac1f62af455bc751ee83 | |
parent | 32c9b990f18f858cfa0e2fbc058f9744daa772d7 (diff) | |
download | chrome-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.h | 30 | ||||
-rw-r--r-- | zephyr/test/kingler/prj.conf | 1 | ||||
-rw-r--r-- | zephyr/test/krabby/prj.conf | 1 | ||||
-rw-r--r-- | zephyr/test/system_common/prj.conf | 1 | ||||
-rw-r--r-- | zephyr/test/test_utils/CMakeLists.txt | 8 | ||||
-rw-r--r-- | zephyr/test/test_utils/tasks_fakes.c | 30 | ||||
-rw-r--r-- | zephyr/test/vboot_efs2/CMakeLists.txt | 2 | ||||
-rw-r--r-- | zephyr/test/vboot_efs2/prj.conf | 1 |
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 |