aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/of/unittest.c
diff options
context:
space:
mode:
authorFrank Rowand <frank.rowand@sony.com>2018-02-26 17:01:22 -0500
committerRob Herring <robh@kernel.org>2018-03-05 16:37:19 -0500
commita4f91f0de905dd6f91ab12dd8bfda10317fa43eb (patch)
tree3f55f61d58b893226665de80a29a7e865c014c6d /drivers/of/unittest.c
parentb46c78661c42cb8b07eb213104c79cbab8ea7e0d (diff)
of: unittest: clean up changeset test
In preparation for fixing __of_node_dup(), clean up the unittest function that calls it. Devicetree nodes created from a flattened device tree have a name property. Follow this convention for nodes added by a changeset. For node added by changeset, remove incorrect initialization of child node pointer. Add an additional node pointer 'changeset' to more naturally reflect where in the tree the changeset is added. Make changeset add property error messages unique. Add whitespace to break apart logic blocks. Signed-off-by: Frank Rowand <frank.rowand@sony.com> Signed-off-by: Rob Herring <robh@kernel.org>
Diffstat (limited to 'drivers/of/unittest.c')
-rw-r--r--drivers/of/unittest.c42
1 files changed, 36 insertions, 6 deletions
diff --git a/drivers/of/unittest.c b/drivers/of/unittest.c
index 1a984586ef5c..a17195fcaeda 100644
--- a/drivers/of/unittest.c
+++ b/drivers/of/unittest.c
@@ -683,42 +683,72 @@ static void __init of_unittest_property_copy(void)
683static void __init of_unittest_changeset(void) 683static void __init of_unittest_changeset(void)
684{ 684{
685#ifdef CONFIG_OF_DYNAMIC 685#ifdef CONFIG_OF_DYNAMIC
686 struct property *ppadd, padd = { .name = "prop-add", .length = 0, .value = "" }; 686 struct property *ppadd, padd = { .name = "prop-add", .length = 1, .value = "" };
687 struct property *ppname_n1, pname_n1 = { .name = "name", .length = 3, .value = "n1" };
688 struct property *ppname_n2, pname_n2 = { .name = "name", .length = 3, .value = "n2" };
689 struct property *ppname_n21, pname_n21 = { .name = "name", .length = 3, .value = "n21" };
687 struct property *ppupdate, pupdate = { .name = "prop-update", .length = 5, .value = "abcd" }; 690 struct property *ppupdate, pupdate = { .name = "prop-update", .length = 5, .value = "abcd" };
688 struct property *ppremove; 691 struct property *ppremove;
689 struct device_node *n1, *n2, *n21, *nremove, *parent, *np; 692 struct device_node *n1, *n2, *n21, *nchangeset, *nremove, *parent, *np;
690 struct of_changeset chgset; 693 struct of_changeset chgset;
691 694
692 n1 = __of_node_dup(NULL, "/testcase-data/changeset/n1"); 695 n1 = __of_node_dup(NULL, "/testcase-data/changeset/n1");
693 unittest(n1, "testcase setup failure\n"); 696 unittest(n1, "testcase setup failure\n");
697
694 n2 = __of_node_dup(NULL, "/testcase-data/changeset/n2"); 698 n2 = __of_node_dup(NULL, "/testcase-data/changeset/n2");
695 unittest(n2, "testcase setup failure\n"); 699 unittest(n2, "testcase setup failure\n");
700
696 n21 = __of_node_dup(NULL, "%s/%s", "/testcase-data/changeset/n2", "n21"); 701 n21 = __of_node_dup(NULL, "%s/%s", "/testcase-data/changeset/n2", "n21");
697 unittest(n21, "testcase setup failure %p\n", n21); 702 unittest(n21, "testcase setup failure %p\n", n21);
698 nremove = of_find_node_by_path("/testcase-data/changeset/node-remove"); 703
704 nchangeset = of_find_node_by_path("/testcase-data/changeset");
705 nremove = of_get_child_by_name(nchangeset, "node-remove");
699 unittest(nremove, "testcase setup failure\n"); 706 unittest(nremove, "testcase setup failure\n");
707
700 ppadd = __of_prop_dup(&padd, GFP_KERNEL); 708 ppadd = __of_prop_dup(&padd, GFP_KERNEL);
701 unittest(ppadd, "testcase setup failure\n"); 709 unittest(ppadd, "testcase setup failure\n");
710
711 ppname_n1 = __of_prop_dup(&pname_n1, GFP_KERNEL);
712 unittest(ppname_n1, "testcase setup failure\n");
713
714 ppname_n2 = __of_prop_dup(&pname_n2, GFP_KERNEL);
715 unittest(ppname_n2, "testcase setup failure\n");
716
717 ppname_n21 = __of_prop_dup(&pname_n21, GFP_KERNEL);
718 unittest(ppname_n21, "testcase setup failure\n");
719
702 ppupdate = __of_prop_dup(&pupdate, GFP_KERNEL); 720 ppupdate = __of_prop_dup(&pupdate, GFP_KERNEL);
703 unittest(ppupdate, "testcase setup failure\n"); 721 unittest(ppupdate, "testcase setup failure\n");
704 parent = nremove->parent; 722
723 parent = nchangeset;
705 n1->parent = parent; 724 n1->parent = parent;
706 n2->parent = parent; 725 n2->parent = parent;
707 n21->parent = n2; 726 n21->parent = n2;
708 n2->child = n21; 727
709 ppremove = of_find_property(parent, "prop-remove", NULL); 728 ppremove = of_find_property(parent, "prop-remove", NULL);
710 unittest(ppremove, "failed to find removal prop"); 729 unittest(ppremove, "failed to find removal prop");
711 730
712 of_changeset_init(&chgset); 731 of_changeset_init(&chgset);
732
713 unittest(!of_changeset_attach_node(&chgset, n1), "fail attach n1\n"); 733 unittest(!of_changeset_attach_node(&chgset, n1), "fail attach n1\n");
734 unittest(!of_changeset_add_property(&chgset, n1, ppname_n1), "fail add prop name\n");
735
714 unittest(!of_changeset_attach_node(&chgset, n2), "fail attach n2\n"); 736 unittest(!of_changeset_attach_node(&chgset, n2), "fail attach n2\n");
737 unittest(!of_changeset_add_property(&chgset, n2, ppname_n2), "fail add prop name\n");
738
715 unittest(!of_changeset_detach_node(&chgset, nremove), "fail remove node\n"); 739 unittest(!of_changeset_detach_node(&chgset, nremove), "fail remove node\n");
740 unittest(!of_changeset_add_property(&chgset, n21, ppname_n21), "fail add prop name\n");
741
716 unittest(!of_changeset_attach_node(&chgset, n21), "fail attach n21\n"); 742 unittest(!of_changeset_attach_node(&chgset, n21), "fail attach n21\n");
717 unittest(!of_changeset_add_property(&chgset, parent, ppadd), "fail add prop\n"); 743
744 unittest(!of_changeset_add_property(&chgset, parent, ppadd), "fail add prop prop-add\n");
718 unittest(!of_changeset_update_property(&chgset, parent, ppupdate), "fail update prop\n"); 745 unittest(!of_changeset_update_property(&chgset, parent, ppupdate), "fail update prop\n");
719 unittest(!of_changeset_remove_property(&chgset, parent, ppremove), "fail remove prop\n"); 746 unittest(!of_changeset_remove_property(&chgset, parent, ppremove), "fail remove prop\n");
747
720 unittest(!of_changeset_apply(&chgset), "apply failed\n"); 748 unittest(!of_changeset_apply(&chgset), "apply failed\n");
721 749
750 of_node_put(nchangeset);
751
722 /* Make sure node names are constructed correctly */ 752 /* Make sure node names are constructed correctly */
723 unittest((np = of_find_node_by_path("/testcase-data/changeset/n2/n21")), 753 unittest((np = of_find_node_by_path("/testcase-data/changeset/n2/n21")),
724 "'%pOF' not added\n", n21); 754 "'%pOF' not added\n", n21);