Received: by 10.223.185.116 with SMTP id b49csp4252851wrg; Mon, 26 Feb 2018 14:06:50 -0800 (PST) X-Google-Smtp-Source: AH8x225KrD7vWdhKzdAxxOmWpdrp5XrRbkNUTwgAAzQcTMRDfoq08SNREcz5NvGxRzprdvPiz/yi X-Received: by 2002:a17:902:6041:: with SMTP id a1-v6mr11785843plt.225.1519682810863; Mon, 26 Feb 2018 14:06:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519682810; cv=none; d=google.com; s=arc-20160816; b=F5gJfksQoJP1iw37ptfwnFWp8214bOVhyR8W81nsUgBOxZTIyEWtCMc9IyyUTVJRRK Wmwg60Mqz0JY9al9H+h4/YiNq5erOtEKTzvjygtQx08nBjKLQdAM7uxZlQbkRT2BqMpv 2e4fWMERjsaeS4BhzuMPiCnGFf8D0qIZtJ39AbAoqreJodORtYaem8YWvUFjvxVtG7NQ GEWndgQm0Egm91VxnhlG7ykHQBpxsFCdQA5n6nEUD7jsLLUpIVJLLqa5dbd7ORCOSwaI lT56SlbkoczZ7Sc4Ovo2prlB+LGdRZ1ci+NjsvyDoqfq005pkqfQEgNvxD12WghOIRL/ axFg== 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=LLiidQs60joDunpf0DrlDpq8abhgcN/BApoIVwoEJ14=; b=Na7gQFSszvGNNx8FOhJVzkL7M62AEe1T9cSL++H3GGQrft+gRdF4RYy11pZBf9DGLb aWCVSCr/P6fN4X0jS95zf6b8QKcbdEYlt+DRiHKJvphTNMUFXnWxm5hcObReKz0aj7UA 8QQuhu2xKwuLNiSehnIeJfW3zWUS/bfcLTIYHDyynioCq+HC7Qc8XPztb45gDs5U3ekf AkO/qtk3ap2aYXtkH03rY504IIzV7MyiYWfWcYuR5hpq6uj2qsh9vkoujFyNcn9WJuaX dsQnu7TI+b5DF5FKIFJvkUB4eGCDPu+xVzmJCNf9Qysd3ucelhNwXCa8HNJaI873MW4Q yXTQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=mWbZ25Sc; 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 14-v6si7340409ple.47.2018.02.26.14.06.34; Mon, 26 Feb 2018 14:06:50 -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=mWbZ25Sc; 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 S1751813AbeBZWCM (ORCPT + 99 others); Mon, 26 Feb 2018 17:02:12 -0500 Received: from mail-pf0-f195.google.com ([209.85.192.195]:37090 "EHLO mail-pf0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751752AbeBZWCK (ORCPT ); Mon, 26 Feb 2018 17:02:10 -0500 Received: by mail-pf0-f195.google.com with SMTP id s24so7092247pfm.4; Mon, 26 Feb 2018 14:02:09 -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=LLiidQs60joDunpf0DrlDpq8abhgcN/BApoIVwoEJ14=; b=mWbZ25ScBNfdU36NMY8VKzOZMLo1qYHFsye1OPIy/ziQbBjLYFv5rJYj5i53HKV8H5 hm1QySDjOqwPlWbRtQETOWUIcd87jnjrmMImD4bt1SgTj7LpsvtCECSyPfQUdZmO0vRY tE1EcJOwlm4P1tMpgE7RamQ01TOeJnqd/tBfo4XDqbQPMc4tIynm5rL41DeQgO+24vmv gEcCBksU7sfVyaCuDh7KLNqh60Ibe7OJpRSaamRJ9RnlzRqW2GiPeR90EeAYgppAX2N4 Htq38QYQ3AAaiW8fcgpJmW2+Y20rllHZ9tqxxSMD+1BbJ1m3okBCsuFf2L3x4oX+xkAq 9Chg== 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=LLiidQs60joDunpf0DrlDpq8abhgcN/BApoIVwoEJ14=; b=YmV1ddc18bhrISEUaSpWojsoYUWDVbMTf7QcyUztDc5S0mem4u5vk5wWhO3vZIAspN vVBASU/W2ljfH4GpeHRSNloO048IdNjwOdpVkr7Uors1U8GhFiKNOEGgGuRjxbbzbI5w DahFk1RqilQpMOxyPFtL3ujDBySp+6U1N7mdhu6G2xiS21Wcu8rZNj9Eoz9BZmstJot5 C0H+Vk4ScD1PrSpeMX33Gp1aowRx+bjPTBJZCw7z8ZuN5F5DYxYY+k8X3aEt3tJE3sFr fwne3ND2njmbZys/CRz5aHGRH6lK6eNqDfxeP7aSpj7ZBHvAiTTdZQHPRLbuJxsGDAuG ZDDw== X-Gm-Message-State: APf1xPC4TjOkv0d6mzw4VDuF3dLKQqcpgcBlcqrGttz2PfuyvD4T3fDI jAgV8XeqWk8LokYCwGOivCY= X-Received: by 10.99.0.207 with SMTP id 198mr8032099pga.364.1519682529483; Mon, 26 Feb 2018 14:02:09 -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 c184sm2259513pfc.0.2018.02.26.14.02.08 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 26 Feb 2018 14:02:08 -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 v2 1/2] of: unittest: clean up changeset test Date: Mon, 26 Feb 2018 14:01:22 -0800 Message-Id: <1519682483-19828-2-git-send-email-frowand.list@gmail.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1519682483-19828-1-git-send-email-frowand.list@gmail.com> References: <1519682483-19828-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 --- no changes from v1 Checkpatch warnings are "line over 80 characters" and are consistent with the style of the surrounding code. 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