[Concept,21/30] fit: Move values one column to the right

Message ID 20251120025614.2215587-22-sjg@u-boot.org
State New
Headers
Series fit: Improve and test the code to print FIT info |

Commit Message

Simon Glass Nov. 20, 2025, 2:55 a.m. UTC
  From: Simon Glass <simon.glass@canonical.com>

Line up the values witht the FIT Description and Created items at the
top. This looks a little nicer.

Signed-off-by: Simon Glass <simon.glass@canonical.com>
---

 boot/fit_print.c                |  11 +-
 test/boot/fit_print.c           | 202 ++++++++++++++++----------------
 test/py/tests/test_fit_print.py | 186 ++++++++++++++---------------
 3 files changed, 200 insertions(+), 199 deletions(-)
  

Patch

diff --git a/boot/fit_print.c b/boot/fit_print.c
index a361ec21b5e..e26f2294229 100644
--- a/boot/fit_print.c
+++ b/boot/fit_print.c
@@ -35,7 +35,7 @@  void fit_print_init(struct fit_print_ctx *ctx, const void *fit)
 {
 	ctx->fit = fit;
 	ctx->indent = IMAGE_INDENT;
-	ctx->tab = 16 + IMAGE_INDENT;
+	ctx->tab = 17 + IMAGE_INDENT;
 }
 
 /**
@@ -113,6 +113,7 @@  static void fit_image_print_data(struct fit_print_ctx *ctx, int noffset,
 	int value_len, ret, i;
 	uint8_t *value;
 
+	debug("%s node:    '%s'\n", type, fit_get_name(fit, noffset));
 	emit_type(ctx, type, "algo");
 	if (fit_image_hash_get_algo(fit, noffset, &algo)) {
 		printf("invalid/unsupported\n");
@@ -126,7 +127,7 @@  static void fit_image_print_data(struct fit_print_ctx *ctx, int noffset,
 
 	padding = fdt_getprop(fit, noffset, "padding", NULL);
 	if (padding)
-		printf("%*s%s padding: %s\n", p, "", type, padding);
+		printf("%*s%s padding:  %s\n", p, "", type, padding);
 
 	ret = fit_image_hash_get_value(fit, noffset, &value, &value_len);
 	emit_type(ctx, type, "value");
@@ -341,7 +342,7 @@  static void fit_conf_print(struct fit_print_ctx *ctx, int noffset)
 		if (!i)
 			emit_label(ctx, "FDT");
 		else
-			printf("%*s              ", p, "");
+			printf("%*s               ", p, "");
 		printf("%s\n", uname);
 	}
 
@@ -357,7 +358,7 @@  static void fit_conf_print(struct fit_print_ctx *ctx, int noffset)
 		if (!i)
 			emit_label(ctx, "Loadables");
 		else
-			printf("%*s              ", p, "");
+			printf("%*s               ", p, "");
 		printf("%s\n", uname);
 	}
 
@@ -367,7 +368,7 @@  static void fit_conf_print(struct fit_print_ctx *ctx, int noffset)
 		if (!i)
 			emit_label(ctx, "Compatible");
 		else
-			printf("%*s              ", p, "");
+			printf("%*s               ", p, "");
 		printf("%s\n", uname);
 	}
 
diff --git a/test/boot/fit_print.c b/test/boot/fit_print.c
index 8e8d81e7f6b..3b105045667 100644
--- a/test/boot/fit_print.c
+++ b/test/boot/fit_print.c
@@ -39,118 +39,118 @@  static int test_fit_print_norun(struct unit_test_state *uts)
 	ut_assert_nextline("   FIT description: Test FIT image for printing");
 	ut_assert_nextline("   Created:         2009-02-13  23:31:30 UTC");
 	ut_assert_nextline("    Image 0 (kernel)");
-	ut_assert_nextline("     Description:  Test kernel");
-	ut_assert_nextline("     Created:      2009-02-13  23:31:30 UTC");
-	ut_assert_nextline("     Type:         Kernel Image");
-	ut_assert_nextline("     Compression:  gzip compressed");
-	ut_assert_nextline("     Data Start:   0x000100c4");
-	ut_assert_nextline("     Data Size:    327 Bytes = 327 Bytes");
-	ut_assert_nextline("     Architecture: Sandbox");
-	ut_assert_nextline("     OS:           Linux");
-	ut_assert_nextline("     Load Address: 0x01000000");
-	ut_assert_nextline("     Entry Point:  0x01000000");
-	ut_assert_nextline("     Hash algo:    sha256");
-	ut_assert_nextline("     Hash value:   fad998b94ef12fdac0c347915d8b9b6069a4011399e1a2097638a2cb33244cee");
+	ut_assert_nextline("     Description:   Test kernel");
+	ut_assert_nextline("     Created:       2009-02-13  23:31:30 UTC");
+	ut_assert_nextline("     Type:          Kernel Image");
+	ut_assert_nextline("     Compression:   gzip compressed");
+	ut_assert_nextline("     Data Start:    0x000100c4");
+	ut_assert_nextline("     Data Size:     327 Bytes = 327 Bytes");
+	ut_assert_nextline("     Architecture:  Sandbox");
+	ut_assert_nextline("     OS:            Linux");
+	ut_assert_nextline("     Load Address:  0x01000000");
+	ut_assert_nextline("     Entry Point:   0x01000000");
+	ut_assert_nextline("     Hash algo:     sha256");
+	ut_assert_nextline("     Hash value:    fad998b94ef12fdac0c347915d8b9b6069a4011399e1a2097638a2cb33244cee");
 	ut_assert_nextline("    Image 1 (ramdisk)");
-	ut_assert_nextline("     Description:  Test ramdisk");
-	ut_assert_nextline("     Created:      2009-02-13  23:31:30 UTC");
-	ut_assert_nextline("     Type:         RAMDisk Image");
-	ut_assert_nextline("     Compression:  uncompressed");
-	ut_assert_nextline("     Data Start:   0x00010304");
-	ut_assert_nextline("     Data Size:    301 Bytes = 301 Bytes");
-	ut_assert_nextline("     Architecture: Sandbox");
-	ut_assert_nextline("     OS:           Linux");
-	ut_assert_nextline("     Load Address: 0x02000000");
-	ut_assert_nextline("     Entry Point:  unavailable");
-	ut_assert_nextline("     Hash algo:    sha256");
-	ut_assert_nextline("     Hash value:   53e2a65d92ad890dcd89d83a1f95ad6b8206e0e4889548b035062fc494e7f655");
+	ut_assert_nextline("     Description:   Test ramdisk");
+	ut_assert_nextline("     Created:       2009-02-13  23:31:30 UTC");
+	ut_assert_nextline("     Type:          RAMDisk Image");
+	ut_assert_nextline("     Compression:   uncompressed");
+	ut_assert_nextline("     Data Start:    0x00010304");
+	ut_assert_nextline("     Data Size:     301 Bytes = 301 Bytes");
+	ut_assert_nextline("     Architecture:  Sandbox");
+	ut_assert_nextline("     OS:            Linux");
+	ut_assert_nextline("     Load Address:  0x02000000");
+	ut_assert_nextline("     Entry Point:   unavailable");
+	ut_assert_nextline("     Hash algo:     sha256");
+	ut_assert_nextline("     Hash value:    53e2a65d92ad890dcd89d83a1f95ad6b8206e0e4889548b035062fc494e7f655");
 	ut_assert_nextline("    Image 2 (fdt-1)");
-	ut_assert_nextline("     Description:  Test FDT 1");
-	ut_assert_nextline("     Created:      2009-02-13  23:31:30 UTC");
-	ut_assert_nextline("     Type:         Flat Device Tree");
-	ut_assert_nextline("     Compression:  uncompressed");
-	ut_assert_nextline("     Data Start:   0x00010518");
-	ut_assert_nextline("     Data Size:    161 Bytes = 161 Bytes");
-	ut_assert_nextline("     Architecture: Sandbox");
-	ut_assert_nextline("     Hash algo:    sha256");
-	ut_assert_nextline("     Hash value:   1264bc4619a1162736fdca8e63e44a1b009fbeaaa259c356b555b91186257ffb");
+	ut_assert_nextline("     Description:   Test FDT 1");
+	ut_assert_nextline("     Created:       2009-02-13  23:31:30 UTC");
+	ut_assert_nextline("     Type:          Flat Device Tree");
+	ut_assert_nextline("     Compression:   uncompressed");
+	ut_assert_nextline("     Data Start:    0x00010518");
+	ut_assert_nextline("     Data Size:     161 Bytes = 161 Bytes");
+	ut_assert_nextline("     Architecture:  Sandbox");
+	ut_assert_nextline("     Hash algo:     sha256");
+	ut_assert_nextline("     Hash value:    1264bc4619a1162736fdca8e63e44a1b009fbeaaa259c356b555b91186257ffb");
 	ut_assert_nextline("    Image 3 (fdt-2)");
-	ut_assert_nextline("     Description:  Test FDT 2");
-	ut_assert_nextline("     Created:      2009-02-13  23:31:30 UTC");
-	ut_assert_nextline("     Type:         Flat Device Tree");
-	ut_assert_nextline("     Compression:  uncompressed");
-	ut_assert_nextline("     Data Start:   0x0001067c");
-	ut_assert_nextline("     Data Size:    161 Bytes = 161 Bytes");
-	ut_assert_nextline("     Architecture: Sandbox");
-	ut_assert_nextline("     Hash algo:    sha256");
-	ut_assert_nextline("     Hash value:   3a07e37c76dd48c2a17927981f0959758ac6fd0d649e2032143c5afeea9a98a4");
+	ut_assert_nextline("     Description:   Test FDT 2");
+	ut_assert_nextline("     Created:       2009-02-13  23:31:30 UTC");
+	ut_assert_nextline("     Type:          Flat Device Tree");
+	ut_assert_nextline("     Compression:   uncompressed");
+	ut_assert_nextline("     Data Start:    0x0001067c");
+	ut_assert_nextline("     Data Size:     161 Bytes = 161 Bytes");
+	ut_assert_nextline("     Architecture:  Sandbox");
+	ut_assert_nextline("     Hash algo:     sha256");
+	ut_assert_nextline("     Hash value:    3a07e37c76dd48c2a17927981f0959758ac6fd0d649e2032143c5afeea9a98a4");
 	ut_assert_nextline("    Image 4 (firmware-1)");
-	ut_assert_nextline("     Description:  Test Firmware 1");
-	ut_assert_nextline("     Created:      2009-02-13  23:31:30 UTC");
-	ut_assert_nextline("     Type:         Firmware");
-	ut_assert_nextline("     Compression:  uncompressed");
-	ut_assert_nextline("     Data Start:   0x000107e8");
-	ut_assert_nextline("     Data Size:    3891 Bytes = 3.8 KiB");
-	ut_assert_nextline("     Architecture: Sandbox");
-	ut_assert_nextline("     OS:           Unknown OS");
-	ut_assert_nextline("     Load Address: unavailable");
-	ut_assert_nextline("     Hash algo:    sha256");
-	ut_assert_nextline("     Hash value:   53f1358540a556282764ceaf2912e701d2e25902a6b069b329e57e3c59148414");
+	ut_assert_nextline("     Description:   Test Firmware 1");
+	ut_assert_nextline("     Created:       2009-02-13  23:31:30 UTC");
+	ut_assert_nextline("     Type:          Firmware");
+	ut_assert_nextline("     Compression:   uncompressed");
+	ut_assert_nextline("     Data Start:    0x000107e8");
+	ut_assert_nextline("     Data Size:     3891 Bytes = 3.8 KiB");
+	ut_assert_nextline("     Architecture:  Sandbox");
+	ut_assert_nextline("     OS:            Unknown OS");
+	ut_assert_nextline("     Load Address:  unavailable");
+	ut_assert_nextline("     Hash algo:     sha256");
+	ut_assert_nextline("     Hash value:    53f1358540a556282764ceaf2912e701d2e25902a6b069b329e57e3c59148414");
 	ut_assert_nextline("    Image 5 (firmware-2)");
-	ut_assert_nextline("     Description:  Test Firmware 2");
-	ut_assert_nextline("     Created:      2009-02-13  23:31:30 UTC");
-	ut_assert_nextline("     Type:         Firmware");
-	ut_assert_nextline("     Compression:  uncompressed");
-	ut_assert_nextline("     Data Start:   0x000117e8");
-	ut_assert_nextline("     Data Size:    3891 Bytes = 3.8 KiB");
-	ut_assert_nextline("     Architecture: Sandbox");
-	ut_assert_nextline("     OS:           Unknown OS");
-	ut_assert_nextline("     Load Address: unavailable");
-	ut_assert_nextline("     Hash algo:    sha256");
-	ut_assert_nextline("     Hash value:   6a12ac2283f3c9605113b5c2287e983da5671d8d0015381009d75169526676f1");
+	ut_assert_nextline("     Description:   Test Firmware 2");
+	ut_assert_nextline("     Created:       2009-02-13  23:31:30 UTC");
+	ut_assert_nextline("     Type:          Firmware");
+	ut_assert_nextline("     Compression:   uncompressed");
+	ut_assert_nextline("     Data Start:    0x000117e8");
+	ut_assert_nextline("     Data Size:     3891 Bytes = 3.8 KiB");
+	ut_assert_nextline("     Architecture:  Sandbox");
+	ut_assert_nextline("     OS:            Unknown OS");
+	ut_assert_nextline("     Load Address:  unavailable");
+	ut_assert_nextline("     Hash algo:     sha256");
+	ut_assert_nextline("     Hash value:    6a12ac2283f3c9605113b5c2287e983da5671d8d0015381009d75169526676f1");
 	ut_assert_nextline("    Image 6 (fpga)");
-	ut_assert_nextline("     Description:  Test FPGA");
-	ut_assert_nextline("     Created:      2009-02-13  23:31:30 UTC");
-	ut_assert_nextline("     Type:         FPGA Image");
-	ut_assert_nextline("     Compression:  uncompressed");
-	ut_assert_nextline("     Data Start:   0x000127e0");
-	ut_assert_nextline("     Data Size:    4291 Bytes = 4.2 KiB");
-	ut_assert_nextline("     Load Address: unavailable");
-	ut_assert_nextline("     Hash algo:    sha256");
-	ut_assert_nextline("     Hash value:   2f588e50e95abc7f9d6afd1d5b3f2bf285cccd55efcf52f47a975dbff3265622");
+	ut_assert_nextline("     Description:   Test FPGA");
+	ut_assert_nextline("     Created:       2009-02-13  23:31:30 UTC");
+	ut_assert_nextline("     Type:          FPGA Image");
+	ut_assert_nextline("     Compression:   uncompressed");
+	ut_assert_nextline("     Data Start:    0x000127e0");
+	ut_assert_nextline("     Data Size:     4291 Bytes = 4.2 KiB");
+	ut_assert_nextline("     Load Address:  unavailable");
+	ut_assert_nextline("     Hash algo:     sha256");
+	ut_assert_nextline("     Hash value:    2f588e50e95abc7f9d6afd1d5b3f2bf285cccd55efcf52f47a975dbff3265622");
 	ut_assert_nextline("    Image 7 (script)");
-	ut_assert_nextline("     Description:  unavailable");
-	ut_assert_nextline("     Created:      2009-02-13  23:31:30 UTC");
-	ut_assert_nextline("     Type:         Script");
-	ut_assert_nextline("     Compression:  uncompressed");
-	ut_assert_nextline("     Data Start:   0x0001394c");
-	ut_assert_nextline("     Data Size:    3791 Bytes = 3.7 KiB");
-	ut_assert_nextline("     Hash algo:    invalid/unsupported");
+	ut_assert_nextline("     Description:   unavailable");
+	ut_assert_nextline("     Created:       2009-02-13  23:31:30 UTC");
+	ut_assert_nextline("     Type:          Script");
+	ut_assert_nextline("     Compression:   uncompressed");
+	ut_assert_nextline("     Data Start:    0x0001394c");
+	ut_assert_nextline("     Data Size:     3791 Bytes = 3.7 KiB");
+	ut_assert_nextline("     Hash algo:     invalid/unsupported");
 	ut_assert_nextline("    Default Configuration: 'conf-1'");
 	ut_assert_nextline("    Configuration 0 (conf-1)");
-	ut_assert_nextline("     Description:  Test configuration");
-	ut_assert_nextline("     Kernel:       kernel");
-	ut_assert_nextline("     Init Ramdisk: ramdisk");
-	ut_assert_nextline("     FDT:          fdt-1");
-	ut_assert_nextline("     Compatible:   vendor,board-1.0");
-	ut_assert_nextline("                   vendor,board");
-	ut_assert_nextline("     Sign algo:    sha256,rsa2048:test-key");
-	ut_assert_nextline("     Sign padding: pkcs-1.5");
-	ut_assert_nextlinen("     Sign value:   c20f64d9bf79ddb0b1a6");
-	ut_assert_nextline("     Timestamp:    2009-02-13  23:31:30 UTC");
+	ut_assert_nextline("     Description:   Test configuration");
+	ut_assert_nextline("     Kernel:        kernel");
+	ut_assert_nextline("     Init Ramdisk:  ramdisk");
+	ut_assert_nextline("     FDT:           fdt-1");
+	ut_assert_nextline("     Compatible:    vendor,board-1.0");
+	ut_assert_nextline("                    vendor,board");
+	ut_assert_nextline("     Sign algo:     sha256,rsa2048:test-key");
+	ut_assert_nextline("     Sign padding:  pkcs-1.5");
+	ut_assert_nextlinen("     Sign value:    c20f64d9bf79ddb0b1a6");
+	ut_assert_nextline("     Timestamp:     2009-02-13  23:31:30 UTC");
 	ut_assert_nextline("    Configuration 1 (conf-2)");
-	ut_assert_nextline("     Description:  Alternate configuration");
-	ut_assert_nextline("     Kernel:       kernel");
-	ut_assert_nextline("     FDT:          fdt-1");
-	ut_assert_nextline("                   fdt-2");
-	ut_assert_nextline("     FPGA:         fpga");
-	ut_assert_nextline("     Loadables:    firmware-1");
-	ut_assert_nextline("                   firmware-2");
-	ut_assert_nextline("     Compatible:   vendor,board-2.0");
+	ut_assert_nextline("     Description:   Alternate configuration");
+	ut_assert_nextline("     Kernel:        kernel");
+	ut_assert_nextline("     FDT:           fdt-1");
+	ut_assert_nextline("                    fdt-2");
+	ut_assert_nextline("     FPGA:          fpga");
+	ut_assert_nextline("     Loadables:     firmware-1");
+	ut_assert_nextline("                    firmware-2");
+	ut_assert_nextline("     Compatible:    vendor,board-2.0");
 	ut_assert_nextline("    Configuration 2 (conf-3)");
-	ut_assert_nextline("     Description:  unavailable");
-	ut_assert_nextline("     Kernel:       unavailable");
-	ut_assert_nextline("     Loadables:    script");
+	ut_assert_nextline("     Description:   unavailable");
+	ut_assert_nextline("     Kernel:        unavailable");
+	ut_assert_nextline("     Loadables:     script");
 	ut_assert_console_end();
 
 	os_free(buf);
diff --git a/test/py/tests/test_fit_print.py b/test/py/tests/test_fit_print.py
index 180467fba72..d8b034e9ce9 100644
--- a/test/py/tests/test_fit_print.py
+++ b/test/py/tests/test_fit_print.py
@@ -318,110 +318,110 @@  def test_fit_print_mkimage(ubman):
 FIT description: Test FIT image for printing
 Created:         {timestamp_str}
  Image 0 (kernel)
-  Description:  Test kernel
-  Created:      {timestamp_str}
-  Type:         Kernel Image
-  Compression:  gzip compressed
-  Data Size:    327 Bytes = 0.32 KiB = 0.00 MiB
-  Architecture: Sandbox
-  OS:           Linux
-  Load Address: 0x01000000
-  Entry Point:  0x01000000
-  Hash algo:    sha256
-  Hash value:   fad998b94ef12fdac0c347915d8b9b6069a4011399e1a2097638a2cb33244cee
+  Description:   Test kernel
+  Created:       {timestamp_str}
+  Type:          Kernel Image
+  Compression:   gzip compressed
+  Data Size:     327 Bytes = 0.32 KiB = 0.00 MiB
+  Architecture:  Sandbox
+  OS:            Linux
+  Load Address:  0x01000000
+  Entry Point:   0x01000000
+  Hash algo:     sha256
+  Hash value:    fad998b94ef12fdac0c347915d8b9b6069a4011399e1a2097638a2cb33244cee
  Image 1 (ramdisk)
-  Description:  Test ramdisk
-  Created:      {timestamp_str}
-  Type:         RAMDisk Image
-  Compression:  uncompressed
-  Data Size:    301 Bytes = 0.29 KiB = 0.00 MiB
-  Architecture: Sandbox
-  OS:           Linux
-  Load Address: 0x02000000
-  Entry Point:  unavailable
-  Hash algo:    sha256
-  Hash value:   53e2a65d92ad890dcd89d83a1f95ad6b8206e0e4889548b035062fc494e7f655
+  Description:   Test ramdisk
+  Created:       {timestamp_str}
+  Type:          RAMDisk Image
+  Compression:   uncompressed
+  Data Size:     301 Bytes = 0.29 KiB = 0.00 MiB
+  Architecture:  Sandbox
+  OS:            Linux
+  Load Address:  0x02000000
+  Entry Point:   unavailable
+  Hash algo:     sha256
+  Hash value:    53e2a65d92ad890dcd89d83a1f95ad6b8206e0e4889548b035062fc494e7f655
  Image 2 (fdt-1)
-  Description:  Test FDT 1
-  Created:      {timestamp_str}
-  Type:         Flat Device Tree
-  Compression:  uncompressed
-  Data Size:    161 Bytes = 0.16 KiB = 0.00 MiB
-  Architecture: Sandbox
-  Hash algo:    sha256
-  Hash value:   1264bc4619a1162736fdca8e63e44a1b009fbeaaa259c356b555b91186257ffb
+  Description:   Test FDT 1
+  Created:       {timestamp_str}
+  Type:          Flat Device Tree
+  Compression:   uncompressed
+  Data Size:     161 Bytes = 0.16 KiB = 0.00 MiB
+  Architecture:  Sandbox
+  Hash algo:     sha256
+  Hash value:    1264bc4619a1162736fdca8e63e44a1b009fbeaaa259c356b555b91186257ffb
  Image 3 (fdt-2)
-  Description:  Test FDT 2
-  Created:      {timestamp_str}
-  Type:         Flat Device Tree
-  Compression:  uncompressed
-  Data Size:    161 Bytes = 0.16 KiB = 0.00 MiB
-  Architecture: Sandbox
-  Hash algo:    sha256
-  Hash value:   3a07e37c76dd48c2a17927981f0959758ac6fd0d649e2032143c5afeea9a98a4
+  Description:   Test FDT 2
+  Created:       {timestamp_str}
+  Type:          Flat Device Tree
+  Compression:   uncompressed
+  Data Size:     161 Bytes = 0.16 KiB = 0.00 MiB
+  Architecture:  Sandbox
+  Hash algo:     sha256
+  Hash value:    3a07e37c76dd48c2a17927981f0959758ac6fd0d649e2032143c5afeea9a98a4
  Image 4 (firmware-1)
-  Description:  Test Firmware 1
-  Created:      {timestamp_str}
-  Type:         Firmware
-  Compression:  uncompressed
-  Data Size:    3891 Bytes = 3.80 KiB = 0.00 MiB
-  Architecture: Sandbox
-  OS:           Unknown OS
-  Load Address: unavailable
-  Hash algo:    sha256
-  Hash value:   53f1358540a556282764ceaf2912e701d2e25902a6b069b329e57e3c59148414
+  Description:   Test Firmware 1
+  Created:       {timestamp_str}
+  Type:          Firmware
+  Compression:   uncompressed
+  Data Size:     3891 Bytes = 3.80 KiB = 0.00 MiB
+  Architecture:  Sandbox
+  OS:            Unknown OS
+  Load Address:  unavailable
+  Hash algo:     sha256
+  Hash value:    53f1358540a556282764ceaf2912e701d2e25902a6b069b329e57e3c59148414
  Image 5 (firmware-2)
-  Description:  Test Firmware 2
-  Created:      {timestamp_str}
-  Type:         Firmware
-  Compression:  uncompressed
-  Data Size:    3891 Bytes = 3.80 KiB = 0.00 MiB
-  Architecture: Sandbox
-  OS:           Unknown OS
-  Load Address: unavailable
-  Hash algo:    sha256
-  Hash value:   6a12ac2283f3c9605113b5c2287e983da5671d8d0015381009d75169526676f1
+  Description:   Test Firmware 2
+  Created:       {timestamp_str}
+  Type:          Firmware
+  Compression:   uncompressed
+  Data Size:     3891 Bytes = 3.80 KiB = 0.00 MiB
+  Architecture:  Sandbox
+  OS:            Unknown OS
+  Load Address:  unavailable
+  Hash algo:     sha256
+  Hash value:    6a12ac2283f3c9605113b5c2287e983da5671d8d0015381009d75169526676f1
  Image 6 (fpga)
-  Description:  Test FPGA
-  Created:      {timestamp_str}
-  Type:         FPGA Image
-  Compression:  uncompressed
-  Data Size:    4291 Bytes = 4.19 KiB = 0.00 MiB
-  Load Address: unavailable
-  Hash algo:    sha256
-  Hash value:   2f588e50e95abc7f9d6afd1d5b3f2bf285cccd55efcf52f47a975dbff3265622
+  Description:   Test FPGA
+  Created:       {timestamp_str}
+  Type:          FPGA Image
+  Compression:   uncompressed
+  Data Size:     4291 Bytes = 4.19 KiB = 0.00 MiB
+  Load Address:  unavailable
+  Hash algo:     sha256
+  Hash value:    2f588e50e95abc7f9d6afd1d5b3f2bf285cccd55efcf52f47a975dbff3265622
  Image 7 (script)
-  Description:  unavailable
-  Created:      {timestamp_str}
-  Type:         Script
-  Compression:  uncompressed
-  Data Size:    3791 Bytes = 3.70 KiB = 0.00 MiB
-  Hash algo:    invalid/unsupported
+  Description:   unavailable
+  Created:       {timestamp_str}
+  Type:          Script
+  Compression:   uncompressed
+  Data Size:     3791 Bytes = 3.70 KiB = 0.00 MiB
+  Hash algo:     invalid/unsupported
  Default Configuration: 'conf-1'
  Configuration 0 (conf-1)
-  Description:  Test configuration
-  Kernel:       kernel
-  Init Ramdisk: ramdisk
-  FDT:          fdt-1
-  Compatible:   vendor,board-1.0
-                vendor,board
-  Sign algo:    sha256,rsa2048:test-key
-  Sign padding: pkcs-1.5
-  Sign value:   c20f64d9bf79ddb0b1a69293b2375ad88e70536684705a9577f2156e6da4df6d
-  Timestamp:    {timestamp_str}
+  Description:   Test configuration
+  Kernel:        kernel
+  Init Ramdisk:  ramdisk
+  FDT:           fdt-1
+  Compatible:    vendor,board-1.0
+                 vendor,board
+  Sign algo:     sha256,rsa2048:test-key
+  Sign padding:  pkcs-1.5
+  Sign value:    c20f64d9bf79ddb0b1a69293b2375ad88e70536684705a9577f2156e6da4df6d
+  Timestamp:     {timestamp_str}
  Configuration 1 (conf-2)
-  Description:  Alternate configuration
-  Kernel:       kernel
-  FDT:          fdt-1
-                fdt-2
-  FPGA:         fpga
-  Loadables:    firmware-1
-                firmware-2
-  Compatible:   vendor,board-2.0
+  Description:   Alternate configuration
+  Kernel:        kernel
+  FDT:           fdt-1
+                 fdt-2
+  FPGA:          fpga
+  Loadables:     firmware-1
+                 firmware-2
+  Compatible:    vendor,board-2.0
  Configuration 2 (conf-3)
-  Description:  unavailable
-  Kernel:       unavailable
-  Loadables:    script
+  Description:   unavailable
+  Kernel:        unavailable
+  Loadables:     script
 '''.strip().split('\n')
 
     lines = output.split('\n')