[U-Boot] [PATCH v4 04/17] test: Add tests for sysreset_get_status
Mario Six
mario.six at gdsys.cc
Mon Aug 6 08:23:33 UTC 2018
Add some tests for sysreset_get_status.
Reviewed-by: Simon Glass <sjg at chromium.org>
Signed-off-by: Mario Six <mario.six at gdsys.cc>
---
Notes:
v3 -> v4:
* Switched to usage of strlcpy
v2 -> v3:
New in v3.
drivers/sysreset/sysreset_sandbox.c | 16 ++++++++++++++++
test/dm/sysreset.c | 20 ++++++++++++++++++++
2 files changed, 36 insertions(+)
diff --git a/drivers/sysreset/sysreset_sandbox.c b/drivers/sysreset/sysreset_sandbox.c
index f12c4e84198..75004d9f774 100644
--- a/drivers/sysreset/sysreset_sandbox.c
+++ b/drivers/sysreset/sysreset_sandbox.c
@@ -29,6 +29,13 @@ static int sandbox_warm_sysreset_request(struct udevice *dev,
return -EINPROGRESS;
}
+int sandbox_warm_sysreset_get_status(struct udevice *dev, char *buf, int size)
+{
+ strlcpy(buf, "Reset Status: WARM", size);
+
+ return 0;
+}
+
static int sandbox_sysreset_request(struct udevice *dev, enum sysreset_t type)
{
struct sandbox_state *state = state_get_current();
@@ -60,8 +67,16 @@ static int sandbox_sysreset_request(struct udevice *dev, enum sysreset_t type)
return -EINPROGRESS;
}
+int sandbox_sysreset_get_status(struct udevice *dev, char *buf, int size)
+{
+ strlcpy(buf, "Reset Status: COLD", size);
+
+ return 0;
+}
+
static struct sysreset_ops sandbox_sysreset_ops = {
.request = sandbox_sysreset_request,
+ .get_status = sandbox_sysreset_get_status,
};
static const struct udevice_id sandbox_sysreset_ids[] = {
@@ -78,6 +93,7 @@ U_BOOT_DRIVER(sysreset_sandbox) = {
static struct sysreset_ops sandbox_warm_sysreset_ops = {
.request = sandbox_warm_sysreset_request,
+ .get_status = sandbox_warm_sysreset_get_status,
};
static const struct udevice_id sandbox_warm_sysreset_ids[] = {
diff --git a/test/dm/sysreset.c b/test/dm/sysreset.c
index 33a8bfb33c4..04d4621d9e1 100644
--- a/test/dm/sysreset.c
+++ b/test/dm/sysreset.c
@@ -45,6 +45,26 @@ static int dm_test_sysreset_base(struct unit_test_state *uts)
}
DM_TEST(dm_test_sysreset_base, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
+static int dm_test_sysreset_get_status(struct unit_test_state *uts)
+{
+ struct udevice *dev;
+ char msg[64];
+
+ /* Device 1 is the warm sysreset device */
+ ut_assertok(uclass_get_device(UCLASS_SYSRESET, 1, &dev));
+ ut_assertok(sysreset_get_status(dev, msg, sizeof(msg)));
+ ut_asserteq_str("Reset Status: WARM", msg);
+
+ /* Device 2 is the cold sysreset device */
+ ut_assertok(uclass_get_device(UCLASS_SYSRESET, 2, &dev));
+ ut_assertok(sysreset_get_status(dev, msg, sizeof(msg)));
+ ut_asserteq_str("Reset Status: COLD", msg);
+
+ return 0;
+}
+
+DM_TEST(dm_test_sysreset_get_status, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT);
+
/* Test that we can walk through the sysreset devices */
static int dm_test_sysreset_walk(struct unit_test_state *uts)
{
--
2.11.0
More information about the U-Boot
mailing list