test/fs: error case fixes/enhancements

- Use "mkdir -p" to avoid errors when intermediate directories are
  missing.
- Fall back to "dd" when "fallocate" fails. For example, fallocate isn't
  supported on ext4.
- Add error checking for test image generation. Without this, the test
  simply plows on spewing all kinds of errors which are hard to
  immediately root-cause.

Signed-off-by: Stephen Warren <swarren@nvidia.com>
This commit is contained in:
Stephen Warren 2015-12-14 15:01:15 -07:00 committed by Tom Rini
parent 2a1a29c5e7
commit 08eee2718a

View File

@ -100,7 +100,7 @@ function compile_sandbox() {
# We save time by not deleting and recreating the file system images
function prepare_env() {
rm -f ${MD5_FILE}.* ${OUT}.*
mkdir ${OUT_DIR}
mkdir -p ${OUT_DIR}
}
# 1st parameter is the name of the image file to be created
@ -115,11 +115,23 @@ function create_image() {
fi
if [ ! -f "$1" ]; then
fallocate -l 3G "$1" &> /dev/null
if [ $? -ne 0 ]; then
echo fallocate failed - using dd instead
dd if=/dev/zero of=$1 bs=1024 count=$((3 * 1024 * 1024))
if [ $? -ne 0 ]; then
echo Could not create empty disk image
exit $?
fi
fi
mkfs -t "$2" $MKFS_OPTION "$1" &> /dev/null
if [ $? -ne 0 -a "$2" = "fat" ]; then
# If we fail and we did fat, try vfat.
mkfs -t vfat $MKFS_OPTION "$1" &> /dev/null
fi
if [ $? -ne 0 ]; then
echo Could not create filesystem
exit $?
fi
fi
}