[PATCH v2] test: print: Fix hexdump test on 64bit systems
Simon Glass
sjg at chromium.org
Fri Aug 25 20:06:11 CEST 2023
On Fri, 25 Aug 2023 at 02:20, Marek Vasut
<marek.vasut+renesas at mailbox.org> wrote:
>
> Use the following regex to make this test compatible with
> both 32bit and 64bit systems. The trick is to use %0*lx
> format string for the address prefix in the test.
>
> "
> s@\(ut_assert_nextline("\)0\+\([^:]\+\)\(:.*"\)\();\)@\1%0*lx\3, IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x\2UL\4
> "
>
> Signed-off-by: Marek Vasut <marek.vasut+renesas at mailbox.org>
> ---
> Cc: Mario Six <mario.six at gdsys.cc>
> Cc: Simon Glass <sjg at chromium.org>
> ---
> V2: Break line before IS_ENABLED
> ---
> test/print_ut.c | 42 ++++++++++++++++++++++++++++--------------
> 1 file changed, 28 insertions(+), 14 deletions(-)
>
Reviewed-by: Simon Glass <sjg at chromium.org>
> diff --git a/test/print_ut.c b/test/print_ut.c
> index 47a6ce57840..b26f6281b01 100644
> --- a/test/print_ut.c
> +++ b/test/print_ut.c
> @@ -283,16 +283,21 @@ static int print_do_hex_dump(struct unit_test_state *uts)
> /* bytes */
> console_record_reset();
> print_hex_dump_bytes("", DUMP_PREFIX_ADDRESS, buf, 0x12);
> - ut_assert_nextline("00000000: 00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff ..\"3DUfw........");
> - ut_assert_nextline("00000010: 10 00 ..");
> + ut_assert_nextline("%0*lx: 00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff ..\"3DUfw........",
> + IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x0UL);
> + ut_assert_nextline("%0*lx: 10 00 ..",
> + IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x10UL);
> ut_assert_console_end();
>
> /* line length */
> console_record_reset();
> print_hex_dump("", DUMP_PREFIX_ADDRESS, 8, 1, buf, 0x12, true);
> - ut_assert_nextline("00000000: 00 11 22 33 44 55 66 77 ..\"3DUfw");
> - ut_assert_nextline("00000008: 88 99 aa bb cc dd ee ff ........");
> - ut_assert_nextline("00000010: 10 00 ..");
> + ut_assert_nextline("%0*lx: 00 11 22 33 44 55 66 77 ..\"3DUfw",
> + IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x0UL);
> + ut_assert_nextline("%0*lx: 88 99 aa bb cc dd ee ff ........",
> + IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x8UL);
> + ut_assert_nextline("%0*lx: 10 00 ..",
> + IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x10UL);
> ut_assert_console_end();
> unmap_sysmem(buf);
>
> @@ -300,31 +305,39 @@ static int print_do_hex_dump(struct unit_test_state *uts)
> console_record_reset();
> buf[0x41] = 0x41;
> print_hex_dump("", DUMP_PREFIX_ADDRESS, 0x40, 1, buf, 0x42, true);
> - ut_assert_nextline("00000000: 00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..\"3DUfw........................................................");
> - ut_assert_nextline("00000040: 00 41 .A");
> + ut_assert_nextline("%0*lx: 00 11 22 33 44 55 66 77 88 99 aa bb cc dd ee ff 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..\"3DUfw........................................................",
> + IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x0UL);
> + ut_assert_nextline("%0*lx: 00 41 .A",
> + IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x40UL);
> ut_assert_console_end();
>
> /* 16-bit */
> console_record_reset();
> print_hex_dump("", DUMP_PREFIX_ADDRESS, 0, 2, buf, 0x12, true);
> - ut_assert_nextline("00000000: 1100 3322 5544 7766 9988 bbaa ddcc ffee ..\"3DUfw........");
> - ut_assert_nextline("00000010: 0010 ..");
> + ut_assert_nextline("%0*lx: 1100 3322 5544 7766 9988 bbaa ddcc ffee ..\"3DUfw........",
> + IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x0UL);
> + ut_assert_nextline("%0*lx: 0010 ..",
> + IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x10UL);
> ut_assert_console_end();
> unmap_sysmem(buf);
>
> /* 32-bit */
> console_record_reset();
> print_hex_dump("", DUMP_PREFIX_ADDRESS, 0, 4, buf, 0x14, true);
> - ut_assert_nextline("00000000: 33221100 77665544 bbaa9988 ffeeddcc ..\"3DUfw........");
> - ut_assert_nextline("00000010: 00000010 ....");
> + ut_assert_nextline("%0*lx: 33221100 77665544 bbaa9988 ffeeddcc ..\"3DUfw........",
> + IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x0UL);
> + ut_assert_nextline("%0*lx: 00000010 ....",
> + IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x10UL);
> ut_assert_console_end();
> unmap_sysmem(buf);
>
> /* 64-bit */
> console_record_reset();
> print_hex_dump("", DUMP_PREFIX_ADDRESS, 16, 8, buf, 0x18, true);
> - ut_assert_nextline("00000000: 7766554433221100 ffeeddccbbaa9988 ..\"3DUfw........");
> - ut_assert_nextline("00000010: 0000000000000010 ........");
> + ut_assert_nextline("%0*lx: 7766554433221100 ffeeddccbbaa9988 ..\"3DUfw........",
> + IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x0UL);
> + ut_assert_nextline("%0*lx: 0000000000000010 ........",
> + IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x10UL);
> ut_assert_console_end();
> unmap_sysmem(buf);
>
> @@ -337,7 +350,8 @@ static int print_do_hex_dump(struct unit_test_state *uts)
> buf[4 + i] = 126 + i;
> buf[8] = 255;
> print_hex_dump("", DUMP_PREFIX_ADDRESS, 0, 1, buf, 10, true);
> - ut_assert_nextline("00000000: 00 1f 20 21 7e 7f 80 81 ff 99 .. !~.....");
> + ut_assert_nextline("%0*lx: 00 1f 20 21 7e 7f 80 81 ff 99 .. !~.....",
> + IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x0UL);
> ut_assert_console_end();
> unmap_sysmem(buf);
>
> --
> 2.40.1
>
More information about the U-Boot
mailing list