From: Eric Biggers <ebiggers@xxxxxxxxxx> This experimental patch adds ubifs support to xfstests. Unlike most filesystems, ubifs is not block-device based. Instead it uses an UBI volume, which is layered above a MTD (raw flash) device. An UBI volume is represented by a char device node, e.g. /dev/ubi0_0. To run xfstests on ubifs, the user must set TEST_DEV to point to an UBI volume formatted as ubifs and SCRATCH_DEV to point to some other UBI volume. Most things seem to just work, but a few changes were needed to allow TEST_DEV and SCRATCH_DEV to be char devices, and to handle the lack of a fsck.ubifs. Signed-off-by: Eric Biggers <ebiggers@xxxxxxxxxx> --- common/config | 7 +++++-- common/rc | 24 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/common/config b/common/config index 6cce7ce..cf01c9e 100644 --- a/common/config +++ b/common/config @@ -331,6 +331,9 @@ _mount_opts() # We need to specify the size at mount, use 1G by default export MOUNT_OPTIONS="-o size=1G $TMPFS_MOUNT_OPTIONS" ;; + ubifs) + export MOUNT_OPTIONS=$UBIFS_MOUNT_OPTIONS + ;; *) ;; esac @@ -461,8 +464,8 @@ _check_device() if [ ! -d "$dev" ]; then _fatal "common/config: $name ($dev) is not a directory for overlay" fi - elif [ ! -b "$dev" -a "$network_dev" != "0" ]; then - _fatal "common/config: $name ($dev) is not a block device or a network filesystem" + elif [ ! -b "$dev" -a ! -c "$dev" -a "$network_dev" != "0" ]; then + _fatal "common/config: $name ($dev) is not a device node or network filesystem" fi } diff --git a/common/rc b/common/rc index 2639fbd..8000abb 100644 --- a/common/rc +++ b/common/rc @@ -1308,6 +1308,15 @@ _require_scratch_nocheck() _notrun "this test requires a valid \$SCRATCH_MNT and unique $SCRATCH_DEV" fi ;; + ubifs) + # ubifs needs an UBI volume. This will be a char device, not a block device. + if [ ! -c "$SCRATCH_DEV" ]; then + _notrun "this test requires a valid UBI volume for \$SCRATCH_DEV" + fi + if [ ! -d "$SCRATCH_MNT" ]; then + _notrun "this test requires a valid \$SCRATCH_MNT" + fi + ;; *) if [ -z "$SCRATCH_DEV" -o "`_is_block_dev "$SCRATCH_DEV"`" = "" ] then @@ -1393,6 +1402,15 @@ _require_test() _notrun "this test requires a valid \$TEST_DIR and unique $TEST_DEV" fi ;; + ubifs) + # ubifs needs an UBI volume. This will be a char device, not a block device. + if [ ! -c "$TEST_DEV" ]; then + _notrun "this test requires a valid UBI volume for \$TEST_DEV" + fi + if [ ! -d "$TEST_DIR" ]; then + _notrun "this test requires a valid \$TEST_DIR" + fi + ;; *) if [ -z "$TEST_DEV" ] || [ "`_is_block_dev "$TEST_DEV"`" = "" ] then @@ -2171,6 +2189,9 @@ _check_test_fs() tmpfs) # no way to check consistency for tmpfs ;; + ubifs) + # there is no fsck program for ubifs yet + ;; *) _check_generic_filesystem $TEST_DEV ;; @@ -2215,6 +2236,9 @@ _check_scratch_fs() tmpfs) # no way to check consistency for tmpfs ;; + ubifs) + # there is no fsck program for ubifs yet + ;; *) _check_generic_filesystem $device ;; -- 2.8.0.rc3.226.g39d4020 -- To unsubscribe from this list: send the line "unsubscribe fstests" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html