[PATCH 23/32] test: cmd: fdt: Test fdt set

Simon Glass sjg at chromium.org
Wed Mar 1 16:02:24 CET 2023


Hi Marek,

On Mon, 27 Feb 2023 at 12:55, Marek Vasut
<marek.vasut+renesas at mailbox.org> wrote:
>
> Add 'fdt set' test which works as follows:
> - Create fuller FDT, map it to sysmem
> - Set either existing property to overwrite it, or new property
> - Test setting both single properties as well as string and integer arrays
> - Test setting to non-existent nodes and aliases
> - Verify set values using 'fdt get value'
>
> 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 at mailbox.org>
> ---
> Cc: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
> Cc: Simon Glass <sjg at chromium.org>
> Cc: Tom Rini <trini at konsulko.com>
> ---
>  test/cmd/fdt.c | 123 +++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 123 insertions(+)
>
> diff --git a/test/cmd/fdt.c b/test/cmd/fdt.c
> index ae67b468b71..42d067090aa 100644
> --- a/test/cmd/fdt.c
> +++ b/test/cmd/fdt.c
> @@ -777,6 +777,129 @@ static int fdt_test_get_size(struct unit_test_state *uts)
>  }
>  FDT_TEST(fdt_test_get_size, UT_TESTF_CONSOLE_REC);
>
> +static int fdt_test_set_single(struct unit_test_state *uts,
> +                              const char *path, const char *prop,
> +                              const char *sval, int ival, bool integer)

Please  add a comment for this function.

> +{
> +       ut_assertok(console_record_reset_enable());
> +       if (sval) {
> +               ut_assertok(run_commandf("fdt set %s %s %s", path, prop, sval));
> +       } else if (integer) {
> +               ut_assertok(run_commandf("fdt set %s %s <%d>", path, prop, ival));
> +       } else {
> +               ut_assertok(run_commandf("fdt set %s %s", path, prop));
> +       }

Should drop {} on single-line statements - please check patman

> +
> +       ut_assertok(run_commandf("fdt get value svar %s %s", path, prop));
> +       if (sval) {
> +               ut_asserteq_str(sval, env_get("svar"));
> +       } else if (integer) {
> +               ut_asserteq(ival, env_get_hex("svar", 0x1234));
> +       } else {
> +               ut_assertnull(env_get("svar"));
> +       }
> +       ut_assertok(ut_check_console_end(uts));
> +
> +       return 0;
> +}
> +
> +static int fdt_test_set_multi(struct unit_test_state *uts,
> +                             const char *path, const char *prop,
> +                             const char *sval1, const char *sval2,
> +                             int ival1, int ival2)

and this could use a comment too

> +{
> +       ut_assertok(console_record_reset_enable());
> +       if (sval1 && sval2) {
> +               ut_assertok(run_commandf("fdt set %s %s %s %s end", path, prop, sval1, sval2));
> +               ut_assertok(run_commandf("fdt set %s %s %s %s", path, prop, sval1, sval2));
> +       } else {
> +               ut_assertok(run_commandf("fdt set %s %s <%d %d 10>", path, prop, ival1, ival2));
> +               ut_assertok(run_commandf("fdt set %s %s <%d %d>", path, prop, ival1, ival2));
> +       }
> +

[..]

Regards,
Simon


More information about the U-Boot mailing list