cmd: fs: Add command to list supported fs types

Added command "fstypes" to list supported/included filesystems.

Signed-off-by: Niel Fourie <lusus@denx.de>
Cc: Simon Glass <sjg@chromium.org>
Reviewed-by: Simon Glass <sjg@chromium.org>
[trini: Limit to sandbox]
Signed-off-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
Niel Fourie 2020-03-24 16:17:04 +01:00 committed by Tom Rini
parent 0ffdfbd1d0
commit 2280fa56a0
4 changed files with 55 additions and 0 deletions

View File

@ -100,3 +100,14 @@ U_BOOT_CMD(
"fstype <interface> <dev>:<part> <varname>\n"
"- set environment variable to filesystem type\n"
);
static int do_fstypes_wrapper(struct cmd_tbl *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", ""
);

20
fs/fs.c
View File

@ -903,3 +903,23 @@ int do_ln(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[],
return 0;
}
int do_fs_types(struct cmd_tbl *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;
}

View File

@ -259,4 +259,15 @@ int do_fs_uuid(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[],
*/
int do_fs_type(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]);
/**
* do_fs_types - List supported filesystems.
*
* @cmdtp: Command information for fstypes
* @flag: Command flags (CMD_FLAG_...)
* @argc: Number of arguments
* @argv: List of arguments
* @return result (see enum command_ret_t)
*/
int do_fs_types(struct cmd_tbl *cmdtp, int flag, int argc, char * const argv[]);
#endif /* _FS_H */

View File

@ -0,0 +1,13 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2020
# Niel Fourie, DENX Software Engineering, lusus@denx.de
import pytest
@pytest.mark.boardspec('sandbox')
@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