diff options
author | Marek Vasut <marek.vasut+renesas@mailbox.org> | 2023-03-02 04:08:31 +0100 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2023-03-08 11:40:57 -0800 |
commit | 8fa2835228e6cc644fda24abb64aa85eb8d91224 (patch) | |
tree | 868bcb3e3f503af8331071ee2ee2615ebed0998a | |
parent | 05728722dd9da35213d53f3fbcb1794f9f0369ad (diff) | |
download | u-boot-8fa2835228e6cc644fda24abb64aa85eb8d91224.zip u-boot-8fa2835228e6cc644fda24abb64aa85eb8d91224.tar.gz u-boot-8fa2835228e6cc644fda24abb64aa85eb8d91224.tar.bz2 |
test: cmd: fdt: Test fdt resize
Add 'fdt resize' test which works as follows:
- Create simple FDT with extra size 0, map it to sysmem
- 'resize' the FDT by 0x2000 bytes
- Verify the new space has been added to the FDT
The test case can be triggered using:
"
./u-boot -Dc 'ut fdt'
"
To dump the full output from commands used during test, add '-v' flag.
Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
-rw-r--r-- | test/cmd/fdt.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test/cmd/fdt.c b/test/cmd/fdt.c index 023b83e..266fb6e 100644 --- a/test/cmd/fdt.c +++ b/test/cmd/fdt.c @@ -272,6 +272,30 @@ static int fdt_test_move(struct unit_test_state *uts) } FDT_TEST(fdt_test_move, UT_TESTF_CONSOLE_REC); +static int fdt_test_resize(struct unit_test_state *uts) +{ + char fdt[256]; + const unsigned int newsize = 0x2000; + uint32_t ts; + ulong addr; + + /* Original source DT */ + ut_assertok(make_test_fdt(uts, fdt, sizeof(fdt))); + fdt_shrink_to_minimum(fdt, 0); /* Resize with 0 extra bytes */ + ts = fdt_totalsize(fdt); + addr = map_to_sysmem(fdt); + set_working_fdt_addr(addr); + + /* Test resizing the working FDT and verify the new space was added */ + ut_assertok(console_record_reset_enable()); + ut_assertok(run_commandf("fdt resize %x", newsize)); + ut_asserteq(ts + newsize, fdt_totalsize(fdt)); + ut_assertok(ut_check_console_end(uts)); + + return 0; +} +FDT_TEST(fdt_test_resize, UT_TESTF_CONSOLE_REC); + /* Test 'fdt get value' reading an fdt */ static int fdt_test_get_value_string(struct unit_test_state *uts, const char *node, const char *prop, |