[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