summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Barnes <robbarnes@google.com>2023-02-14 15:56:10 -0700
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2023-02-15 15:58:40 +0000
commit9e0966e1125c0de9cc0080f5e28b9ad2a14f0ff9 (patch)
treef1eaab83d55d0437f9a1bcbf73b0657f1a9c7e48
parent25a400690f15981125c67c48aea2843a2d849fc6 (diff)
downloadchrome-ec-9e0966e1125c0de9cc0080f5e28b9ad2a14f0ff9.tar.gz
zephyr/test: Add extra_tasks test
Add a new extra_tasks test case. Instead of defining new test tasks, this case checks that the default extra tasks are created. The test fixtures are pretty bare at the moment. More tests will be filled when more functionality is added to shim/tasks.c BUG=b:267470086 BRANCH=None TEST=Unit tests Change-Id: I2cbd38a37770bec35aeb55da5c2ac279e0e2c09e Signed-off-by: Rob Barnes <robbarnes@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4252003 Reviewed-by: Fabio Baltieri <fabiobaltieri@google.com>
-rw-r--r--zephyr/test/tasks/CMakeLists.txt5
-rw-r--r--zephyr/test/tasks/extra_tasks.c58
-rw-r--r--zephyr/test/tasks/prj.conf5
-rw-r--r--zephyr/test/tasks/testcase.yaml10
4 files changed, 74 insertions, 4 deletions
diff --git a/zephyr/test/tasks/CMakeLists.txt b/zephyr/test/tasks/CMakeLists.txt
index b0b59e7c99..52e6723652 100644
--- a/zephyr/test/tasks/CMakeLists.txt
+++ b/zephyr/test/tasks/CMakeLists.txt
@@ -9,6 +9,9 @@ project(tasks)
# Include the local test directory for shimmed_test_tasks.h
zephyr_include_directories("${CMAKE_CURRENT_SOURCE_DIR}")
-target_sources(app PRIVATE
+target_sources_ifdef(CONFIG_HAS_TEST_TASKS app PRIVATE
main.c
"${CMAKE_CURRENT_SOURCE_DIR}/../../shim/src/tasks.c")
+
+target_sources_ifdef(CONFIG_SHIMMED_TASKS app PRIVATE
+ extra_tasks.c)
diff --git a/zephyr/test/tasks/extra_tasks.c b/zephyr/test/tasks/extra_tasks.c
new file mode 100644
index 0000000000..c302437c20
--- /dev/null
+++ b/zephyr/test/tasks/extra_tasks.c
@@ -0,0 +1,58 @@
+/* Copyright 2023 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/kernel.h>
+#include <zephyr/kernel/thread.h>
+#include <zephyr/ztest.h>
+
+/* Utility functions for finding a Zephyr thread by name */
+static k_tid_t found_thread;
+static void find_thread_by_name_cb(const struct k_thread *thread,
+ void *user_data)
+{
+ const char *name = (const char *)user_data;
+
+ if (strcmp(k_thread_name_get((k_tid_t)thread), name) == 0)
+ found_thread = (k_tid_t)thread;
+}
+
+static k_tid_t find_thread_by_name(const char *name)
+{
+ found_thread = NULL;
+ k_thread_foreach_unlocked(find_thread_by_name_cb, (void *)name);
+ return found_thread;
+}
+
+ZTEST_USER(extra_tasks, test_main_thread_mapping)
+{
+ k_tid_t hostcmd_thread;
+ k_tid_t main_thread;
+
+ hostcmd_thread = find_thread_by_name("HOSTCMD");
+ zassert_not_null(hostcmd_thread);
+
+ main_thread = find_thread_by_name("main");
+ zassert_not_null(main_thread);
+ /* Not equal when CONFIG_TASK_HOSTCMD_THREAD_DEDICATED is set */
+ zassert_not_equal(main_thread, hostcmd_thread);
+}
+
+ZTEST_USER(extra_tasks, test_sysworkq_thread_mapping)
+{
+ k_tid_t sysworkq_thread;
+
+ sysworkq_thread = find_thread_by_name("sysworkq");
+ zassert_not_null(sysworkq_thread);
+}
+
+ZTEST_USER(extra_tasks, test_idle_thread_mapping)
+{
+ k_tid_t idle_thread;
+
+ idle_thread = find_thread_by_name("idle");
+ zassert_not_null(idle_thread);
+}
+
+ZTEST_SUITE(extra_tasks, NULL, NULL, NULL, NULL, NULL);
diff --git a/zephyr/test/tasks/prj.conf b/zephyr/test/tasks/prj.conf
index 6c8e2fbc90..deb8253bde 100644
--- a/zephyr/test/tasks/prj.conf
+++ b/zephyr/test/tasks/prj.conf
@@ -3,7 +3,8 @@
# found in the LICENSE file.
CONFIG_ZTEST=y
-CONFIG_HAS_TEST_TASKS=y
CONFIG_PLATFORM_EC=y
CONFIG_CROS_EC=y
-CONFIG_PLATFORM_EC_HOOKS=n
+CONFIG_PLATFORM_EC_VBOOT_HASH=n
+CONFIG_PLATFORM_EC_BACKLIGHT_LID=n
+CONFIG_PLATFORM_EC_SWITCH=n
diff --git a/zephyr/test/tasks/testcase.yaml b/zephyr/test/tasks/testcase.yaml
index a72199a14a..4604e966e9 100644
--- a/zephyr/test/tasks/testcase.yaml
+++ b/zephyr/test/tasks/testcase.yaml
@@ -5,4 +5,12 @@
common:
platform_allow: native_posix
tests:
- tasks.default: {}
+ tasks.default:
+ extra_configs:
+ - CONFIG_HAS_TEST_TASKS=y
+ tasks.extra_tasks:
+ extra_configs:
+ - CONFIG_ZTEST_NEW_API=y
+ - CONFIG_SHIMMED_TASKS=y
+ - CONFIG_PLATFORM_EC_HOSTCMD=y
+ - CONFIG_TASK_HOSTCMD_THREAD_DEDICATED=y