]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
test: common/print: do not use fixed buffer addresses
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Sun, 9 Nov 2025 10:10:06 +0000 (11:10 +0100)
committerHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Fri, 21 Nov 2025 18:18:22 +0000 (19:18 +0100)
The location of memory depends on the board. Do not assume memory at fixed
memory locations. Use calloc() instead to allocate buffers.

Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
test/common/print.c

index 76ee851fe6a00f529b8ddc3ab7a05865273c6a3c..2ac7eeed2c179dc3031d37d35d5102de24dd7c30 100644 (file)
@@ -168,12 +168,8 @@ static int print_display_buffer(struct unit_test_state *uts)
        u8 *buf;
        int i;
 
-       /* This test requires writable memory at zero */
-       if (IS_ENABLED(CONFIG_X86))
-               return -EAGAIN;
-
-       buf = map_sysmem(0, BUF_SIZE);
-       memset(buf, '\0', BUF_SIZE);
+       buf = calloc(1, BUF_SIZE);
+       ut_assertnonnull(buf);
        for (i = 0; i < 0x11; i++)
                buf[i] = i * 0x11;
 
@@ -232,7 +228,7 @@ static int print_display_buffer(struct unit_test_state *uts)
        ut_assert_nextline("00000000: 00 1f 20 21 7e 7f 80 81 ff 99                    .. !~.....");
        ut_assert_console_end();
 
-       unmap_sysmem(buf);
+       free(buf);
 
        return 0;
 }
@@ -244,13 +240,14 @@ static int print_hexdump_line(struct unit_test_state *uts)
        u8 *buf;
        int i;
 
-       buf = map_sysmem(0, BUF_SIZE);
-       memset(buf, '\0', BUF_SIZE);
+       buf = calloc(1, BUF_SIZE);
+       ut_assertnonnull(buf);
        for (i = 0; i < 0x11; i++)
                buf[i] = i * 0x11;
 
        /* Check buffer size calculations */
-       linebuf = map_sysmem(0x400, BUF_SIZE);
+       linebuf = calloc(1, BUF_SIZE);
+       ut_assertnonnull(buf);
        memset(linebuf, '\xff', BUF_SIZE);
        ut_asserteq(-ENOSPC, hexdump_line(0, buf, 1, 0x10, 0, linebuf, 75));
        ut_asserteq(0xff, linebuf[0]);
@@ -258,7 +255,8 @@ static int print_hexdump_line(struct unit_test_state *uts)
        ut_asserteq('\0', linebuf[75]);
        ut_asserteq(0xff, linebuf[76]);
 
-       unmap_sysmem(buf);
+       free(linebuf);
+       free(buf);
 
        return 0;
 }
@@ -269,69 +267,74 @@ static int print_do_hex_dump(struct unit_test_state *uts)
        u8 *buf;
        int i;
 
-       /* This test requires writable memory at zero */
-       if (IS_ENABLED(CONFIG_X86))
-               return -EAGAIN;
-
-       buf = map_sysmem(0, BUF_SIZE);
-       memset(buf, '\0', BUF_SIZE);
+       buf = calloc(1, BUF_SIZE);
+       ut_assertnonnull(buf);
        for (i = 0; i < 0x11; i++)
                buf[i] = i * 0x11;
 
        /* bytes */
        print_hex_dump_bytes("", DUMP_PREFIX_ADDRESS, buf, 0x12);
        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);
+                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8,
+                          (uintptr_t)buf);
        ut_assert_nextline("%0*lx: 10 00                                            ..",
-                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x10UL);
+                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8,
+                          (uintptr_t)buf + 0x10UL);
        ut_assert_console_end();
 
        /* line length */
        print_hex_dump("", DUMP_PREFIX_ADDRESS, 8, 1, buf, 0x12, true);
        ut_assert_nextline("%0*lx: 00 11 22 33 44 55 66 77  ..\"3DUfw",
-                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x0UL);
+                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8,
+                          (uintptr_t)buf);
        ut_assert_nextline("%0*lx: 88 99 aa bb cc dd ee ff  ........",
-                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x8UL);
+                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8,
+                          (uintptr_t)buf + 0x8UL);
        ut_assert_nextline("%0*lx: 10 00                    ..",
-                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x10UL);
+                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8,
+                          (uintptr_t)buf + 0x10UL);
        ut_assert_console_end();
-       unmap_sysmem(buf);
 
        /* long line */
        buf[0x41] = 0x41;
        print_hex_dump("", DUMP_PREFIX_ADDRESS, 0x40, 1, buf, 0x42, true);
        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);
+                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8,
+                          (uintptr_t)buf);
        ut_assert_nextline("%0*lx: 00 41                                                                                                                                                                                            .A",
-                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x40UL);
+                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8,
+                          (uintptr_t)buf + 0x40UL);
        ut_assert_console_end();
 
        /* 16-bit */
        print_hex_dump("", DUMP_PREFIX_ADDRESS, 0, 2, buf, 0x12, true);
        ut_assert_nextline("%0*lx: 1100 3322 5544 7766 9988 bbaa ddcc ffee  ..\"3DUfw........",
-                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x0UL);
+                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8,
+                          (uintptr_t)buf);
        ut_assert_nextline("%0*lx: 0010                                     ..",
-                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x10UL);
+                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8,
+                          (uintptr_t)buf + 0x10UL);
        ut_assert_console_end();
-       unmap_sysmem(buf);
 
        /* 32-bit */
        print_hex_dump("", DUMP_PREFIX_ADDRESS, 0, 4, buf, 0x14, true);
        ut_assert_nextline("%0*lx: 33221100 77665544 bbaa9988 ffeeddcc  ..\"3DUfw........",
-                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x0UL);
+                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8,
+                          (uintptr_t)buf);
        ut_assert_nextline("%0*lx: 00000010                             ....",
-                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x10UL);
+                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8,
+                          (uintptr_t)buf + 0x10UL);
        ut_assert_console_end();
-       unmap_sysmem(buf);
 
        /* 64-bit */
        print_hex_dump("", DUMP_PREFIX_ADDRESS, 16, 8, buf, 0x18, true);
        ut_assert_nextline("%0*lx: 7766554433221100 ffeeddccbbaa9988  ..\"3DUfw........",
-                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x0UL);
+                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8,
+                          (uintptr_t)buf);
        ut_assert_nextline("%0*lx: 0000000000000010                   ........",
-                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x10UL);
+                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8,
+                          (uintptr_t)buf + 0x10UL);
        ut_assert_console_end();
-       unmap_sysmem(buf);
 
        /* ASCII */
        buf[1] = 31;
@@ -342,9 +345,10 @@ static int print_do_hex_dump(struct unit_test_state *uts)
        buf[8] = 255;
        print_hex_dump("", DUMP_PREFIX_ADDRESS, 0, 1, buf, 10, true);
        ut_assert_nextline("%0*lx: 00 1f 20 21 7e 7f 80 81 ff 99                    .. !~.....",
-                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8, 0x0UL);
+                          IS_ENABLED(CONFIG_PHYS_64BIT) ? 16 : 8,
+                          (uintptr_t)buf);
        ut_assert_console_end();
-       unmap_sysmem(buf);
+       free(buf);
 
        return 0;
 }