From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-19.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 586E1C4338F for ; Thu, 29 Jul 2021 01:23:49 +0000 (UTC) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 6B56B6103B for ; Thu, 29 Jul 2021 01:23:48 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 6B56B6103B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id CABBB82DE6; Thu, 29 Jul 2021 03:23:36 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="iV0Fy96l"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id AA94D82DDE; Thu, 29 Jul 2021 03:23:24 +0200 (CEST) Received: from mail-oi1-x236.google.com (mail-oi1-x236.google.com [IPv6:2607:f8b0:4864:20::236]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id ADF9782DC3 for ; Thu, 29 Jul 2021 03:23:19 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-oi1-x236.google.com with SMTP id x15so6230179oic.9 for ; Wed, 28 Jul 2021 18:23:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Qzb1DhGLOYJADq4mtLJQTDG27YWTBT1jFA0NPXLGQQY=; b=iV0Fy96lZC6qj6Mfd1tbhIM+TYCwQD0jczy0uUiiir20VKvpJhP+MRMn9THN66weIV W+f0YcYnHBNRmfUMfVDdGPsbULNVt4l2ELmNhBsxWb88beBjIo5tsEcxINqmar/XaBlX tXmy6l0IpRsg/vCMX2zObMCzAbTlGWzVG6LkM= 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:mime-version:content-transfer-encoding; bh=Qzb1DhGLOYJADq4mtLJQTDG27YWTBT1jFA0NPXLGQQY=; b=QjcxwKsn97xTzZ5ioQB2c7S+PSCG44rt3raolc0UjD4X8XBf6IlUJqRH34QfXUdPSK cQtThFt1l+a9/UQ4F8boR11gJcAmDyh/av9hWr7AGMq8OvXfLXGp2unpW+Sa2dX098nq 84s7b0TIyxMLNkPkLhkCNVsZAGfprHIngAGdX/xHdvVqmMuE//pXbEbUvtY3Rj51Rn9z 8cwnVQoDRcEYk70nIFezrQOYUddVmOrb/Uk83uQh57SNGWyYUeXqxV2232evUZKXVeKE odUwtj+NO5aUmT3oTD9o3mmEg6rvZyM+/3qqRRNhFw4DWt8p11mWofOGAHIFqZNEsTls pvrw== X-Gm-Message-State: AOAM532HVYYExzkYpw+0u+gv4G1JGB8eGyDNeki1cptVxYI1daGzXluB qDq23hrkrHohMVberGYUKXudMnvZqQ2/g5b1 X-Google-Smtp-Source: ABdhPJxqtQ85otvJOPOOkmfTlGCmtfuqwoYyA3ZBqsAoKzGtqYgI3Vx3B0UEzffoEFvzQHh9N6H/Tw== X-Received: by 2002:aca:d7d5:: with SMTP id o204mr1437897oig.69.1627521798175; Wed, 28 Jul 2021 18:23:18 -0700 (PDT) Received: from kiwi.bld.corp.google.com (c-67-190-101-114.hsd1.co.comcast.net. [67.190.101.114]) by smtp.gmail.com with ESMTPSA id l11sm308867otf.1.2021.07.28.18.23.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Jul 2021 18:23:17 -0700 (PDT) From: Simon Glass To: U-Boot Mailing List Cc: Tom Rini , Simon Glass , Walter Lozano Subject: [PATCH 2/3] dtoc: Fix widening an int array to an int Date: Wed, 28 Jul 2021 19:23:10 -0600 Message-Id: <20210729012311.1406847-3-sjg@chromium.org> X-Mailer: git-send-email 2.32.0.432.gabb21c7263-goog In-Reply-To: <20210729012311.1406847-1-sjg@chromium.org> References: <20210729012311.1406847-1-sjg@chromium.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean An int array can hold a single int so we should not need to do anything in the widening operation. However due to a quirk in the code, an int[3] widened with an int produced an int[4]. Fix this and add a test. Fix a comment typo while we are here. Signed-off-by: Simon Glass Reported-by: Tom Rini --- test/dm/of_platdata.c | 4 +--- tools/dtoc/fdt.py | 15 ++++++++------- tools/dtoc/test_dtoc.py | 6 +++--- tools/dtoc/test_fdt.py | 11 ++++++++++- 4 files changed, 22 insertions(+), 14 deletions(-) diff --git a/test/dm/of_platdata.c b/test/dm/of_platdata.c index 0f89c7a7da8..e3fa01afddf 100644 --- a/test/dm/of_platdata.c +++ b/test/dm/of_platdata.c @@ -35,11 +35,10 @@ static int dm_test_of_plat_props(struct unit_test_state *uts) plat = dev_get_plat(dev); ut_assert(plat->boolval); ut_asserteq(1, plat->intval); - ut_asserteq(4, ARRAY_SIZE(plat->intarray)); + ut_asserteq(3, ARRAY_SIZE(plat->intarray)); ut_asserteq(2, plat->intarray[0]); ut_asserteq(3, plat->intarray[1]); ut_asserteq(4, plat->intarray[2]); - ut_asserteq(0, plat->intarray[3]); ut_asserteq(5, plat->byteval); ut_asserteq(3, ARRAY_SIZE(plat->bytearray)); ut_asserteq(6, plat->bytearray[0]); @@ -61,7 +60,6 @@ static int dm_test_of_plat_props(struct unit_test_state *uts) ut_asserteq(5, plat->intarray[0]); ut_asserteq(0, plat->intarray[1]); ut_asserteq(0, plat->intarray[2]); - ut_asserteq(0, plat->intarray[3]); ut_asserteq(8, plat->byteval); ut_asserteq(3, ARRAY_SIZE(plat->bytearray)); ut_asserteq(1, plat->bytearray[0]); diff --git a/tools/dtoc/fdt.py b/tools/dtoc/fdt.py index 9749966d5fb..429e95f9a96 100644 --- a/tools/dtoc/fdt.py +++ b/tools/dtoc/fdt.py @@ -163,13 +163,14 @@ class Prop: self.value = new_value self.type = newprop.type - if type(newprop.value) == list and type(self.value) != list: - self.value = [self.value] - - if type(self.value) == list and len(newprop.value) > len(self.value): - val = self.GetEmpty(self.type) - while len(self.value) < len(newprop.value): - self.value.append(val) + if type(newprop.value) == list: + if type(self.value) != list: + self.value = [self.value] + + if len(newprop.value) > len(self.value): + val = self.GetEmpty(self.type) + while len(self.value) < len(newprop.value): + self.value.append(val) @classmethod def GetEmpty(self, type): diff --git a/tools/dtoc/test_dtoc.py b/tools/dtoc/test_dtoc.py index 863ede90b7a..44d5d0c354a 100755 --- a/tools/dtoc/test_dtoc.py +++ b/tools/dtoc/test_dtoc.py @@ -296,7 +296,7 @@ struct dtd_sandbox_spl_test { \tbool\t\tboolval; \tunsigned char\tbytearray[3]; \tunsigned char\tbyteval; -\tfdt32_t\t\tintarray[4]; +\tfdt32_t\t\tintarray[3]; \tfdt32_t\t\tintval; \tunsigned char\tlongbytearray[9]; \tunsigned char\tnotstring[5]; @@ -354,7 +354,7 @@ static struct dtd_sandbox_spl_test dtv_spl_test = { \t.boolval\t\t= true, \t.bytearray\t\t= {0x6, 0x0, 0x0}, \t.byteval\t\t= 0x5, -\t.intarray\t\t= {0x2, 0x3, 0x4, 0x0}, +\t.intarray\t\t= {0x2, 0x3, 0x4}, \t.intval\t\t\t= 0x1, \t.longbytearray\t\t= {0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10, \t\t0x11}, @@ -377,7 +377,7 @@ static struct dtd_sandbox_spl_test dtv_spl_test2 = { \t.acpi_name\t\t= "\\\\_SB.GPO0", \t.bytearray\t\t= {0x1, 0x23, 0x34}, \t.byteval\t\t= 0x8, -\t.intarray\t\t= {0x5, 0x0, 0x0, 0x0}, +\t.intarray\t\t= {0x5, 0x0, 0x0}, \t.intval\t\t\t= 0x3, \t.longbytearray\t\t= {0x9, 0xa, 0xb, 0xc, 0x0, 0x0, 0x0, 0x0, \t\t0x0}, diff --git a/tools/dtoc/test_fdt.py b/tools/dtoc/test_fdt.py index 856392b1bd9..857861c14ed 100755 --- a/tools/dtoc/test_fdt.py +++ b/tools/dtoc/test_fdt.py @@ -379,7 +379,7 @@ class TestProp(unittest.TestCase): self.assertEqual(Type.INT, prop.type) self.assertEqual(1, fdt32_to_cpu(prop.value)) - # Convert singla value to array + # Convert single value to array prop2 = self.node.props['intarray'] prop.Widen(prop2) self.assertEqual(Type.INT, prop.type) @@ -422,6 +422,15 @@ class TestProp(unittest.TestCase): self.assertTrue(isinstance(prop.value, list)) self.assertEqual(3, len(prop.value)) + # Widen an array of ints with an int (should do nothing) + prop = self.node.props['intarray'] + prop2 = node2.props['intarray'] + self.assertEqual(Type.INT, prop.type) + self.assertEqual(3, len(prop.value)) + prop.Widen(prop2) + self.assertEqual(Type.INT, prop.type) + self.assertEqual(3, len(prop.value)) + def testAdd(self): """Test adding properties""" self.fdt.pack() -- 2.32.0.432.gabb21c7263-goog