]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - test/dm/test-uclass.c
dm: test: Allow test names to leave out the dm_test_ prefix
[karo-tx-uboot.git] / test / dm / test-uclass.c
index 017e097928c7c29c2aadfd0c80f187833d258574..4a543bb6218d126f8db163c25aeb5b9b402b62ca 100644 (file)
 #include <malloc.h>
 #include <dm.h>
 #include <errno.h>
-#include <dm/test.h>
-#include <dm/ut.h>
 #include <asm/io.h>
+#include <dm/test.h>
 #include <linux/list.h>
+#include <test/ut.h>
 
-static struct dm_test_state *dms = &global_test_state;
+static struct unit_test_state *uts = &global_dm_test_state;
 
 int test_ping(struct udevice *dev, int pingval, int *pingret)
 {
@@ -30,7 +30,17 @@ int test_ping(struct udevice *dev, int pingval, int *pingret)
 
 static int test_post_bind(struct udevice *dev)
 {
+       struct dm_test_perdev_uc_pdata *uc_pdata;
+
        dm_testdrv_op_count[DM_TEST_OP_POST_BIND]++;
+       ut_assert(!device_active(dev));
+
+       uc_pdata = dev_get_uclass_platdata(dev);
+       ut_assert(uc_pdata);
+
+       uc_pdata->intval1 = TEST_UC_PDATA_INTVAL1;
+       uc_pdata->intval2 = TEST_UC_PDATA_INTVAL2;
+       uc_pdata->intval3 = TEST_UC_PDATA_INTVAL3;
 
        return 0;
 }
@@ -42,13 +52,25 @@ static int test_pre_unbind(struct udevice *dev)
        return 0;
 }
 
+static int test_pre_probe(struct udevice *dev)
+{
+       struct dm_test_uclass_perdev_priv *priv = dev_get_uclass_priv(dev);
+
+       dm_testdrv_op_count[DM_TEST_OP_PRE_PROBE]++;
+       ut_assert(priv);
+       ut_assert(device_active(dev));
+
+       return 0;
+}
+
 static int test_post_probe(struct udevice *dev)
 {
        struct udevice *prev = list_entry(dev->uclass_node.prev,
                                            struct udevice, uclass_node);
 
-       struct dm_test_uclass_perdev_priv *priv = dev->uclass_priv;
+       struct dm_test_uclass_perdev_priv *priv = dev_get_uclass_priv(dev);
        struct uclass *uc = dev->uclass;
+       struct dm_test_state *dms = uts->priv;
 
        dm_testdrv_op_count[DM_TEST_OP_POST_PROBE]++;
        ut_assert(priv);
@@ -58,7 +80,7 @@ static int test_post_probe(struct udevice *dev)
                return 0;
        if (&prev->uclass_node != &uc->dev_head) {
                struct dm_test_uclass_perdev_priv *prev_uc_priv
-                               = prev->uclass_priv;
+                               = dev_get_uclass_priv(prev);
                struct dm_test_pdata *pdata = prev->platdata;
 
                ut_assert(pdata);
@@ -96,10 +118,13 @@ UCLASS_DRIVER(test) = {
        .id             = UCLASS_TEST,
        .post_bind      = test_post_bind,
        .pre_unbind     = test_pre_unbind,
+       .pre_probe      = test_pre_probe,
        .post_probe     = test_post_probe,
        .pre_remove     = test_pre_remove,
        .init           = test_init,
        .destroy        = test_destroy,
        .priv_auto_alloc_size   = sizeof(struct dm_test_uclass_priv),
        .per_device_auto_alloc_size = sizeof(struct dm_test_uclass_perdev_priv),
+       .per_device_platdata_auto_alloc_size =
+                                       sizeof(struct dm_test_perdev_uc_pdata),
 };