Message ID | 20230823193815.64213-1-marek.vasut+renesas@mailbox.org |
---|---|
State | Superseded |
Delegated to: | Tom Rini |
Headers | show |
Series | test: print: Fix hexdump test on 64bit systems | expand |
Hi Marek, On Wed, 23 Aug 2023 at 13:38, Marek Vasut <marek.vasut+renesas@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@mailbox.org> > --- > Cc: Mario Six <mario.six@gdsys.cc> > Cc: Simon Glass <sjg@chromium.org> > --- > test/print_ut.c | 28 ++++++++++++++-------------- > 1 file changed, 14 insertions(+), 14 deletions(-) > > diff --git a/test/print_ut.c b/test/print_ut.c > index 47a6ce57840..0a994a05cf6 100644 > --- a/test/print_ut.c > +++ b/test/print_ut.c > @@ -283,16 +283,16 @@ 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); Can you put the arg on the next line and perhaps put it at the top of the file as a #define ? > + 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 +300,31 @@ 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 +337,7 @@ 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 > Regards, Simon
diff --git a/test/print_ut.c b/test/print_ut.c index 47a6ce57840..0a994a05cf6 100644 --- a/test/print_ut.c +++ b/test/print_ut.c @@ -283,16 +283,16 @@ 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 +300,31 @@ 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 +337,7 @@ 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);
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@mailbox.org> --- Cc: Mario Six <mario.six@gdsys.cc> Cc: Simon Glass <sjg@chromium.org> --- test/print_ut.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-)