Message ID | 20200319161330.1195470-3-lusus@denx.de |
---|---|
State | Superseded |
Headers | show |
Series | cmd: add driver, fs and part type listing commands | expand |
Hi Neil, On Thu, 19 Mar 2020 at 10:14, Niel Fourie <lusus at denx.de> wrote: > > Added command "fstypes" to list supported/included filesystems. > > Signed-off-by: Niel Fourie <lusus at denx.de> > CC: Simon Glass <sjg at chromium.org> > --- > Changes in v2: > - Add Python test > > cmd/fs.c | 11 +++++++++++ > fs/fs.c | 20 ++++++++++++++++++++ > include/fs.h | 5 +++++ > test/py/tests/test_fs/test_fs_cmd.py | 12 ++++++++++++ > 4 files changed, 48 insertions(+) > create mode 100644 test/py/tests/test_fs/test_fs_cmd.py Reviewed-by: Simon Glass <sjg at chromium.org> But please see below > > diff --git a/cmd/fs.c b/cmd/fs.c > index db74767b7b..26b47bd001 100644 > --- a/cmd/fs.c > +++ b/cmd/fs.c > @@ -99,3 +99,14 @@ U_BOOT_CMD( > "fstype <interface> <dev>:<part> <varname>\n" > "- set environment variable to filesystem type\n" > ); > + > +static int do_fstypes_wrapper(cmd_tbl_t *cmdtp, int flag, int argc, > + char * const argv[]) > +{ > + return do_fs_types(cmdtp, flag, argc, argv); > +} > + > +U_BOOT_CMD( > + fstypes, 1, 1, do_fstypes_wrapper, > + "List supported filesystem types", "" > +); > diff --git a/fs/fs.c b/fs/fs.c > index 0c66d60477..3e38b2e27a 100644 > --- a/fs/fs.c > +++ b/fs/fs.c > @@ -900,3 +900,23 @@ int do_ln(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[], > > return 0; > } > + > +int do_fs_types(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) > +{ > + struct fstype_info *drv = fstypes; > + const int n_ents = ARRAY_SIZE(fstypes); > + struct fstype_info *entry; > + int i = 0; > + > + puts("Supported filesystems"); > + for (entry = drv; entry != drv + n_ents; entry++) { > + if (entry->fstype != FS_TYPE_ANY) { > + printf("%c %s", i ? ',' : ':', entry->name); > + i++; > + } > + } > + if (!i) > + puts(": <none>"); > + puts("\n"); > + return CMD_RET_SUCCESS; > +} > diff --git a/include/fs.h b/include/fs.h > index 37e35c2120..b3fd0b179d 100644 > --- a/include/fs.h > +++ b/include/fs.h > @@ -254,4 +254,9 @@ int do_fs_uuid(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[], > */ > int do_fs_type(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]); > > +/* > + * List supported filesystems. > + */ > +int do_fs_types(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]); Please add a full function comment - see do_ext2load() Regards, Simon
diff --git a/cmd/fs.c b/cmd/fs.c index db74767b7b..26b47bd001 100644 --- a/cmd/fs.c +++ b/cmd/fs.c @@ -99,3 +99,14 @@ U_BOOT_CMD( "fstype <interface> <dev>:<part> <varname>\n" "- set environment variable to filesystem type\n" ); + +static int do_fstypes_wrapper(cmd_tbl_t *cmdtp, int flag, int argc, + char * const argv[]) +{ + return do_fs_types(cmdtp, flag, argc, argv); +} + +U_BOOT_CMD( + fstypes, 1, 1, do_fstypes_wrapper, + "List supported filesystem types", "" +); diff --git a/fs/fs.c b/fs/fs.c index 0c66d60477..3e38b2e27a 100644 --- a/fs/fs.c +++ b/fs/fs.c @@ -900,3 +900,23 @@ int do_ln(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[], return 0; } + +int do_fs_types(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +{ + struct fstype_info *drv = fstypes; + const int n_ents = ARRAY_SIZE(fstypes); + struct fstype_info *entry; + int i = 0; + + puts("Supported filesystems"); + for (entry = drv; entry != drv + n_ents; entry++) { + if (entry->fstype != FS_TYPE_ANY) { + printf("%c %s", i ? ',' : ':', entry->name); + i++; + } + } + if (!i) + puts(": <none>"); + puts("\n"); + return CMD_RET_SUCCESS; +} diff --git a/include/fs.h b/include/fs.h index 37e35c2120..b3fd0b179d 100644 --- a/include/fs.h +++ b/include/fs.h @@ -254,4 +254,9 @@ int do_fs_uuid(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[], */ int do_fs_type(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]); +/* + * List supported filesystems. + */ +int do_fs_types(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]); + #endif /* _FS_H */ diff --git a/test/py/tests/test_fs/test_fs_cmd.py b/test/py/tests/test_fs/test_fs_cmd.py new file mode 100644 index 0000000000..86ba92e025 --- /dev/null +++ b/test/py/tests/test_fs/test_fs_cmd.py @@ -0,0 +1,12 @@ +# SPDX-License-Identifier: GPL-2.0 +# Copyright (C) 2020 +# Niel Fourie, DENX Software Engineering, lusus at denx.de + +import pytest + + at pytest.mark.buildconfigspec('cmd_fs_generic') +def test_dm_compat(u_boot_console): + """Test that `fstypes` prints a result which includes `sandbox`.""" + output = u_boot_console.run_command('fstypes') + assert "Supported filesystems:" in output + assert "sandbox" in output
Added command "fstypes" to list supported/included filesystems. Signed-off-by: Niel Fourie <lusus at denx.de> CC: Simon Glass <sjg at chromium.org> --- Changes in v2: - Add Python test cmd/fs.c | 11 +++++++++++ fs/fs.c | 20 ++++++++++++++++++++ include/fs.h | 5 +++++ test/py/tests/test_fs/test_fs_cmd.py | 12 ++++++++++++ 4 files changed, 48 insertions(+) create mode 100644 test/py/tests/test_fs/test_fs_cmd.py