
On Mon, 6 Apr 2020 at 08:26, Sean Anderson seanga2@gmail.com wrote:
Also CC Ovidiu and Niel, since I believe they were both working on patches related to this.
+Tom for consideration for the release if there is time
On 4/6/20 10:23 AM, Sean Anderson wrote:
Add a test for the dm drivers command. Also fix a null pointer dereference revealed by said test.
Signed-off-by: Sean Anderson seanga2@gmail.com Reviewed-by: Bin Meng bmeng.cn@gmail.com Tested-by: Bin Meng bmeng.cn@gmail.com Reviewed-by: Simon Glass sjg@chromium.org
The changes in this patch were originally submitted as v3 of 7b9d60fc1ff "cmd: Add command to dump drivers and compatible strings" [1]. I have retained the Reviewed-by and Tested-by tags since no other changes besides rebasing on v1 have been made.
[1] https://patchwork.ozlabs.org/patch/1234460/
cmd/dm.c | 4 ++-- drivers/core/dump.c | 3 ++- test/py/tests/test_dm.py | 17 +++++++++++++++++ 3 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 test/py/tests/test_dm.py
diff --git a/cmd/dm.c b/cmd/dm.c index 108707c298..7a90685f8b 100644 --- a/cmd/dm.c +++ b/cmd/dm.c @@ -41,7 +41,7 @@ static int do_dm_dump_devres(cmd_tbl_t *cmdtp, int flag, int argc, }
static int do_dm_dump_drivers(cmd_tbl_t *cmdtp, int flag, int argc,
char * const argv[])
char * const argv[])
{ dm_dump_drivers();
@@ -94,5 +94,5 @@ U_BOOT_CMD( "tree Dump driver model tree ('*' = activated)\n" "dm uclass Dump list of instances for each uclass\n" "dm devres Dump list of device resources for each device\n"
"dm drivers Dump list of drivers and their compatible strings\n"
"dm drivers Dump list of drivers and their compatible strings"
); diff --git a/drivers/core/dump.c b/drivers/core/dump.c index e73ebeabcc..b5046398d4 100644 --- a/drivers/core/dump.c +++ b/drivers/core/dump.c @@ -107,7 +107,8 @@ void dm_dump_drivers(void) puts("Driver Compatible\n"); puts("--------------------------------\n"); for (entry = d; entry < d + n_ents; entry++) {
for (match = entry->of_match; match->compatible; match++)
for (match = entry->of_match;
match && match->compatible; match++) printf("%-20.20s %s\n", match == entry->of_match ? entry->name : "", match->compatible);
diff --git a/test/py/tests/test_dm.py b/test/py/tests/test_dm.py new file mode 100644 index 0000000000..f6fbf8ba4c --- /dev/null +++ b/test/py/tests/test_dm.py @@ -0,0 +1,17 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2020 Sean Anderson
+import pytest
+@pytest.mark.buildconfigspec('cmd_dm') +def test_dm_drivers(u_boot_console):
- """Test that each driver in `dm tree` is also listed in `dm drivers`."""
- response = u_boot_console.run_command('dm tree')
- driver_index = response.find('Driver')
- assert driver_index != -1
- drivers = (line[driver_index:].split()[0]
for line in response[:-1].split('\n')[2:])
- response = u_boot_console.run_command('dm drivers')
- for driver in drivers:
assert driver in response