From patchwork Wed Apr 15 18:31:30 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 4537 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 9F1BB3F2F2 for ; Wed, 15 Apr 2026 20:33:10 +0200 (CEST) Received: by mail-wm1-f71.google.com with SMTP id 5b1f17b1804b1-488d2cd2674sf60380005e9.0 for ; Wed, 15 Apr 2026 11:33:10 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1776277990; cv=pass; d=google.com; s=arc-20240605; b=E9rLubFv6fh35al1Z+lRWalR63D4VjQWfuF2ZmPvhLJIOOQwXBl26zuZRsIyR2rGkW vg3LJPzwfaN66EZtDj4bR0nUZMAEFsPNHWualvsPmP6Uri6MlSc8AUimWZiFogZz2cuQ Jyjqg33kaOOu0Z7HikHJH6HsFhNjtcBEEVG9wSxxU9yWRViZltXjV5KaECRJb8jdP7TC y0GWsZqA5/R6woQywJ2jmA+mksh6E7gUqcSyD23SIV5fOGZSA7cEUv3VFoxUM1CWSVhi qCRIlT96CSfbGzoKquHj5Zx0mGVpMj3SRyM1ZNBv3cGoceylmFuxDxDx+BX/MwKJD/mt 6Y4w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=hXURwqrA574EUsLzv3lVvUlAp5Bn7mHXsflR0Mff1Bc=; fh=u6XJWC1QXeqESH+aHJrTVN8/bVrGx46TrJktPqrxp8A=; b=KFMQqlPqVwCskXQUoHk44jDTZd3Qogko/jNIw3vw9LzQzYp4UG7c721DiWKngqOzJI lQjuWrMmyrORupf6huWWPYSmpaDZMilG/V4Ixn5vNIIQ2nDC6VKZQIuvUISM8VPUfkgm HnokE5ijGat759Ubzs5rCeFWrAj2k5PQPW2Kv55zRzDbDYn8qUWOEqRJajEF9N1tHKop ROB2doaESN1sSg81hQBiry+sNuMJdvBWBCKD101OEZPHjYF6qq1r7TsuLaUnlmEOWmQR UZn7y7oIePGofzCmxm0SosF47uWxALLYgovHh81EbLZfvPou1sJR/zxMr8eguES4KX6+ cfmQ==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=Si3GuSFf; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=neutral header.i=@amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1776277990; x=1776882790; darn=patchwork.amarulasolutions.com; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=hXURwqrA574EUsLzv3lVvUlAp5Bn7mHXsflR0Mff1Bc=; b=TrnYJYKxELmlwLBKdagV0HxrVVENw1TfmkG7XR5oyzGd9az/mAYmH3750fVos5mQyo u9i0J+1bqnyeJJJMw14Az4acvs7eZUna4LC5qx/ODUi8rrHZ2nMHuJGOCMMRzBpVFgwF 0GA0is8khzOU+uxlnAfJx2Eqx3+OnaCOg1g7g= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776277990; x=1776882790; h=list-unsubscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-beenthere:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=hXURwqrA574EUsLzv3lVvUlAp5Bn7mHXsflR0Mff1Bc=; b=o8/fjaDgNpvSnGkIbN7lASagubicYcWj9S26Td9A+Qo9J3LLm8RNXHt4I8Q9uEQiim gU0N/+rQGBuOYepN5laqXCZdAG3/Zbaru0QT/sKmZOKOMA7bAo6/Z5JVsI1YG9kTpYdV lLct2aXRLz982xfdHtpLEKkej9e8lyFqHl+3C1p7+3jsxmyZGw5MztucVxnl3NJc8AdK Ugj2fEk7SHrbgHdTRsRCWg2sQq2ozGhAFUysE8atQxLWSBr8kWipmvJmFeGhwHMu/dNS kZrwa6mlbrQMA/hw19W7aEASkX+ScQZ5HT7VuO45IbeZmaBNNqZZa1O363c48lAy0A3U 68QQ== X-Forwarded-Encrypted: i=2; AFNElJ8xa/yYdak8XS/pqxY0VU0THzJ6q4seDVezhr07IA1LPaVerdMw0wwA8Tj9tkA4LujD0bcu+GqUvZ1K2OG6@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0YzN1e8K3lqOHZnzCTi/HjQea9fFc//bvamuQkwj/2j5MuPxMdse GtwhLaUoRkDm/Ct/WZjF2o+3YaWbqHzJ2G4anIumsFVCsKYHQBTkhpDR7WavY3B4Z1w2Hw== X-Received: by 2002:a05:600c:5298:b0:488:c014:34da with SMTP id 5b1f17b1804b1-488d688687cmr325857235e9.26.1776277990196; Wed, 15 Apr 2026 11:33:10 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com; h="AYAyTiIJFbVOFgtOmj7eUfOXq3I9+bSsNeqyUWiFHwWD4qlBpA==" Received: by 2002:a05:600c:6dcb:b0:485:5b8f:9459 with SMTP id 5b1f17b1804b1-488f4a79f19ls729615e9.0.-pod-prod-07-eu; Wed, 15 Apr 2026 11:33:08 -0700 (PDT) X-Received: by 2002:a05:600c:34cc:b0:488:869c:edaf with SMTP id 5b1f17b1804b1-488d67d882cmr326817405e9.8.1776277988442; Wed, 15 Apr 2026 11:33:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776277988; cv=none; d=google.com; s=arc-20240605; b=FOMdlm77Nq6EX4v+6xIBxrLAEkh8WmdNJVrJm5MCGcW/AE2wMBBXi+n75/xezalzIO R0J1HV0T5ZdIM01uVEp1BUEE/SCkHh1lCefVIzxVueDSa9o/6bVKu3U9Xg6CbkIcCqL7 /NXzCKAgcca/R7doI1SS+loWHSAO7ZRP6cBOZuBR6npHjFWItCFdjLzAB4ztNgMMk9eQ ZJHDtvlgEGpOqW1c8jSDmLNFdgPKfgM3lxRjzJrcoqf0oT97oHYeAp6VPe8V1XZV0hrV 5v0fGKKyXOv33uOQIBu8palTfIh05GMQvT7IdvOLGtiRm4wtXvnRMBn9L3Gg03C/E+YJ ZNfQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=605kfiPAmyyhG0L5m4NA62wmfJrRDN9SrX8UGlTD18M=; fh=iOSXNO20E50uqB5bSGCW5gVExo5tMbVMauwiDgp1z44=; b=Ol+Y4Zc+4WvCwPcBXjUPFDJo/tVKxh+6HFLntG5zq1ifPUCGsYn38IMGnWz/6mrxMU GGn0XiyizVYVzmO+sokjfWihQBvfV0YGeDieiMdMnZfBRi5gKPVZMa/k0gT+4iOk0JDk 0GhJAaXlwMjmEh1eOkQg0d5t2gmSvf+YgvIi/OsH7qiPv0+Ow+jstRWg/6O4Xed4ZWig B1hl3woeddLwxyutsL8BMypk0WAoVYgA9Apal8GrEUwLQ2bvAyQ/9bBnsIrvPCLh8/Hm N2AszGTDYvNYonlfcjUkoX2uUYvtNmH4iLDhKysT3RTi4UWOndJqOYGV0AOkd9PBh+Us +vuA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=Si3GuSFf; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=neutral header.i=@amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id 5b1f17b1804b1-488f208561fsor5330135e9.15.2026.04.15.11.33.08 for (Google Transport Security); Wed, 15 Apr 2026 11:33:08 -0700 (PDT) Received-SPF: pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Gm-Gg: AeBDiesmjavmtcEYKL84PXvGB8SgabJNRR2uuZwmoa0ZE1O+Ky3YNlPLXWAr9X87ERV /3gn0PUmpFDJ/SKeLY0lIZdNpX6zfnp8KUz6b5a+T+RpkHZN7338pbgzutzEOFsCvGzhBlbBZ6h 7JdUOiRCwqaRBrktYIDw6+xF+5NL/sZHRt0umkO0q/z+fpnp/68X7m7N5h4uNTfZQ6dd66Ug5pF fDuae2/xfliW/GzIJzNY7b/c+3geygb0sjEcNEkCnljRuzOdgVz36gOVpOSQl2Xg1X21SWUDV+O pTTWFAwK7qTVdt7nHRYypx9qI9I2WCTbQyj9lkwplncFa1CsK1bNIn136eWPrNXhjU+fyBzdq/S RvtRk6BbhnCceVej2VhZSlgw2+/SuB/8PVM85zGKV2ktoQw5/BeQWYelZJ4sip0RQ1T3RlUX2oM HjGSCd9f7QUvBADfyGEXCfTpk0STHun71FXQZj82TYaa+kO2PLDs24P9luW07awD4YHRK6p+6tK R230dqwz188SWKThrcWQNbZMo0NxIxg/4ir2AV+pfGfdziHqz8uPa12Wg== X-Received: by 2002:a05:600c:4e45:b0:488:9439:881a with SMTP id 5b1f17b1804b1-488d67bf6f6mr336739085e9.2.1776277987902; Wed, 15 Apr 2026 11:33:07 -0700 (PDT) Received: from dario-ThinkPad-P14s-Gen-5.amarulasolutions.com ([2.196.40.93]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-488f0e72980sm34953115e9.5.2026.04.15.11.33.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Apr 2026 11:33:07 -0700 (PDT) From: Dario Binacchi To: u-boot@lists.denx.de Cc: linux-amarula@amarulasolutions.com, Dario Binacchi , Dinesh Maniyam , Heinrich Schuchardt , Marek Vasut , Simon Glass , Tom Rini Subject: [PATCH v3 3/7] test: cmd: add unit tests for part command Date: Wed, 15 Apr 2026 20:31:30 +0200 Message-ID: <20260415183250.3031030-4-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260415183250.3031030-1-dario.binacchi@amarulasolutions.com> References: <20260415183250.3031030-1-dario.binacchi@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: dario.binacchi@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=Si3GuSFf; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=neutral header.i=@amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , Add unit tests for the 'part' command, specifically for the 'number', 'start', and 'size' subcommands. These tests establish a baseline for the current partition lookup functionality by name. This foundation will be used by subsequent patches to extend the command, ensuring consistent behavior as new features are introduced. Signed-off-by: Dario Binacchi --- Changes in v3: - Wrap the lines exceeding 80 columns - Combine run_command() and ut_asserteq() -> ut_asserteq(1, run_command( test/cmd/Makefile | 1 + test/cmd/part.c | 161 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 162 insertions(+) create mode 100644 test/cmd/part.c diff --git a/test/cmd/Makefile b/test/cmd/Makefile index 8c9f112782d0..41fe21a4541e 100644 --- a/test/cmd/Makefile +++ b/test/cmd/Makefile @@ -26,6 +26,7 @@ obj-$(CONFIG_CMD_LOADM) += loadm.o obj-$(CONFIG_CMD_MEMINFO) += meminfo.o obj-$(CONFIG_CMD_MEMORY) += mem_copy.o obj-$(CONFIG_CMD_MEM_SEARCH) += mem_search.o +obj-$(CONFIG_CMD_PART) += part.o ifdef CONFIG_CMD_PCI obj-$(CONFIG_CMD_PCI_MPS) += pci_mps.o endif diff --git a/test/cmd/part.c b/test/cmd/part.c new file mode 100644 index 000000000000..f808ddbc87eb --- /dev/null +++ b/test/cmd/part.c @@ -0,0 +1,161 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Test for part command + * + * Copyright (C) 2026 Amarula Solutions + * Written by Dario Binacchi + */ + +#include +#include +#include +#include +#include + +static struct disk_partition gpt_parts[] = { + { + .start = 48, + .size = 1, + .name = "test1", + .uuid = "c5bce7a2-03f0-4d03-9048-01ff23b9d527", + }, + { + .start = 49, + .size = 2, + .name = "test2", + .uuid = "9df346e8-2c53-4cd8-b9ac-3af83f9a9b74", + }, +}; + +static char disk_guid[UUID_STR_LEN + 1] = + "8d60b397-1bb6-4d33-80ee-b1587d24c2f8"; + +static int setup_gpt_partitions(struct unit_test_state *uts, + unsigned int mmc_dev_num) +{ + struct blk_desc *mmc_dev_desc; + char dev_str[10]; + int i; + + snprintf(dev_str, sizeof(dev_str), "%u", mmc_dev_num); + + ut_asserteq(mmc_dev_num, blk_get_device_by_str("mmc", dev_str, + &mmc_dev_desc)); + + if (CONFIG_IS_ENABLED(RANDOM_UUID)) { + for (i = 0; i < ARRAY_SIZE(gpt_parts); i++) + gen_rand_uuid_str(gpt_parts[i].uuid, + UUID_STR_FORMAT_STD); + + gen_rand_uuid_str(disk_guid, UUID_STR_FORMAT_STD); + } + + ut_assertok(gpt_restore(mmc_dev_desc, disk_guid, gpt_parts, + ARRAY_SIZE(gpt_parts))); + return 0; +} + +static int dm_test_cmd_part_number(struct unit_test_state *uts) +{ + unsigned int mmc_dev_num = 2; + char expected[10]; + int i; + + ut_assertok(setup_gpt_partitions(uts, mmc_dev_num)); + + for (i = 0; i < ARRAY_SIZE(gpt_parts); i++) { + env_set("partnum", NULL); + ut_assertok(run_commandf("part number mmc %u %s partnum", + mmc_dev_num, gpt_parts[i].name)); + snprintf(expected, sizeof(expected), "0x%x", i + 1); + ut_asserteq_str(expected, env_get("partnum")); + } + + env_set("partnum", NULL); + ut_asserteq(1, run_commandf("part number mmc %u bogus partnum", + mmc_dev_num)); + ut_assertnull(env_get("partnum")); + + return 0; +} +DM_TEST(dm_test_cmd_part_number, UTF_SCAN_PDATA | UTF_SCAN_FDT); + +static int dm_test_cmd_part_start(struct unit_test_state *uts) +{ + unsigned int mmc_dev_num = 2; + char expected[32]; + int i; + + ut_assertok(setup_gpt_partitions(uts, mmc_dev_num)); + + for (i = 0; i < ARRAY_SIZE(gpt_parts); i++) { + env_set("partstart", NULL); + ut_assertok(run_commandf("part start mmc %u %d partstart", + mmc_dev_num, i + 1)); + snprintf(expected, sizeof(expected), "%lx", + (unsigned long)gpt_parts[i].start); + ut_asserteq_str(expected, env_get("partstart")); + } + + env_set("partstart", NULL); + ut_asserteq(1, run_commandf("part start mmc %u 3 partstart", + mmc_dev_num)); + ut_assertnull(env_get("partstart")); + + for (i = 0; i < ARRAY_SIZE(gpt_parts); i++) { + env_set("partstart", NULL); + ut_assertok(run_commandf("part start mmc %u %s partstart", + mmc_dev_num, gpt_parts[i].name)); + snprintf(expected, sizeof(expected), "%lx", + (unsigned long)gpt_parts[i].start); + ut_asserteq_str(expected, env_get("partstart")); + } + + env_set("partstart", NULL); + ut_asserteq(1, run_commandf("part start mmc %u bogus partstart", + mmc_dev_num)); + ut_assertnull(env_get("partstart")); + + return 0; +} +DM_TEST(dm_test_cmd_part_start, UTF_SCAN_PDATA | UTF_SCAN_FDT); + +static int dm_test_cmd_part_size(struct unit_test_state *uts) +{ + unsigned int mmc_dev_num = 2; + char expected[32]; + int i; + + ut_assertok(setup_gpt_partitions(uts, mmc_dev_num)); + + for (i = 0; i < ARRAY_SIZE(gpt_parts); i++) { + env_set("partsize", NULL); + ut_assertok(run_commandf("part size mmc %u %d partsize", + mmc_dev_num, i + 1)); + snprintf(expected, sizeof(expected), "%lx", + (unsigned long)gpt_parts[i].size); + ut_asserteq_str(expected, env_get("partsize")); + } + + env_set("partsize", NULL); + ut_asserteq(1, run_commandf("part size mmc %u 3 partsize", + mmc_dev_num)); + ut_assertnull(env_get("partsize")); + + for (i = 0; i < ARRAY_SIZE(gpt_parts); i++) { + env_set("partsize", NULL); + ut_assertok(run_commandf("part size mmc %u %s partsize", + mmc_dev_num, gpt_parts[i].name)); + snprintf(expected, sizeof(expected), "%lx", + (unsigned long)gpt_parts[i].size); + ut_asserteq_str(expected, env_get("partsize")); + } + + env_set("partsize", NULL); + ut_asserteq(1, run_commandf("part size mmc %u bogus partsize", + mmc_dev_num)); + ut_assertnull(env_get("partsize")); + + return 0; +} +DM_TEST(dm_test_cmd_part_size, UTF_SCAN_PDATA | UTF_SCAN_FDT);