
Hi Marek,
On Mon, 27 Feb 2023 at 12:55, Marek Vasut marek.vasut+renesas@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@mailbox.org
Cc: Heinrich Schuchardt heinrich.schuchardt@canonical.com Cc: Simon Glass sjg@chromium.org Cc: Tom Rini trini@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