All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefan Roese <sr@denx.de>
To: u-boot@lists.denx.de
Cc: trini@konsulko.com, sjg@chromium.org, awilliams@marvell.com,
	cchavva@marvell.com
Subject: [PATCH v6 8/8] cyclic: Add a simple test
Date: Fri,  2 Sep 2022 13:57:54 +0200	[thread overview]
Message-ID: <20220902115754.1280789-9-sr@denx.de> (raw)
In-Reply-To: <20220902115754.1280789-1-sr@denx.de>

Add a test for cyclic function registration and activation.

Signed-off-by: Stefan Roese <sr@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
---
v6:
- No change

v5:
- Set 'cyclic_active' to false before registering the test
- Use WATCHDOG_RESET() instead of mdelay()
- Use COMMON_TEST()
- Added Simon's RB tag

v4:
- New patch

 test/common/Makefile |  1 +
 test/common/cyclic.c | 35 +++++++++++++++++++++++++++++++++++
 test/test-main.c     |  3 +++
 3 files changed, 39 insertions(+)
 create mode 100644 test/common/cyclic.c

diff --git a/test/common/Makefile b/test/common/Makefile
index 9087788ba6a8..cc918f64e544 100644
--- a/test/common/Makefile
+++ b/test/common/Makefile
@@ -1,4 +1,5 @@
 # SPDX-License-Identifier: GPL-2.0+
 obj-y += cmd_ut_common.o
 obj-$(CONFIG_AUTOBOOT) += test_autoboot.o
+obj-$(CONFIG_CYCLIC) += cyclic.o
 obj-$(CONFIG_EVENT) += event.o
diff --git a/test/common/cyclic.c b/test/common/cyclic.c
new file mode 100644
index 000000000000..a5c4e78989b9
--- /dev/null
+++ b/test/common/cyclic.c
@@ -0,0 +1,35 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2022 Stefan Roese <sr@denx.de>
+ */
+
+#include <common.h>
+#include <cyclic.h>
+#include <dm.h>
+#include <test/common.h>
+#include <test/test.h>
+#include <test/ut.h>
+#include <watchdog.h>
+#include <linux/delay.h>
+
+/* Test that cyclic function is called */
+static bool cyclic_active = false;
+
+static void cyclic_test(void *ctx)
+{
+	cyclic_active = true;
+}
+
+static int dm_test_cyclic_running(struct unit_test_state *uts)
+{
+	cyclic_active = false;
+	ut_assertnonnull(cyclic_register(cyclic_test, 10 * 1000, "cyclic_demo",
+					 NULL));
+
+	/* Execute all registered cyclic functions */
+	WATCHDOG_RESET();
+	ut_asserteq(true, cyclic_active);
+
+	return 0;
+}
+COMMON_TEST(dm_test_cyclic_running, 0);
diff --git a/test/test-main.c b/test/test-main.c
index 31837e57a8fb..8a609a8a2fce 100644
--- a/test/test-main.c
+++ b/test/test-main.c
@@ -6,6 +6,7 @@
 
 #include <common.h>
 #include <console.h>
+#include <cyclic.h>
 #include <dm.h>
 #include <event.h>
 #include <dm/root.h>
@@ -220,6 +221,7 @@ static int dm_test_restore(struct device_node *of_root)
 static int test_pre_run(struct unit_test_state *uts, struct unit_test *test)
 {
 	ut_assertok(event_init());
+	ut_assertok(cyclic_init());
 
 	if (test->flags & UT_TESTF_DM)
 		ut_assertok(dm_test_pre_run(uts));
@@ -265,6 +267,7 @@ static int test_post_run(struct unit_test_state *uts, struct unit_test *test)
 	ut_unsilence_console(uts);
 	if (test->flags & UT_TESTF_DM)
 		ut_assertok(dm_test_post_run(uts));
+	ut_assertok(cyclic_uninit());
 	ut_assertok(event_uninit());
 
 	return 0;
-- 
2.37.3


  parent reply	other threads:[~2022-09-02 11:59 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-02 11:57 [PATCH v6 0/8] Add support for cyclic function execution infrastruture Stefan Roese
2022-09-02 11:57 ` [PATCH v6 1/8] time: Import time_after64() and friends from Linux Stefan Roese
2022-09-02 11:57 ` [PATCH v6 2/8] cyclic: Add basic support for cyclic function execution infrastruture Stefan Roese
2022-09-02 11:57 ` [PATCH v6 3/8] cyclic: Integrate cyclic infrastructure into WATCHDOG_RESET Stefan Roese
2022-09-02 11:57 ` [PATCH v6 4/8] cyclic: Integrate cyclic functionality at bootup in board_r/f Stefan Roese
2022-09-02 11:57 ` [PATCH v6 5/8] cyclic: Add 'cyclic list' and 'cyclic demo' commands Stefan Roese
2022-09-02 11:57 ` [PATCH v6 6/8] mips: octeon_nic23: Add PCIe FLR fixup via cyclic infrastructure Stefan Roese
2022-09-02 11:57 ` [PATCH v6 7/8] cyclic: Add documentation Stefan Roese
2022-09-02 11:57 ` Stefan Roese [this message]
2022-09-14 12:58 ` [PATCH v6 0/8] Add support for cyclic function execution infrastruture Tom Rini
2022-09-14 14:29   ` Stefan Roese
2022-09-14 14:47     ` Tom Rini
2022-09-14 15:18       ` Stefan Roese
2022-09-14 17:09         ` Simon Glass
2022-09-15  4:58           ` Stefan Roese

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220902115754.1280789-9-sr@denx.de \
    --to=sr@denx.de \
    --cc=awilliams@marvell.com \
    --cc=cchavva@marvell.com \
    --cc=sjg@chromium.org \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.