From patchwork Sat Apr 4 15:23: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: 4514 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 047183F10C for ; Sat, 4 Apr 2026 17:27:01 +0200 (CEST) Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-486f830f4e4sf30460615e9.1 for ; Sat, 04 Apr 2026 08:27:01 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1775316420; cv=pass; d=google.com; s=arc-20240605; b=Jukhx0l18Q49s1MshbXKbE9Nvc19n1hTRqstcpdOtUTfdb7gU61YnGVkhjHXS4vJVl SqV/2mLvf5SbmMVY8KWfWLrgPD56R2E+Of9SpW4it/+tkW61ib3D5k7guv0aHmQNalAU ThWantEu9mYRySTomX71LKKWZHIKl1icS/wxxTVn7UL72CIvjh7SJa7Hd/PmUnjS5knk zVeNX4xDAiYVtMd1UJrjfwGU9mEESsyrB00Kvzop2qeViINYflklBSEiDsi28ekhPKst ZDBUQm0971FOhXbpjg+FudNqf2yn5SF2RwcXx/z+TmovvmDVqekIRclq/9mZBP/+B6mx 6ZwA== 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=ujRJ93BH1OihjoxY4sBnM3FaS0Ptqhi0N54cZ04mceQ=; fh=rK7EzmEofSQPUGFTxwPLYbb5i2aGGxjkyA+VQd37ip0=; b=EgYNcJuBrRo9u8hXA/7EGrpMbK0fWHpiT8w9vDuhSvx0BHyrDT2gBUT3JS76pGSlIx bf3MmBCkahmhyy8lc3rNFfOhQ1iz3e9y2MHwog6akwPNf6SCLQOkoElbhDxHtQ2vTnK+ K7Zjf87yaQBCTYPUNKKmyW8Ux6o/NylPqasTlJ01QABdNUHtw5MOdn0MJudg/0NVnjA0 hdGgDCVCG8AG4KA8tHGVKl9buC6T+NOGzd1c0KxT0wSofTUMJO29tZKr5dson4A/yx6y LYhuIDVdpTrft2NJsRoXlMcuFIrrdGPQgCtEfIvaRWveJOyMi+Kx8HxjCM7I4iv6ihiH S7HQ==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=pa1NJ86S; 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=1775316420; x=1775921220; 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=ujRJ93BH1OihjoxY4sBnM3FaS0Ptqhi0N54cZ04mceQ=; b=S3Oc7JmCK1OjEz0cxwjrILF/KhPEEG4nJpcAFmAAvBr2Db/limieqazaPfGStn6mEC o84tORWBSDyxsgdjhog+p40TX7YvdqwGtqhfbg5M6U5hF4yRaMGCtKrk6zlcKjqDG/UK OgaaCu2VyRHWnoJiL031of2eAfQIIk03sR4TA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775316420; x=1775921220; 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=ujRJ93BH1OihjoxY4sBnM3FaS0Ptqhi0N54cZ04mceQ=; b=LOe3ifLHsuBrvOR/akFRxuRE+7Iabz55mZy+krfBkRrOjlJwG+B5rBtBs6TXCsNd2e J+lE3tuQg7d23PwD/ufU/Xhn3Z/0kYs0mC+KHmyfvmWTZulK1rH9UPuL9nIQmV2xR2q8 4zI65QYi+vZRa7VblICZ1TGOh/5DbNJ1Ei5A9LXnO/LBCRKjioCUhgLYKaEsxe128lax iZSbBEDsJxSauEmCR3WGxVhKQW/FXJAyyfq8QsyzfnaWanP9bvxe8+6FWX1Ue3vUwpOd BzIFFJ4ilv+qf1yLCb92QxbjJSqxq9edLfRwgJYxsRUEeJmGf4OhEySNIDi4X3QtmETI pnjg== X-Forwarded-Encrypted: i=2; AJvYcCWiczCOkigKo3nNa2b7mHkvqaotTRKwaj5amlXCI8yP4cwYrq8sjF6wZUNHt9zNrIZ6PNeo5n4mchiIz/Ho@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0YwryM+FutQ2u+kaSHg+iVnTx+7mS24t2AqiFJLfEISF4AqnOj+O MpnMthB0x4QmL5ty2FvfOKzehuyWolwAzF7fzlxoOp2Kb23giiMie5OP9C9WO73rB3kkOVcFjSO aog== X-Received: by 2002:a05:600c:c4a7:b0:486:d76c:fa21 with SMTP id 5b1f17b1804b1-48899735411mr104203865e9.12.1775316420559; Sat, 04 Apr 2026 08:27:00 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com; h="AYAyTiK7MkwN4NW0R2CvApt5cVWqYGvB6BfC7a+Gy+gtcBXtqA==" Received: by 2002:a05:6000:40de:b0:439:f59c:f668 with SMTP id ffacd0b85a97d-43d1f32d31cls2551864f8f.1.-pod-prod-08-eu; Sat, 04 Apr 2026 08:26:59 -0700 (PDT) X-Received: by 2002:a05:6000:4025:b0:43c:f447:f9cc with SMTP id ffacd0b85a97d-43d292f9d04mr10428139f8f.46.1775316418763; Sat, 04 Apr 2026 08:26:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775316418; cv=none; d=google.com; s=arc-20240605; b=ebj+7KZAYr9NUWSjLrKstxESJYXMfUG95ZIkqb/FQ5McEVDtyLt/W45u2SU1SNah5O fv4CBhdqamMHm/wfj7fd3PGqdbm6r5NSjCMtc1JOM9hFPlFP2JP/IQYppiOs5HolgE+Z COtsdXh6GtHAGv5X/crjsHKhIht5h6iJYuAJG4rxTj1VSbHXgVq6sBOL8lP577b++aBy jpNiETtzcfmzpfH3WruaSQ9rTTuXUFPVDR7P5tZGVG3oTNPtXb6LWAJrE+e3lg16vr2e bZ8aVe72H3wj9Q20E2MOoIRdkKjGFrHxaAis1pvtqTWl0+EMGvl+1dDoOdIJ9V4ROXpy Cr7Q== 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=DZA2KY1EY7GX5UI1pCYq6qTpwdC5ojsUStcxpGpQAkw=; fh=RZGImzu6ftZpi4dmMFwfzq1sNXp2pyK8hGxeDmyW+LY=; b=H/5YblJHnMPrLnRhcuvTRUQXMfAqujoBIrL4PQxDc3q0yHmBy5IOE37tCqY9GjG5n8 9y15P6LI0jG9tgZmH6PIrvxpSoF7TyCZCLA5BZ/5mqKSHfELXVDzckkRuBrkSZYuNdho 2PnJLw+LkJ8uJ+2OHH2gPoRRYO6xkUBHlcwAZWyqodIL41gT+hOhvbjlxOI17pAkOHOp 1svVTrp6Jiq9yoWJE0DxM1jVyoqmbIdK41LhJY7aGUA6PfzejNzAqj2BnAm6g1mQez/5 aURxqk/YQvp2ziYcNy3wyojOhwmSBaniq2npOnFMZepqa0+/+7J1WtaKf2CKrVr6vjWJ cv5w==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=pa1NJ86S; 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 ffacd0b85a97d-43d1e4f23e7sor1103398f8f.20.2026.04.04.08.26.58 for (Google Transport Security); Sat, 04 Apr 2026 08:26:58 -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: AeBDietQlT/cLJORPhwKICh11pkf9Z1g1c/zfMth1+o6guImzBJ/7oXx7kwmhHcJPOD 2omb4bLMfVvulCNXTvMTtWQAOJ8OGK7pWRU9gY2wzjow+IfoOyklqyEG/WIHTRVTL0J/zWvRivA i1/tWcTqKTM2levxGpWuudStOWpNAxIKflu6i9A6c+DZGXpCtoPkT3EiI6VrfVz/jorGmEBmIIM haImukzkhW/I07MU31zcBnkIp06FEh9CsdhiDfRj1vXBjjO8d2aZJUqoedsVVOj2YNKed7WWlcp HvBL4VBB8qSATyOg0HybBtfIbtTOZ5l8fN/UNND59WGG0v6SEtyGUH98mzJF3MFhPmBdA8NaeZS E6iq3adm2jgO3oX33xHb8GBcOfY8EZ+HIgbaTeanbjZwvUFaX9sHxOHhUUgVljKIJxfH7O/Me40 BUjKB1vxB6wXPjTtNikRCRGdcMehbtleDWrNPK+3cqdx4ci2cMMQmONmoYQ9TYExKlxA3pYbCh5 fEK3Ek/vFCK4vkfE/Nw1H0qZBNDAv30SGpmyE6T1aKqsGGFzlSL8AhbCA9LNVl6peCso7j7K2Z6 OVNxMpyUfU7lzNO0ebfsFeXa X-Received: by 2002:a05:6000:2313:b0:43c:f583:126a with SMTP id ffacd0b85a97d-43d2927b9c6mr11204605f8f.14.1775316418295; Sat, 04 Apr 2026 08:26:58 -0700 (PDT) Received: from dario-ThinkPad-P14s-Gen-5.homenet.telecomitalia.it (host-87-9-100-184.retail.telecomitalia.it. [87.9.100.184]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43d1e4f1a99sm28059462f8f.32.2026.04.04.08.26.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 04 Apr 2026 08:26:57 -0700 (PDT) From: Dario Binacchi To: u-boot@lists.denx.de Cc: linux-amarula@amarulasolutions.com, Dario Binacchi , Dinesh Maniyam , Heinrich Schuchardt , Ilias Apalodimas , Jerome Forissier , Marek Vasut , Simon Glass , Tom Rini Subject: [PATCH v2 3/7] test: cmd: add unit tests for part command Date: Sat, 4 Apr 2026 17:23:30 +0200 Message-ID: <20260404152640.3297713-4-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260404152640.3297713-1-dario.binacchi@amarulasolutions.com> References: <20260404152640.3297713-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=pa1NJ86S; 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 --- (no changes since v1) test/cmd/Makefile | 1 + test/cmd/part.c | 157 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 158 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..e60e0226b64b --- /dev/null +++ b/test/cmd/part.c @@ -0,0 +1,157 @@ +// 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, ret; + + 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); + ret = run_commandf("part number mmc %u bogus partnum", mmc_dev_num); + ut_assert(ret != 0); + 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, ret; + + 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); + ret = run_commandf("part start mmc %u 3 partstart", mmc_dev_num); + ut_assert(ret != 0); + 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); + ret = run_commandf("part start mmc %u bogus partstart", mmc_dev_num); + ut_assert(ret != 0); + 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, ret; + + 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); + ret = run_commandf("part size mmc %u 3 partsize", mmc_dev_num); + ut_assert(ret != 0); + 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); + ret = run_commandf("part size mmc %u bogus partsize", mmc_dev_num); + ut_assert(ret != 0); + ut_assertnull(env_get("partsize")); + + return 0; +} +DM_TEST(dm_test_cmd_part_size, UTF_SCAN_PDATA | UTF_SCAN_FDT);