Received: by 10.223.185.116 with SMTP id b49csp3266457wrg; Sun, 25 Feb 2018 18:27:26 -0800 (PST) X-Google-Smtp-Source: AH8x2249Tq0dUA1UMjZsQonf1H68JT1O/ASHzpGoabixxhdtZp8Zz0z1yZqi/G2ZFoOkiM4Upvfz X-Received: by 2002:a17:902:61:: with SMTP id 88-v6mr9303216pla.428.1519612046118; Sun, 25 Feb 2018 18:27:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519612046; cv=none; d=google.com; s=arc-20160816; b=lXssgfUcVjOBj0C1GZQXePkDU0DTs0RrPkE/72DFI4uY26DesHcUOQNjfyhTk0OhOS nwoA2+PYF+APS7QM0wHIiURX8ycfVtKzJHRYQmc5+mp6ovSCOUUabZ8LUAlwHt+WGIdp tZaFxwsThsDJLVctBRXR90afk3m66qCW0KHEOYsw/3ZVh/821pbDQtmNEEc0sprQcOAF X9379SJg95kSJn+Udawf78ccBva9M0A9sx4K9hI5MXDlWJaLxrtqDoUDzbsV+QPbmilX 6w36L8n9aVuIfMINywOMKY4YzdSb+9JqEhc7Kv5A0pCu+qGVWd6eEJ6EXjIgkJ0/JwVt hsXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=HMmDruHVfBO7hMrH/A8GuvFjTsCcKoRU0p5Eoj0YOok=; b=qqy5KfsVgIbEu1OeE/Ufqaf4DZaoJU91n2V0L1vmUGT+hWvhS7JocToifWr851H8WN /4p4Wvo8E/7SJvdZN7cJr4qiWMY0pF4HNtdLa013H2GRLwHnLlbPnyWGAYTDp4TlJr7U 7W/m5x2NWAiWtHsBmrmBq3V1RFuUh4PqzkMsDr91khGNBTsPAHx2k7kgXnLPpNof+lvK mJ1kzQR6p7XKNCOLTSSUd8MIWSraSneVzC8oiOsbCEYVtwELdPbizTl5AmUBHvgJUNvB BGd5FH+6KeIYPhuehzfpUMnDPPWDkDuHeUT2YSBCXku1KNp+Xrqo1JkEu0JQ3pv7YjuI O9EQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=A/NYaIFj; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id bf3-v6si2120530plb.477.2018.02.25.18.27.11; Sun, 25 Feb 2018 18:27:26 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=A/NYaIFj; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752184AbeBZCYz (ORCPT + 99 others); Sun, 25 Feb 2018 21:24:55 -0500 Received: from mail-pg0-f67.google.com ([74.125.83.67]:41632 "EHLO mail-pg0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751968AbeBZCXZ (ORCPT ); Sun, 25 Feb 2018 21:23:25 -0500 Received: by mail-pg0-f67.google.com with SMTP id q27so4031304pgn.8; Sun, 25 Feb 2018 18:23:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=HMmDruHVfBO7hMrH/A8GuvFjTsCcKoRU0p5Eoj0YOok=; b=A/NYaIFjB5/yE7T/etxuIiWOytSlvyFqCkx9FlwEhM2Htp2RyRmKwCOgK6EPkLKoh5 Csimyn5AGsnTYK7FJU0PwL/qvagOxx3GmSnjXev7/mvgBgGVsG2/iLmJ0DJopdTB/wwW a3t1+iaLmGTMjWRSlLtLCb3Xi6K1jVzOKy/jazS8tR1IFechPXn4FoYop17fdjm3XFM3 dW6ffo8NlXqelGSWHxQXA9r0BcbI5wDduLd8fI9G6l3xnXamn8KqAv0lfcyhcNYTcHQD x30BkG7wU1m/PmghBtq1J/fDvXX+u1xBi9jp/GoHajLcBh5RyYnP2/GiEPmq+cUD5ym4 4TSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=HMmDruHVfBO7hMrH/A8GuvFjTsCcKoRU0p5Eoj0YOok=; b=rC5D3Zs3amRvVuirI1F2/HKg2w38ewXnkd8qnReN0ps3AYu9z+lBaF6MN7+599543K xjVhdzSm3sAHlV3rSVDE0i0M/CGm5QrJCK032UQNA5FoaKNDB3cQqMaAIdhe72d7eUWQ qe6/dAxcfbUWswtRksf6z6x6Ey17dNNZ8pKNXAvVQwZPs5BiG2R0Hlx95EXesJ89jHk0 bXF+L3t71sCIRxOs2uQ4ftod+bLSpsuxPja3fN9LozP/c9Po+HZ1V+rJ3Dxnlp+8akO1 dMDeYgAzIhE+mwi1gD8LteKx1S0p16VPF26imGLaPGgp5QkuKuIxBHAzPbOtatsg4WFE NnDA== X-Gm-Message-State: APf1xPChqfM8fi8dDmfKOpsJupNQBKgNVggZebuIJRTSO3eIBVfshs39 leUakEpb3FkA+kvvqPllBrc= X-Received: by 10.99.99.2 with SMTP id x2mr7259503pgb.406.1519611804943; Sun, 25 Feb 2018 18:23:24 -0800 (PST) Received: from localhost.localdomain (c-73-93-215-6.hsd1.ca.comcast.net. [73.93.215.6]) by smtp.gmail.com with ESMTPSA id b6sm17690617pfm.160.2018.02.25.18.23.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 25 Feb 2018 18:23:24 -0800 (PST) From: frowand.list@gmail.com To: Rob Herring , pantelis.antoniou@konsulko.com, Pantelis Antoniou Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, geert@linux-m68k.org Subject: [PATCH 1/6] of: unittest: clean up changeset test Date: Sun, 25 Feb 2018 18:22:25 -0800 Message-Id: <1519611750-22355-2-git-send-email-frowand.list@gmail.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1519611750-22355-1-git-send-email-frowand.list@gmail.com> References: <1519611750-22355-1-git-send-email-frowand.list@gmail.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Frank Rowand 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 --- checkpatch warnings for "line over 80 characters" are for unittest code in a function with long lines as a normal style. drivers/of/unittest.c | 42 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/drivers/of/unittest.c b/drivers/of/unittest.c index 7a9abaae874d..490bbee0cf87 100644 --- a/drivers/of/unittest.c +++ b/drivers/of/unittest.c @@ -562,42 +562,72 @@ static void __init of_unittest_property_copy(void) static void __init of_unittest_changeset(void) { #ifdef CONFIG_OF_DYNAMIC - struct property *ppadd, padd = { .name = "prop-add", .length = 0, .value = "" }; + struct property *ppadd, padd = { .name = "prop-add", .length = 1, .value = "" }; + struct property *ppname_n1, pname_n1 = { .name = "name", .length = 3, .value = "n1" }; + struct property *ppname_n2, pname_n2 = { .name = "name", .length = 3, .value = "n2" }; + struct property *ppname_n21, pname_n21 = { .name = "name", .length = 3, .value = "n21" }; struct property *ppupdate, pupdate = { .name = "prop-update", .length = 5, .value = "abcd" }; struct property *ppremove; - struct device_node *n1, *n2, *n21, *nremove, *parent, *np; + struct device_node *n1, *n2, *n21, *nchangeset, *nremove, *parent, *np; struct of_changeset chgset; n1 = __of_node_dup(NULL, "/testcase-data/changeset/n1"); unittest(n1, "testcase setup failure\n"); + n2 = __of_node_dup(NULL, "/testcase-data/changeset/n2"); unittest(n2, "testcase setup failure\n"); + n21 = __of_node_dup(NULL, "%s/%s", "/testcase-data/changeset/n2", "n21"); unittest(n21, "testcase setup failure %p\n", n21); - nremove = of_find_node_by_path("/testcase-data/changeset/node-remove"); + + nchangeset = of_find_node_by_path("/testcase-data/changeset"); + nremove = of_get_child_by_name(nchangeset, "node-remove"); unittest(nremove, "testcase setup failure\n"); + ppadd = __of_prop_dup(&padd, GFP_KERNEL); unittest(ppadd, "testcase setup failure\n"); + + ppname_n1 = __of_prop_dup(&pname_n1, GFP_KERNEL); + unittest(ppname_n1, "testcase setup failure\n"); + + ppname_n2 = __of_prop_dup(&pname_n2, GFP_KERNEL); + unittest(ppname_n2, "testcase setup failure\n"); + + ppname_n21 = __of_prop_dup(&pname_n21, GFP_KERNEL); + unittest(ppname_n21, "testcase setup failure\n"); + ppupdate = __of_prop_dup(&pupdate, GFP_KERNEL); unittest(ppupdate, "testcase setup failure\n"); - parent = nremove->parent; + + parent = nchangeset; n1->parent = parent; n2->parent = parent; n21->parent = n2; - n2->child = n21; + ppremove = of_find_property(parent, "prop-remove", NULL); unittest(ppremove, "failed to find removal prop"); of_changeset_init(&chgset); + unittest(!of_changeset_attach_node(&chgset, n1), "fail attach n1\n"); + unittest(!of_changeset_add_property(&chgset, n1, ppname_n1), "fail add prop name\n"); + unittest(!of_changeset_attach_node(&chgset, n2), "fail attach n2\n"); + unittest(!of_changeset_add_property(&chgset, n2, ppname_n2), "fail add prop name\n"); + unittest(!of_changeset_detach_node(&chgset, nremove), "fail remove node\n"); + unittest(!of_changeset_add_property(&chgset, n21, ppname_n21), "fail add prop name\n"); + unittest(!of_changeset_attach_node(&chgset, n21), "fail attach n21\n"); - unittest(!of_changeset_add_property(&chgset, parent, ppadd), "fail add prop\n"); + + unittest(!of_changeset_add_property(&chgset, parent, ppadd), "fail add prop prop-add\n"); unittest(!of_changeset_update_property(&chgset, parent, ppupdate), "fail update prop\n"); unittest(!of_changeset_remove_property(&chgset, parent, ppremove), "fail remove prop\n"); + unittest(!of_changeset_apply(&chgset), "apply failed\n"); + of_node_put(nchangeset); + /* Make sure node names are constructed correctly */ unittest((np = of_find_node_by_path("/testcase-data/changeset/n2/n21")), "'%pOF' not added\n", n21); -- Frank Rowand