get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2206447/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2206447,
    "url": "http://patchwork.ozlabs.org/api/patches/2206447/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/20260306181304.2426352-6-sjg@chromium.org/",
    "project": {
        "id": 18,
        "url": "http://patchwork.ozlabs.org/api/projects/18/?format=api",
        "name": "U-Boot",
        "link_name": "uboot",
        "list_id": "u-boot.lists.denx.de",
        "list_email": "u-boot@lists.denx.de",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260306181304.2426352-6-sjg@chromium.org>",
    "list_archive_url": null,
    "date": "2026-03-06T18:12:33",
    "name": "[v2,05/23] binman: test: Move FIT image test files to test/fit/",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "dbfdcd9909716f581d19f8787206e83b7f9c6401",
    "submitter": {
        "id": 6170,
        "url": "http://patchwork.ozlabs.org/api/people/6170/?format=api",
        "name": "Simon Glass",
        "email": "sjg@chromium.org"
    },
    "delegate": {
        "id": 3184,
        "url": "http://patchwork.ozlabs.org/api/users/3184/?format=api",
        "username": "sjg",
        "first_name": "Simon",
        "last_name": "Glass",
        "email": "sjg@chromium.org"
    },
    "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/20260306181304.2426352-6-sjg@chromium.org/mbox/",
    "series": [
        {
            "id": 494765,
            "url": "http://patchwork.ozlabs.org/api/series/494765/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=494765",
            "date": "2026-03-06T18:12:28",
            "name": "binman: test: Organise test files into subdirectories",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/494765/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2206447/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2206447/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<u-boot-bounces@lists.denx.de>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256\n header.s=google header.b=CuSDW0lD;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=85.214.62.61; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)",
            "phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=chromium.org",
            "phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de",
            "phobos.denx.de;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=chromium.org header.i=@chromium.org\n header.b=\"CuSDW0lD\";\n\tdkim-atps=neutral",
            "phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=chromium.org",
            "phobos.denx.de;\n spf=pass smtp.mailfrom=sjg@chromium.org"
        ],
        "Received": [
            "from phobos.denx.de (phobos.denx.de [85.214.62.61])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fSF161KSQz1xyN\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 07 Mar 2026 05:14:34 +1100 (AEDT)",
            "from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id 9F96C83F9D;\n\tFri,  6 Mar 2026 19:13:46 +0100 (CET)",
            "by phobos.denx.de (Postfix, from userid 109)\n id 3CFB883FC6; Fri,  6 Mar 2026 19:13:45 +0100 (CET)",
            "from mail-qk1-x72b.google.com (mail-qk1-x72b.google.com\n [IPv6:2607:f8b0:4864:20::72b])\n (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 277DE83F9D\n for <u-boot@lists.denx.de>; Fri,  6 Mar 2026 19:13:42 +0100 (CET)",
            "by mail-qk1-x72b.google.com with SMTP id\n af79cd13be357-8cb38e6d164so1226648085a.3\n for <u-boot@lists.denx.de>; Fri, 06 Mar 2026 10:13:42 -0800 (PST)",
            "from chromium.org ([73.34.74.121]) by smtp.gmail.com with ESMTPSA id\n af79cd13be357-8cd6f5736c0sm155930885a.49.2026.03.06.10.13.37\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Fri, 06 Mar 2026 10:13:39 -0800 (PST)"
        ],
        "X-Spam-Checker-Version": "SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de",
        "X-Spam-Level": "",
        "X-Spam-Status": "No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,\n DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,\n RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham\n autolearn_force=no version=3.4.2",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=chromium.org; s=google; t=1772820820; x=1773425620; darn=lists.denx.de;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=0B7if9uoqyKIQ7eqU5oR60QKcASlp3iVsaioBM3x8uY=;\n b=CuSDW0lDbsk6bjohunV32b9013bCgS0n8zW9r12JVR4AK1jTCtJKY56bp5N7MxgN5+\n 5rUfEf6gcMtJnLk4SKnMLCEYSVbGVvLBkhwx5njglDYcXy6IXiOFz6jfqATNM2xOMkwB\n lkmdx0ZVFTVIvGHTwJBYD6DxzDBNMhJfaluMU=",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1772820820; x=1773425620;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=0B7if9uoqyKIQ7eqU5oR60QKcASlp3iVsaioBM3x8uY=;\n b=LE2l0cUt3REF0VtBb2JLOz1Vul+ZuEFvdj+EKZxd2T0orfJTiIKESe2WPnfZZvnPT2\n tdl45DY5EqwdaKY6Sjl9dG0vvjJBtiHesgybUEkdN5rStOy7dcnKs67E+6TOvnAfc9oe\n FqOjfpFxnahllERUFpmKt3PndVCToPIxbMcGPDvRu9lg1lOUKsLFJb1sgac1Zy7xfZeG\n 5zZPVzHwX2CL/fOq7Uh6bIjq4jfibtzj/KiG9IK3g0hQeZhtFesZnijRIDPfbOpIwAqa\n Rs5lL0RjqgDwfSagWqvZ/ODNZ4UX9iHwbTzkqpKObbxkKujRj0S/4wwlGnh61BYEJ0tJ\n pweA==",
        "X-Gm-Message-State": "AOJu0YylDnOebAx06E5a/s8xOUjR0Aq/THM5kGKF3PVYAfvYkJZ9Ja1u\n PPk0qjJObDvidj+Ka6MwIeCYa3FzbLV1as+E2KwF5T8IVdVsKFcoS8ng3i5GNPE9cNEZXCmXDcm\n 7sok=",
        "X-Gm-Gg": "ATEYQzx2NrBl2B24I6o3qXu/q5s4g9oucLpJP+r+W7uq/Fa3fPjuj1H5lGRzbP6FcCz\n 7drU65iK7gWKEjc2sntNAaYsjh2kwgUuMwBiETLQm1AwTcLgQf6LXLvLfyDP+2fDFq+gGSYnGav\n XpPwY6tKwlRxT91SQ2F3XQ9nVxSXIZqJ/JXE02J78dZlvlCR3OCudincGd/Ei5D0AFRsm05btBy\n VBzs+HXpP7GqegJ/OvnFIjcy4M0g3ux6dNlW7FwKFIbIkwYARQhPDtZnTrwNtV3n7qW0KlPRjUU\n K49wo6pt6LMrS5pJWx7RM+Fwi1TIXaTqmTP9+LwjzlJGSSVvdYFjR9p3+1Pf4ARLyS2ovQrhdcK\n gqjM8D9DUVG2xucY/r822cuuA6O/uDRau7PRc85bKx54K977VuhKIcEixAsTpXeOkJNvR63iH+I\n ouuXaJpG0UBcMMINkdnQ==",
        "X-Received": "by 2002:a05:620a:1920:b0:8ca:55:ac72 with SMTP id\n af79cd13be357-8cd6d506075mr389335085a.61.1772820820042;\n Fri, 06 Mar 2026 10:13:40 -0800 (PST)",
        "From": "Simon Glass <sjg@chromium.org>",
        "To": "u-boot@lists.denx.de",
        "Cc": "Tom Rini <trini@konsulko.com>, Quentin Schulz <quentin.schulz@cherry.de>,\n Simon Glass <simon.glass@canonical.com>,\n Alper Nebi Yasak <alpernebiyasak@gmail.com>,\n Aristo Chen <jj251510319013@gmail.com>, Bryan Brattlof <bb@ti.com>,\n Neha Malcom Francis <n-francis@ti.com>, Peng Fan <peng.fan@nxp.com>,\n Philippe Reynes <philippe.reynes@softathome.com>,\n Simon Glass <sjg@chromium.org>,\n Stefan Herbrechtsmeier <stefan.herbrechtsmeier@weidmueller.com>,\n Yannic Moog <y.moog@phytec.de>",
        "Subject": "[PATCH v2 05/23] binman: test: Move FIT image test files to test/fit/",
        "Date": "Fri,  6 Mar 2026 11:12:33 -0700",
        "Message-ID": "<20260306181304.2426352-6-sjg@chromium.org>",
        "X-Mailer": "git-send-email 2.43.0",
        "In-Reply-To": "<20260306181304.2426352-1-sjg@chromium.org>",
        "References": "<20260306181304.2426352-1-sjg@chromium.org>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "u-boot@lists.denx.de",
        "X-Mailman-Version": "2.1.39",
        "Precedence": "list",
        "List-Id": "U-Boot discussion <u-boot.lists.denx.de>",
        "List-Unsubscribe": "<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>",
        "List-Archive": "<https://lists.denx.de/pipermail/u-boot/>",
        "List-Post": "<mailto:u-boot@lists.denx.de>",
        "List-Help": "<mailto:u-boot-request@lists.denx.de?subject=help>",
        "List-Subscribe": "<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>",
        "Errors-To": "u-boot-bounces@lists.denx.de",
        "Sender": "\"U-Boot\" <u-boot-bounces@lists.denx.de>",
        "X-Virus-Scanned": "clamav-milter 0.103.8 at phobos.denx.de",
        "X-Virus-Status": "Clean"
    },
    "content": "From: Simon Glass <simon.glass@canonical.com>\n\nMove about 40 test files for FIT images (signing, external data,\nsplit-elf, encryption, alignment, firmware loadables, templates) into\na fit/ subdirectory. Drop the numeric prefixes and the redundant fit_\nfilename prefix, and update all references.\n\nRename the three signature.dts variants to have unique names:\nsignature.dts, signature_multi_key.dts and signature_no_nodes.dts.\n\nSigned-off-by: Simon Glass <simon.glass@canonical.com>\n---\n\n(no changes since v1)\n\n tools/binman/ftest.py                         | 118 +++++++++---------\n .../test/{275_fit_align.dts => fit/align.dts} |   0\n .../{227_fit_bad_dir.dts => fit/bad_dir.dts}  |   2 +-\n .../bad_dir_config.dts}                       |   2 +-\n .../bad_oper.dts}                             |   0\n .../encrypt_data.dts}                         |   0\n .../encrypt_data_no_key.dts}                  |   0\n .../external.dts}                             |   0\n .../extract_replace.dts}                      |   0\n .../test/{170_fit_fdt.dts => fit/fdt.dts}     |   0\n .../fdt_compat.dts}                           |   0\n .../{333_fit_fdt_dir.dts => fit/fdt_dir.dts}  |   0\n .../fdt_list.dts}                             |   0\n .../fdt_missing_prop.dts}                     |   0\n .../fdt_name.dts}                             |   0\n .../fdt_oper.dts}                             |   0\n .../fdt_phase.dts}                            |   0\n .../firmware_loadables.dts}                   |   0\n .../binman/test/{161_fit.dts => fit/fit.dts}  |   0\n .../{219_fit_gennode.dts => fit/gennode.dts}  |   0\n .../image_subentry_alignment.dts}             |   0\n .../key_name_hint_dir_signature.dts}          |   0\n .../missing_blob.dts}                         |   0\n .../replace_sibling.dts}                      |   0\n .../test/{280_fit_sign.dts => fit/sign.dts}   |   0\n .../signature.dts}                            |   0\n .../signature_engine.dts}                     |   0\n .../signature_engine_encrypt.dts}             |   0\n .../signature_engine_pkcs11.dts}              |   0\n .../signature_engine_pkcs11_object.dts}       |   0\n .../signature_multi_key.dts}                  |   0\n .../signature_no_nodes.dts}                   |   0\n .../split_elf.dts}                            |   0\n .../subentry_bintool.dts}                     |   0\n .../subentry_hash.dts}                        |   0\n .../tee_os_opt.dts}                           |   0\n .../tee_os_opt_bad.dts}                       |   0\n .../template.dts}                             |   0\n 38 files changed, 61 insertions(+), 61 deletions(-)\n rename tools/binman/test/{275_fit_align.dts => fit/align.dts} (100%)\n rename tools/binman/test/{227_fit_bad_dir.dts => fit/bad_dir.dts} (71%)\n rename tools/binman/test/{228_fit_bad_dir_config.dts => fit/bad_dir_config.dts} (71%)\n rename tools/binman/test/{224_fit_bad_oper.dts => fit/bad_oper.dts} (100%)\n rename tools/binman/test/{343_fit_encrypt_data.dts => fit/encrypt_data.dts} (100%)\n rename tools/binman/test/{344_fit_encrypt_data_no_key.dts => fit/encrypt_data_no_key.dts} (100%)\n rename tools/binman/test/{162_fit_external.dts => fit/external.dts} (100%)\n rename tools/binman/test/{240_fit_extract_replace.dts => fit/extract_replace.dts} (100%)\n rename tools/binman/test/{170_fit_fdt.dts => fit/fdt.dts} (100%)\n rename tools/binman/test/{334_fit_fdt_compat.dts => fit/fdt_compat.dts} (100%)\n rename tools/binman/test/{333_fit_fdt_dir.dts => fit/fdt_dir.dts} (100%)\n rename tools/binman/test/{284_fit_fdt_list.dts => fit/fdt_list.dts} (100%)\n rename tools/binman/test/{171_fit_fdt_missing_prop.dts => fit/fdt_missing_prop.dts} (100%)\n rename tools/binman/test/{345_fit_fdt_name.dts => fit/fdt_name.dts} (100%)\n rename tools/binman/test/{223_fit_fdt_oper.dts => fit/fdt_oper.dts} (100%)\n rename tools/binman/test/{335_fit_fdt_phase.dts => fit/fdt_phase.dts} (100%)\n rename tools/binman/test/{276_fit_firmware_loadables.dts => fit/firmware_loadables.dts} (100%)\n rename tools/binman/test/{161_fit.dts => fit/fit.dts} (100%)\n rename tools/binman/test/{219_fit_gennode.dts => fit/gennode.dts} (100%)\n rename tools/binman/test/{167_fit_image_subentry_alignment.dts => fit/image_subentry_alignment.dts} (100%)\n rename tools/binman/test/{347_key_name_hint_dir_fit_signature.dts => fit/key_name_hint_dir_signature.dts} (100%)\n rename tools/binman/test/{168_fit_missing_blob.dts => fit/missing_blob.dts} (100%)\n rename tools/binman/test/{277_replace_fit_sibling.dts => fit/replace_sibling.dts} (100%)\n rename tools/binman/test/{280_fit_sign.dts => fit/sign.dts} (100%)\n rename tools/binman/test/{340_fit_signature.dts => fit/signature.dts} (100%)\n rename tools/binman/test/{340_fit_signature_engine.dts => fit/signature_engine.dts} (100%)\n rename tools/binman/test/{340_fit_signature_engine_encrypt.dts => fit/signature_engine_encrypt.dts} (100%)\n rename tools/binman/test/{340_fit_signature_engine_pkcs11.dts => fit/signature_engine_pkcs11.dts} (100%)\n rename tools/binman/test/{340_fit_signature_engine_pkcs11_object.dts => fit/signature_engine_pkcs11_object.dts} (100%)\n rename tools/binman/test/{341_fit_signature.dts => fit/signature_multi_key.dts} (100%)\n rename tools/binman/test/{342_fit_signature.dts => fit/signature_no_nodes.dts} (100%)\n rename tools/binman/test/{226_fit_split_elf.dts => fit/split_elf.dts} (100%)\n rename tools/binman/test/{220_fit_subentry_bintool.dts => fit/subentry_bintool.dts} (100%)\n rename tools/binman/test/{221_fit_subentry_hash.dts => fit/subentry_hash.dts} (100%)\n rename tools/binman/test/{264_tee_os_opt_fit.dts => fit/tee_os_opt.dts} (100%)\n rename tools/binman/test/{265_tee_os_opt_fit_bad.dts => fit/tee_os_opt_bad.dts} (100%)\n rename tools/binman/test/{288_template_fit.dts => fit/template.dts} (100%)",
    "diff": "diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py\nindex ac944f507f9..893cf1c7c17 100644\n--- a/tools/binman/ftest.py\n+++ b/tools/binman/ftest.py\n@@ -3991,7 +3991,7 @@ class TestFunctional(unittest.TestCase):\n     def testSimpleFit(self):\n         \"\"\"Test an image with a FIT inside\"\"\"\n         self._SetupSplElf()\n-        data = self._DoReadFile('161_fit.dts')\n+        data = self._DoReadFile('fit/fit.dts')\n         self.assertEqual(U_BOOT_DATA, data[:len(U_BOOT_DATA)])\n         self.assertEqual(U_BOOT_NODTB_DATA, data[-len(U_BOOT_NODTB_DATA):])\n         fit_data = data[len(U_BOOT_DATA):-len(U_BOOT_NODTB_DATA)]\n@@ -4000,7 +4000,7 @@ class TestFunctional(unittest.TestCase):\n \n     def testSimpleFitExpandsSubentries(self):\n         \"\"\"Test that FIT images expand their subentries\"\"\"\n-        data = self._DoReadFileDtb('161_fit.dts', use_expanded=True)[0]\n+        data = self._DoReadFileDtb('fit/fit.dts', use_expanded=True)[0]\n         self.assertEqual(U_BOOT_EXP_DATA, data[:len(U_BOOT_EXP_DATA)])\n         self.assertEqual(U_BOOT_NODTB_DATA, data[-len(U_BOOT_NODTB_DATA):])\n         fit_data = data[len(U_BOOT_EXP_DATA):-len(U_BOOT_NODTB_DATA)]\n@@ -4009,7 +4009,7 @@ class TestFunctional(unittest.TestCase):\n \n     def testSimpleFitImagePos(self):\n         \"\"\"Test that we have correct image-pos for FIT subentries\"\"\"\n-        data, _, _, out_dtb_fname = self._DoReadFileDtb('161_fit.dts',\n+        data, _, _, out_dtb_fname = self._DoReadFileDtb('fit/fit.dts',\n                                                         update_dtb=True)\n         dtb = fdt.Fdt(out_dtb_fname)\n         dtb.Scan()\n@@ -4066,7 +4066,7 @@ class TestFunctional(unittest.TestCase):\n \n     def testFitExternal(self):\n         \"\"\"Test an image with an FIT with external images\"\"\"\n-        data = self._DoReadFile('162_fit_external.dts')\n+        data = self._DoReadFile('fit/external.dts')\n         fit_data = data[len(U_BOOT_DATA):-2]  # _testing is 2 bytes\n \n         # Size of the external-data region as set up by mkimage\n@@ -4094,7 +4094,7 @@ class TestFunctional(unittest.TestCase):\n \n     def testFitExternalImagePos(self):\n         \"\"\"Test that we have correct image-pos for external FIT subentries\"\"\"\n-        data, _, _, out_dtb_fname = self._DoReadFileDtb('162_fit_external.dts',\n+        data, _, _, out_dtb_fname = self._DoReadFileDtb('fit/external.dts',\n                                                         update_dtb=True)\n         dtb = fdt.Fdt(out_dtb_fname)\n         dtb.Scan()\n@@ -4151,7 +4151,7 @@ class TestFunctional(unittest.TestCase):\n     def testFitMissing(self):\n         \"\"\"Test that binman complains if mkimage is missing\"\"\"\n         with self.assertRaises(ValueError) as e:\n-            self._DoTestFile('162_fit_external.dts',\n+            self._DoTestFile('fit/external.dts',\n                              force_missing_bintools='mkimage')\n         self.assertIn(\"Node '/binman/fit': Missing tool: 'mkimage'\",\n                       str(e.exception))\n@@ -4159,7 +4159,7 @@ class TestFunctional(unittest.TestCase):\n     def testFitMissingOK(self):\n         \"\"\"Test that binman still produces a FIT image if mkimage is missing\"\"\"\n         with terminal.capture() as (_, stderr):\n-            self._DoTestFile('162_fit_external.dts', allow_missing=True,\n+            self._DoTestFile('fit/external.dts', allow_missing=True,\n                              force_missing_bintools='mkimage')\n         err = stderr.getvalue()\n         self.assertRegex(err, \"Image 'image'.*missing bintools.*: mkimage\")\n@@ -4211,7 +4211,7 @@ class TestFunctional(unittest.TestCase):\n         entry_args = {\n             'test-id': TEXT_DATA,\n         }\n-        data, _, _, _ = self._DoReadFileDtb('167_fit_image_subentry_alignment.dts',\n+        data, _, _, _ = self._DoReadFileDtb('fit/image_subentry_alignment.dts',\n                                             entry_args=entry_args)\n         dtb = fdt.Fdt.FromData(data)\n         dtb.Scan()\n@@ -4233,7 +4233,7 @@ class TestFunctional(unittest.TestCase):\n     def testFitExtblobMissingOk(self):\n         \"\"\"Test a FIT with a missing external blob that is allowed\"\"\"\n         with terminal.capture() as (stdout, stderr):\n-            self._DoTestFile('168_fit_missing_blob.dts',\n+            self._DoTestFile('fit/missing_blob.dts',\n                              allow_missing=True)\n         err = stderr.getvalue()\n         self.assertRegex(err, \"Image 'image'.*missing.*: atf-bl31\")\n@@ -4255,7 +4255,7 @@ class TestFunctional(unittest.TestCase):\n         data = self._DoReadFile('172_scp.dts')\n         self.assertEqual(SCP_DATA, data[:len(SCP_DATA)])\n \n-    def CheckFitFdt(self, dts='170_fit_fdt.dts', use_fdt_list=True,\n+    def CheckFitFdt(self, dts='fit/fdt.dts', use_fdt_list=True,\n                     default_dt=None, use_seq_num=True):\n         \"\"\"Check an image with an FIT with multiple FDT images\"\"\"\n         def _CheckFdt(val, expected_data):\n@@ -4351,7 +4351,7 @@ class TestFunctional(unittest.TestCase):\n     def testFitFdtMissingList(self):\n         \"\"\"Test handling of a missing 'of-list' entry arg\"\"\"\n         with self.assertRaises(ValueError) as e:\n-            self._DoReadFile('170_fit_fdt.dts')\n+            self._DoReadFile('fit/fdt.dts')\n         self.assertIn(\"Generator node requires 'of-list' entry argument\",\n                       str(e.exception))\n \n@@ -4360,12 +4360,12 @@ class TestFunctional(unittest.TestCase):\n         entry_args = {\n             'of-list': '',\n         }\n-        data = self._DoReadFileDtb('170_fit_fdt.dts', entry_args=entry_args)[0]\n+        data = self._DoReadFileDtb('fit/fdt.dts', entry_args=entry_args)[0]\n \n     def testFitFdtMissingProp(self):\n         \"\"\"Test handling of a missing 'fit,fdt-list' property\"\"\"\n         with self.assertRaises(ValueError) as e:\n-            self._DoReadFile('171_fit_fdt_missing_prop.dts')\n+            self._DoReadFile('fit/fdt_missing_prop.dts')\n         self.assertIn(\"Generator node requires 'fit,fdt-list' property\",\n                       str(e.exception))\n \n@@ -4376,7 +4376,7 @@ class TestFunctional(unittest.TestCase):\n         }\n         with self.assertRaises(ValueError) as e:\n             self._DoReadFileDtb(\n-                '170_fit_fdt.dts',\n+                'fit/fdt.dts',\n                 entry_args=entry_args,\n                 extra_indirs=[os.path.join(self._indir, TEST_FDT_SUBDIR)])[0]\n         self.assertIn(\"Generated 'default' node requires default-dt entry argument\",\n@@ -4390,7 +4390,7 @@ class TestFunctional(unittest.TestCase):\n         }\n         with self.assertRaises(ValueError) as e:\n             self._DoReadFileDtb(\n-                '170_fit_fdt.dts',\n+                'fit/fdt.dts',\n                 entry_args=entry_args,\n                 extra_indirs=[os.path.join(self._indir, TEST_FDT_SUBDIR)])[0]\n         self.assertIn(\"default-dt entry argument 'test-fdt3' not found in fdt list: test-fdt1, test-fdt2\",\n@@ -4402,7 +4402,7 @@ class TestFunctional(unittest.TestCase):\n         control.missing_blob_help['wibble'] = 'Wibble test'\n         control.missing_blob_help['another'] = 'Another test'\n         with terminal.capture() as (stdout, stderr):\n-            self._DoTestFile('168_fit_missing_blob.dts',\n+            self._DoTestFile('fit/missing_blob.dts',\n                              allow_missing=True)\n         err = stderr.getvalue()\n \n@@ -5507,7 +5507,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n             'of-list': 'test-fdt1 test-fdt2',\n         }\n         data = self._DoReadFileDtb(\n-            '219_fit_gennode.dts',\n+            'fit/gennode.dts',\n             entry_args=entry_args,\n             use_real_dtb=True,\n             extra_indirs=[os.path.join(self._indir, TEST_FDT_SUBDIR)])\n@@ -5528,7 +5528,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n             'keydir': 'devkeys',\n             'bmpblk': 'bmpblk.bin',\n         }\n-        data, _, _, _ = self._DoReadFileDtb('220_fit_subentry_bintool.dts',\n+        data, _, _, _ = self._DoReadFileDtb('fit/subentry_bintool.dts',\n                 entry_args=entry_args)\n \n         expected = (GBB_DATA + GBB_DATA + tools.get_bytes(0, 8) +\n@@ -5541,7 +5541,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n             'keydir': 'devkeys',\n         }\n         with terminal.capture() as (_, stderr):\n-            self._DoTestFile('220_fit_subentry_bintool.dts',\n+            self._DoTestFile('fit/subentry_bintool.dts',\n                     force_missing_bintools='futility', entry_args=entry_args)\n         err = stderr.getvalue()\n         self.assertRegex(err, \"Image 'image'.*missing bintools.*: futility\")\n@@ -5550,7 +5550,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         \"\"\"Test an image with a FIT inside\"\"\"\n         self._SetupSplElf()\n         data, _, _, out_dtb_name = self._DoReadFileDtb(\n-            '221_fit_subentry_hash.dts', use_real_dtb=True, update_dtb=True)\n+            'fit/subentry_hash.dts', use_real_dtb=True, update_dtb=True)\n \n         mkimage_dtb = fdt.Fdt.FromData(data)\n         mkimage_dtb.Scan()\n@@ -5604,14 +5604,14 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n             'default-dt': 'test-fdt2',\n         }\n         self._DoReadFileDtb(\n-            '223_fit_fdt_oper.dts',\n+            'fit/fdt_oper.dts',\n             entry_args=entry_args,\n             extra_indirs=[os.path.join(self._indir, TEST_FDT_SUBDIR)])[0]\n \n     def testFitFdtBadOper(self):\n         \"\"\"Check handling of an FDT map when the section cannot be found\"\"\"\n         with self.assertRaises(ValueError) as exc:\n-            self._DoReadFileDtb('224_fit_bad_oper.dts')\n+            self._DoReadFileDtb('fit/bad_oper.dts')\n         self.assertIn(\"Node '/binman/fit': subnode 'images/@fdt-SEQ': Unknown operation 'unknown'\",\n                       str(exc.exception))\n \n@@ -5635,7 +5635,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         }\n         test_subdir = os.path.join(self._indir, TEST_FDT_SUBDIR)\n         data = self._DoReadFileDtb(\n-            '226_fit_split_elf.dts',\n+            'fit/split_elf.dts',\n             entry_args=entry_args,\n             extra_indirs=[test_subdir])[0]\n \n@@ -5728,7 +5728,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         test_subdir = os.path.join(self._indir, TEST_FDT_SUBDIR)\n         with self.assertRaises(ValueError) as exc:\n             self._DoReadFileDtb(\n-                '226_fit_split_elf.dts',\n+                'fit/split_elf.dts',\n                 entry_args=entry_args,\n                 extra_indirs=[test_subdir])[0]\n         self.assertIn(\n@@ -5755,7 +5755,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         test_subdir = os.path.join(self._indir, TEST_FDT_SUBDIR)\n         with terminal.capture() as (stdout, stderr):\n             self._DoTestFile(\n-                '226_fit_split_elf.dts', entry_args=entry_args,\n+                'fit/split_elf.dts', entry_args=entry_args,\n                 extra_indirs=[test_subdir], verbosity=3, **kwargs)\n             out = stdout.getvalue()\n             err = stderr.getvalue()\n@@ -5765,7 +5765,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         \"\"\"Test a FIT split-elf invalid fit,xxx directive in an image node\"\"\"\n         if not elf.ELF_TOOLS:\n             self.skipTest('Python elftools not available')\n-        err = self._check_bad_fit('227_fit_bad_dir.dts')\n+        err = self._check_bad_fit('fit/bad_dir.dts')\n         self.assertIn(\n             \"Node '/binman/fit': subnode 'images/@atf-SEQ': Unknown directive 'fit,something'\",\n             err)\n@@ -5774,7 +5774,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         \"\"\"Test a FIT split-elf with invalid fit,xxx directive in config\"\"\"\n         if not elf.ELF_TOOLS:\n             self.skipTest('Python elftools not available')\n-        err = self._check_bad_fit('228_fit_bad_dir_config.dts')\n+        err = self._check_bad_fit('fit/bad_dir_config.dts')\n         self.assertEqual(\n             \"Node '/binman/fit': subnode 'configurations/@config-SEQ': Unknown directive 'fit,config'\",\n             err)\n@@ -5986,7 +5986,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n \n     def testExtractFit(self):\n         \"\"\"Test extracting a FIT section\"\"\"\n-        self._DoReadFileRealDtb('240_fit_extract_replace.dts')\n+        self._DoReadFileRealDtb('fit/extract_replace.dts')\n         image_fname = tools.get_output_filename('image.bin')\n \n         fit_data = control.ReadEntry(image_fname, 'fit')\n@@ -6005,7 +6005,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n \n     def testExtractFitSubentries(self):\n         \"\"\"Test extracting FIT section subentries\"\"\"\n-        self._DoReadFileRealDtb('240_fit_extract_replace.dts')\n+        self._DoReadFileRealDtb('fit/extract_replace.dts')\n         image_fname = tools.get_output_filename('image.bin')\n \n         for entry_path, expected in [\n@@ -6024,7 +6024,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         new_data = b'x' * len(U_BOOT_DATA)\n         data, expected_fdtmap, _ = self._RunReplaceCmd(\n             'fit/kernel/u-boot', new_data,\n-            dts='240_fit_extract_replace.dts')\n+            dts='fit/extract_replace.dts')\n         self.assertEqual(new_data, data)\n \n         path, fdtmap = state.GetFdtContents('fdtmap')\n@@ -6036,7 +6036,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         new_data = b'ub' * len(U_BOOT_NODTB_DATA)\n         data, expected_fdtmap, _ = self._RunReplaceCmd(\n             'fit/fdt-1/u-boot-nodtb', new_data,\n-            dts='240_fit_extract_replace.dts')\n+            dts='fit/extract_replace.dts')\n         self.assertEqual(new_data, data)\n \n         # Will be repacked, so fdtmap must change\n@@ -6050,7 +6050,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         expected = new_data.ljust(len(U_BOOT_NODTB_DATA), b'\\0')\n         data, expected_fdtmap, _ = self._RunReplaceCmd(\n             'fit/fdt-1/u-boot-nodtb', new_data,\n-            dts='240_fit_extract_replace.dts')\n+            dts='fit/extract_replace.dts')\n         self.assertEqual(expected, data)\n \n         path, fdtmap = state.GetFdtContents('fdtmap')\n@@ -6510,7 +6510,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n \n     def testFitTeeOsOptionalFit(self):\n         \"\"\"Test an image with a FIT with an optional OP-TEE binary\"\"\"\n-        data = self.checkFitTee('264_tee_os_opt_fit.dts', 'tee.bin')\n+        data = self.checkFitTee('fit/tee_os_opt.dts', 'tee.bin')\n \n         # There should be only one node, holding the data set up in SetUpClass()\n         # for tee.bin\n@@ -6524,7 +6524,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         self.assertEqual(U_BOOT_DATA, node.props['data'].bytes)\n \n         with terminal.capture() as (stdout, stderr):\n-            self.checkFitTee('264_tee_os_opt_fit.dts', '')\n+            self.checkFitTee('fit/tee_os_opt.dts', '')\n         err = stderr.getvalue()\n         self.assertRegex(\n             err,\n@@ -6536,7 +6536,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n     def testFitTeeOsOptionalFitBad(self):\n         \"\"\"Test an image with a FIT with an optional OP-TEE binary\"\"\"\n         with self.assertRaises(ValueError) as exc:\n-            self.checkFitTee('265_tee_os_opt_fit_bad.dts', 'tee.bin')\n+            self.checkFitTee('fit/tee_os_opt_bad.dts', 'tee.bin')\n         self.assertIn(\n             \"Node '/binman/fit': subnode 'images/@tee-SEQ': Failed to read ELF file: Magic number does not match\",\n             str(exc.exception))\n@@ -6545,14 +6545,14 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         \"\"\"Test an OP-TEE binary with wrong formats\"\"\"\n         self.make_tee_bin('tee.bad1', 123)\n         with self.assertRaises(ValueError) as exc:\n-            self.checkFitTee('264_tee_os_opt_fit.dts', 'tee.bad1')\n+            self.checkFitTee('fit/tee_os_opt.dts', 'tee.bad1')\n         self.assertIn(\n             \"Node '/binman/fit/images/@tee-SEQ/tee-os': OP-TEE paged mode not supported\",\n             str(exc.exception))\n \n         self.make_tee_bin('tee.bad2', 0, b'extra data')\n         with self.assertRaises(ValueError) as exc:\n-            self.checkFitTee('264_tee_os_opt_fit.dts', 'tee.bad2')\n+            self.checkFitTee('fit/tee_os_opt.dts', 'tee.bad2')\n         self.assertIn(\n             \"Node '/binman/fit/images/@tee-SEQ/tee-os': Invalid OP-TEE file: size mismatch (expected 0x4, have 0xe)\",\n             str(exc.exception))\n@@ -6701,7 +6701,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n \n     def testFitAlign(self):\n         \"\"\"Test an image with an FIT with aligned external data\"\"\"\n-        data = self._DoReadFile('275_fit_align.dts')\n+        data = self._DoReadFile('fit/align.dts')\n         self.assertEqual(4096, len(data))\n \n         dtb = fdt.Fdt.FromData(data)\n@@ -6728,7 +6728,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         test_subdir = os.path.join(self._indir, TEST_FDT_SUBDIR)\n         with terminal.capture() as (stdout, stderr):\n             data = self._DoReadFileDtb(\n-                '276_fit_firmware_loadables.dts',\n+                'fit/firmware_loadables.dts',\n                 entry_args=entry_args,\n                 extra_indirs=[test_subdir])[0]\n \n@@ -6838,7 +6838,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         \"\"\"Test an image with a FIT inside where we replace its sibling\"\"\"\n         self._SetupSplElf()\n         fname = TestFunctional._MakeInputFile('once', b'available once')\n-        self._DoReadFileRealDtb('277_replace_fit_sibling.dts')\n+        self._DoReadFileRealDtb('fit/replace_sibling.dts')\n         os.remove(fname)\n \n         try:\n@@ -6899,7 +6899,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n             self._DoTestFile('292_mkimage_missing_multiple.dts', allow_missing=False)\n         self.assertIn(\"not found in input path\", str(e.exception))\n \n-    def _PrepareSignEnv(self, dts='280_fit_sign.dts'):\n+    def _PrepareSignEnv(self, dts='fit/sign.dts'):\n         \"\"\"Prepare sign environment\n \n         Create private and public keys, add pubkey into dtb.\n@@ -7013,7 +7013,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n             'default-dt': 'test-fdt2',\n         }\n         data = self._DoReadFileDtb(\n-            '284_fit_fdt_list.dts',\n+            'fit/fdt_list.dts',\n             entry_args=entry_args,\n             extra_indirs=[os.path.join(self._indir, TEST_FDT_SUBDIR)])[0]\n         self.assertEqual(U_BOOT_NODTB_DATA, data[-len(U_BOOT_NODTB_DATA):])\n@@ -7069,7 +7069,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n \n     def testTemplateFit(self):\n         \"\"\"Test using a template in a FIT\"\"\"\n-        fit_data = self._DoReadFile('288_template_fit.dts')\n+        fit_data = self._DoReadFile('fit/template.dts')\n         fname = os.path.join(self._indir, 'fit_data.fit')\n         tools.write_file(fname, fit_data)\n         out = tools.run('dumpimage', '-l', fname)\n@@ -7776,7 +7776,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         old_dir = os.getcwd()\n         try:\n             os.chdir(self._indir)\n-            self.CheckFitFdt('333_fit_fdt_dir.dts', False)\n+            self.CheckFitFdt('fit/fdt_dir.dts', False)\n         finally:\n             os.chdir(old_dir)\n \n@@ -7785,7 +7785,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         old_dir = os.getcwd()\n         try:\n             os.chdir(self._indir)\n-            self.CheckFitFdt('333_fit_fdt_dir.dts', False,\n+            self.CheckFitFdt('fit/fdt_dir.dts', False,\n                              default_dt='rockchip/test-fdt2')\n         finally:\n             os.chdir(old_dir)\n@@ -7798,7 +7798,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n             }\n         testdir, dtb_list = self.SetupAlternateDts()\n         data = self._DoReadFileDtb(\n-            '334_fit_fdt_compat.dts', use_real_dtb=True, update_dtb=True,\n+            'fit/fdt_compat.dts', use_real_dtb=True, update_dtb=True,\n             entry_args=entry_args, extra_indirs=[testdir])[0]\n \n         fit_data = data[len(U_BOOT_DATA):-len(U_BOOT_NODTB_DATA)]\n@@ -7831,7 +7831,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n             }\n         testdir, dtb_list = self.SetupAlternateDts()\n         data = self._DoReadFileDtb(\n-            '335_fit_fdt_phase.dts', use_real_dtb=True, update_dtb=True,\n+            'fit/fdt_phase.dts', use_real_dtb=True, update_dtb=True,\n             entry_args=entry_args, extra_indirs=[testdir])[0]\n         fit_data = data[len(U_BOOT_DATA):-len(U_BOOT_NODTB_DATA)]\n         fit = fdt.Fdt.FromData(fit_data)\n@@ -7933,7 +7933,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         test_subdir = os.path.join(self._indir, TEST_FDT_SUBDIR)\n         keys_subdir = os.path.join(self._indir, \"keys\")\n         data = self._DoReadFileDtb(\n-            '340_fit_signature.dts',\n+            'fit/signature.dts',\n             entry_args=entry_args,\n             extra_indirs=[test_subdir, keys_subdir])[0]\n \n@@ -7974,7 +7974,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         with unittest.mock.patch.dict('os.environ',\n                                       {'OPENSSL_ENGINES': ossl_engines_path}):\n             data = self._DoReadFileDtb(\n-                '340_fit_signature_engine.dts',\n+                'fit/signature_engine.dts',\n                 entry_args=entry_args,\n                 extra_indirs=[test_subdir])[0]\n \n@@ -8015,7 +8015,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n \n         with self.assertRaises(ValueError) as e:\n             self._DoReadFileDtb(\n-                    '340_fit_signature_engine_encrypt.dts',\n+                    'fit/signature_engine_encrypt.dts',\n                     entry_args=entry_args,\n                     extra_indirs=[test_subdir])\n \n@@ -8075,7 +8075,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n                                       {'OPENSSL_CONF': ossl_conf,\n                                        'SOFTHSM2_CONF': softhsm2_conf}):\n             data = self._DoReadFileDtb(\n-                '340_fit_signature_engine_pkcs11.dts',\n+                'fit/signature_engine_pkcs11.dts',\n                 entry_args=entry_args,\n                 extra_indirs=[test_subdir])[0]\n \n@@ -8153,7 +8153,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n                                        'SOFTHSM2_CONF': softhsm2_conf,\n                                        'MKIMAGE_SIGN_PIN': '1234'}):\n             data = self._DoReadFileDtb(\n-                '340_fit_signature_engine_pkcs11_object.dts',\n+                'fit/signature_engine_pkcs11_object.dts',\n                 entry_args=entry_args,\n                 extra_indirs=[test_subdir])[0]\n \n@@ -8188,7 +8188,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         test_subdir = os.path.join(self._indir, TEST_FDT_SUBDIR)\n         with self.assertRaises(ValueError) as e:\n             self._DoReadFileDtb(\n-                '340_fit_signature.dts',\n+                'fit/signature.dts',\n                 entry_args=entry_args,\n                 extra_indirs=[test_subdir])[0]\n         self.assertIn(\n@@ -8214,7 +8214,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         keys_subdir2 = os.path.join(self._indir, \"keys2\")\n         with self.assertRaises(ValueError) as e:\n             self._DoReadFileDtb(\n-                '341_fit_signature.dts',\n+                'fit/signature_multi_key.dts',\n                 entry_args=entry_args,\n                 extra_indirs=[test_subdir, keys_subdir1, keys_subdir2])[0]\n         self.assertIn(\n@@ -8232,7 +8232,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         }\n         test_subdir = os.path.join(self._indir, TEST_FDT_SUBDIR)\n         self._DoReadFileDtb(\n-            '342_fit_signature.dts',\n+            'fit/signature_no_nodes.dts',\n             entry_args=entry_args,\n             extra_indirs=[test_subdir])[0]\n \n@@ -8248,7 +8248,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n         test_subdir = os.path.join(self._indir, TEST_FDT_SUBDIR)\n         with self.assertRaises(ValueError) as e:\n             self._DoReadFileDtb(\n-                    '347_key_name_hint_dir_fit_signature.dts',\n+                    'fit/key_name_hint_dir_signature.dts',\n                     entry_args=entry_args,\n                     extra_indirs=[test_subdir])\n         self.assertIn(\n@@ -8262,7 +8262,7 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n \n         keys_subdir = os.path.join(self._indir, \"keys\")\n         data = self._DoReadFileDtb(\n-            '343_fit_encrypt_data.dts',\n+            'fit/encrypt_data.dts',\n             extra_indirs=[keys_subdir])[0]\n \n         fit = fdt.Fdt.FromData(data)\n@@ -8296,13 +8296,13 @@ fdt         fdtmap                Extract the devicetree blob from the fdtmap\n     def testSimpleFitEncryptedDataMissingKey(self):\n         \"\"\"Test an image with a FIT containing data to be encrypted but with a missing key\"\"\"\n         with self.assertRaises(ValueError) as e:\n-            self._DoReadFile('344_fit_encrypt_data_no_key.dts')\n+            self._DoReadFile('fit/encrypt_data_no_key.dts')\n \n         self.assertIn(\"Filename 'aes256.bin' not found in input path\", str(e.exception))\n \n     def testFitFdtName(self):\n         \"\"\"Test an image with an FIT with multiple FDT images using NAME\"\"\"\n-        self.CheckFitFdt('345_fit_fdt_name.dts', use_seq_num=False)\n+        self.CheckFitFdt('fit/fdt_name.dts', use_seq_num=False)\n \n     def testRemoveTemplate(self):\n         \"\"\"Test whether template is removed\"\"\"\ndiff --git a/tools/binman/test/275_fit_align.dts b/tools/binman/test/fit/align.dts\nsimilarity index 100%\nrename from tools/binman/test/275_fit_align.dts\nrename to tools/binman/test/fit/align.dts\ndiff --git a/tools/binman/test/227_fit_bad_dir.dts b/tools/binman/test/fit/bad_dir.dts\nsimilarity index 71%\nrename from tools/binman/test/227_fit_bad_dir.dts\nrename to tools/binman/test/fit/bad_dir.dts\nindex 51f4816c4c2..c6d5c7b0a87 100644\n--- a/tools/binman/test/227_fit_bad_dir.dts\n+++ b/tools/binman/test/fit/bad_dir.dts\n@@ -2,7 +2,7 @@\n \n /dts-v1/;\n \n-#include \"226_fit_split_elf.dts\"\n+#include \"split_elf.dts\"\n \n &atf {\n \tfit,something = \"bad\";\ndiff --git a/tools/binman/test/228_fit_bad_dir_config.dts b/tools/binman/test/fit/bad_dir_config.dts\nsimilarity index 71%\nrename from tools/binman/test/228_fit_bad_dir_config.dts\nrename to tools/binman/test/fit/bad_dir_config.dts\nindex 825a346c3e6..bae805a9523 100644\n--- a/tools/binman/test/228_fit_bad_dir_config.dts\n+++ b/tools/binman/test/fit/bad_dir_config.dts\n@@ -2,7 +2,7 @@\n \n /dts-v1/;\n \n-#include \"226_fit_split_elf.dts\"\n+#include \"split_elf.dts\"\n \n &config {\n \tfit,config = \"bad\";\ndiff --git a/tools/binman/test/224_fit_bad_oper.dts b/tools/binman/test/fit/bad_oper.dts\nsimilarity index 100%\nrename from tools/binman/test/224_fit_bad_oper.dts\nrename to tools/binman/test/fit/bad_oper.dts\ndiff --git a/tools/binman/test/343_fit_encrypt_data.dts b/tools/binman/test/fit/encrypt_data.dts\nsimilarity index 100%\nrename from tools/binman/test/343_fit_encrypt_data.dts\nrename to tools/binman/test/fit/encrypt_data.dts\ndiff --git a/tools/binman/test/344_fit_encrypt_data_no_key.dts b/tools/binman/test/fit/encrypt_data_no_key.dts\nsimilarity index 100%\nrename from tools/binman/test/344_fit_encrypt_data_no_key.dts\nrename to tools/binman/test/fit/encrypt_data_no_key.dts\ndiff --git a/tools/binman/test/162_fit_external.dts b/tools/binman/test/fit/external.dts\nsimilarity index 100%\nrename from tools/binman/test/162_fit_external.dts\nrename to tools/binman/test/fit/external.dts\ndiff --git a/tools/binman/test/240_fit_extract_replace.dts b/tools/binman/test/fit/extract_replace.dts\nsimilarity index 100%\nrename from tools/binman/test/240_fit_extract_replace.dts\nrename to tools/binman/test/fit/extract_replace.dts\ndiff --git a/tools/binman/test/170_fit_fdt.dts b/tools/binman/test/fit/fdt.dts\nsimilarity index 100%\nrename from tools/binman/test/170_fit_fdt.dts\nrename to tools/binman/test/fit/fdt.dts\ndiff --git a/tools/binman/test/334_fit_fdt_compat.dts b/tools/binman/test/fit/fdt_compat.dts\nsimilarity index 100%\nrename from tools/binman/test/334_fit_fdt_compat.dts\nrename to tools/binman/test/fit/fdt_compat.dts\ndiff --git a/tools/binman/test/333_fit_fdt_dir.dts b/tools/binman/test/fit/fdt_dir.dts\nsimilarity index 100%\nrename from tools/binman/test/333_fit_fdt_dir.dts\nrename to tools/binman/test/fit/fdt_dir.dts\ndiff --git a/tools/binman/test/284_fit_fdt_list.dts b/tools/binman/test/fit/fdt_list.dts\nsimilarity index 100%\nrename from tools/binman/test/284_fit_fdt_list.dts\nrename to tools/binman/test/fit/fdt_list.dts\ndiff --git a/tools/binman/test/171_fit_fdt_missing_prop.dts b/tools/binman/test/fit/fdt_missing_prop.dts\nsimilarity index 100%\nrename from tools/binman/test/171_fit_fdt_missing_prop.dts\nrename to tools/binman/test/fit/fdt_missing_prop.dts\ndiff --git a/tools/binman/test/345_fit_fdt_name.dts b/tools/binman/test/fit/fdt_name.dts\nsimilarity index 100%\nrename from tools/binman/test/345_fit_fdt_name.dts\nrename to tools/binman/test/fit/fdt_name.dts\ndiff --git a/tools/binman/test/223_fit_fdt_oper.dts b/tools/binman/test/fit/fdt_oper.dts\nsimilarity index 100%\nrename from tools/binman/test/223_fit_fdt_oper.dts\nrename to tools/binman/test/fit/fdt_oper.dts\ndiff --git a/tools/binman/test/335_fit_fdt_phase.dts b/tools/binman/test/fit/fdt_phase.dts\nsimilarity index 100%\nrename from tools/binman/test/335_fit_fdt_phase.dts\nrename to tools/binman/test/fit/fdt_phase.dts\ndiff --git a/tools/binman/test/276_fit_firmware_loadables.dts b/tools/binman/test/fit/firmware_loadables.dts\nsimilarity index 100%\nrename from tools/binman/test/276_fit_firmware_loadables.dts\nrename to tools/binman/test/fit/firmware_loadables.dts\ndiff --git a/tools/binman/test/161_fit.dts b/tools/binman/test/fit/fit.dts\nsimilarity index 100%\nrename from tools/binman/test/161_fit.dts\nrename to tools/binman/test/fit/fit.dts\ndiff --git a/tools/binman/test/219_fit_gennode.dts b/tools/binman/test/fit/gennode.dts\nsimilarity index 100%\nrename from tools/binman/test/219_fit_gennode.dts\nrename to tools/binman/test/fit/gennode.dts\ndiff --git a/tools/binman/test/167_fit_image_subentry_alignment.dts b/tools/binman/test/fit/image_subentry_alignment.dts\nsimilarity index 100%\nrename from tools/binman/test/167_fit_image_subentry_alignment.dts\nrename to tools/binman/test/fit/image_subentry_alignment.dts\ndiff --git a/tools/binman/test/347_key_name_hint_dir_fit_signature.dts b/tools/binman/test/fit/key_name_hint_dir_signature.dts\nsimilarity index 100%\nrename from tools/binman/test/347_key_name_hint_dir_fit_signature.dts\nrename to tools/binman/test/fit/key_name_hint_dir_signature.dts\ndiff --git a/tools/binman/test/168_fit_missing_blob.dts b/tools/binman/test/fit/missing_blob.dts\nsimilarity index 100%\nrename from tools/binman/test/168_fit_missing_blob.dts\nrename to tools/binman/test/fit/missing_blob.dts\ndiff --git a/tools/binman/test/277_replace_fit_sibling.dts b/tools/binman/test/fit/replace_sibling.dts\nsimilarity index 100%\nrename from tools/binman/test/277_replace_fit_sibling.dts\nrename to tools/binman/test/fit/replace_sibling.dts\ndiff --git a/tools/binman/test/280_fit_sign.dts b/tools/binman/test/fit/sign.dts\nsimilarity index 100%\nrename from tools/binman/test/280_fit_sign.dts\nrename to tools/binman/test/fit/sign.dts\ndiff --git a/tools/binman/test/340_fit_signature.dts b/tools/binman/test/fit/signature.dts\nsimilarity index 100%\nrename from tools/binman/test/340_fit_signature.dts\nrename to tools/binman/test/fit/signature.dts\ndiff --git a/tools/binman/test/340_fit_signature_engine.dts b/tools/binman/test/fit/signature_engine.dts\nsimilarity index 100%\nrename from tools/binman/test/340_fit_signature_engine.dts\nrename to tools/binman/test/fit/signature_engine.dts\ndiff --git a/tools/binman/test/340_fit_signature_engine_encrypt.dts b/tools/binman/test/fit/signature_engine_encrypt.dts\nsimilarity index 100%\nrename from tools/binman/test/340_fit_signature_engine_encrypt.dts\nrename to tools/binman/test/fit/signature_engine_encrypt.dts\ndiff --git a/tools/binman/test/340_fit_signature_engine_pkcs11.dts b/tools/binman/test/fit/signature_engine_pkcs11.dts\nsimilarity index 100%\nrename from tools/binman/test/340_fit_signature_engine_pkcs11.dts\nrename to tools/binman/test/fit/signature_engine_pkcs11.dts\ndiff --git a/tools/binman/test/340_fit_signature_engine_pkcs11_object.dts b/tools/binman/test/fit/signature_engine_pkcs11_object.dts\nsimilarity index 100%\nrename from tools/binman/test/340_fit_signature_engine_pkcs11_object.dts\nrename to tools/binman/test/fit/signature_engine_pkcs11_object.dts\ndiff --git a/tools/binman/test/341_fit_signature.dts b/tools/binman/test/fit/signature_multi_key.dts\nsimilarity index 100%\nrename from tools/binman/test/341_fit_signature.dts\nrename to tools/binman/test/fit/signature_multi_key.dts\ndiff --git a/tools/binman/test/342_fit_signature.dts b/tools/binman/test/fit/signature_no_nodes.dts\nsimilarity index 100%\nrename from tools/binman/test/342_fit_signature.dts\nrename to tools/binman/test/fit/signature_no_nodes.dts\ndiff --git a/tools/binman/test/226_fit_split_elf.dts b/tools/binman/test/fit/split_elf.dts\nsimilarity index 100%\nrename from tools/binman/test/226_fit_split_elf.dts\nrename to tools/binman/test/fit/split_elf.dts\ndiff --git a/tools/binman/test/220_fit_subentry_bintool.dts b/tools/binman/test/fit/subentry_bintool.dts\nsimilarity index 100%\nrename from tools/binman/test/220_fit_subentry_bintool.dts\nrename to tools/binman/test/fit/subentry_bintool.dts\ndiff --git a/tools/binman/test/221_fit_subentry_hash.dts b/tools/binman/test/fit/subentry_hash.dts\nsimilarity index 100%\nrename from tools/binman/test/221_fit_subentry_hash.dts\nrename to tools/binman/test/fit/subentry_hash.dts\ndiff --git a/tools/binman/test/264_tee_os_opt_fit.dts b/tools/binman/test/fit/tee_os_opt.dts\nsimilarity index 100%\nrename from tools/binman/test/264_tee_os_opt_fit.dts\nrename to tools/binman/test/fit/tee_os_opt.dts\ndiff --git a/tools/binman/test/265_tee_os_opt_fit_bad.dts b/tools/binman/test/fit/tee_os_opt_bad.dts\nsimilarity index 100%\nrename from tools/binman/test/265_tee_os_opt_fit_bad.dts\nrename to tools/binman/test/fit/tee_os_opt_bad.dts\ndiff --git a/tools/binman/test/288_template_fit.dts b/tools/binman/test/fit/template.dts\nsimilarity index 100%\nrename from tools/binman/test/288_template_fit.dts\nrename to tools/binman/test/fit/template.dts\n",
    "prefixes": [
        "v2",
        "05/23"
    ]
}