summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorStephen Warren <swarren@nvidia.com>2015-11-17 10:29:07 -0700
committerTom Rini <trini@konsulko.com>2015-11-18 15:28:59 -0500
commit34a60d9bc88b6b009da6f7ef4d8b70f807eaada4 (patch)
tree73254cb35ceb138a57764045522aefa4dc95b151 /test
parent60f989a939643a3fdf9553613f1b916a45a9c6ed (diff)
downloadtalos-obmc-uboot-34a60d9bc88b6b009da6f7ef4d8b70f807eaada4.tar.gz
talos-obmc-uboot-34a60d9bc88b6b009da6f7ef4d8b70f807eaada4.zip
test: fat: add error-checking to non-contig test
Check the result code of all command that are executed. Without this, if the fallocate invocation fails (this feature is not supported on ext3 filesystems for example) then a zero-length output file will be created, and subsequent the mkfs and mount invocations will fail, which will cause the subsequent dd invocation to attempt to fill up the host's entire free disk space. That's not a nice user experience! Related, if fallocate does fail, try to create the test disk image using dd instead. That should work everywhere. Fixes: 4a28274227d0 ("test: fat: add test of non-contiguous file reads") Signed-off-by: Stephen Warren <swarren@nvidia.com>
Diffstat (limited to 'test')
-rwxr-xr-xtest/fs/fat-noncontig-test.sh32
1 files changed, 32 insertions, 0 deletions
diff --git a/test/fs/fat-noncontig-test.sh b/test/fs/fat-noncontig-test.sh
index f153c97bbf..65ed9a54bd 100755
--- a/test/fs/fat-noncontig-test.sh
+++ b/test/fs/fat-noncontig-test.sh
@@ -74,9 +74,25 @@ make O=${odir} -s sandbox_defconfig && make O=${odir} -s -j8
mkdir -p ${mnt}
if [ ! -f ${img} ]; then
fallocate -l 40M ${img}
+ if [ $? -ne 0 ]; then
+ echo fallocate failed - using dd instead
+ dd if=/dev/zero of=${img} bs=1024 count=$((40 * 1024))
+ if [ $? -ne 0 ]; then
+ echo Could not create empty disk image
+ exit $?
+ fi
+ fi
mkfs.fat ${img}
+ if [ $? -ne 0 ]; then
+ echo Could not create FAT filesystem
+ exit $?
+ fi
sudo mount -o loop,uid=$(id -u) ${img} ${mnt}
+ if [ $? -ne 0 ]; then
+ echo Could not mount test filesystem
+ exit $?
+ fi
for ((sects=8; sects < 512; sects += 8)); do
fn=${mnt}/keep-${sects}.img
@@ -92,11 +108,23 @@ if [ ! -f ${img} ]; then
dd if=${fill} of=${mnttestfn} bs=511 >/dev/null 2>&1
sudo umount ${mnt}
+ if [ $? -ne 0 ]; then
+ echo Could not unmount test filesystem
+ exit $?
+ fi
fi
sudo mount -o ro,loop,uid=$(id -u) ${img} ${mnt}
+if [ $? -ne 0 ]; then
+ echo Could not mount test filesystem
+ exit $?
+fi
crc=0x`crc32 ${mnttestfn}`
sudo umount ${mnt}
+if [ $? -ne 0 ]; then
+ echo Could not unmount test filesystem
+ exit $?
+fi
crc=`printf %02x%02x%02x%02x \
$((${crc} & 0xff)) \
@@ -111,3 +139,7 @@ crc32 ${loadaddr} \$filesize ${crcaddr}
if itest.l *${crcaddr} != ${crc}; then echo FAILURE; else echo PASS; fi
reset
EOF
+if [ $? -ne 0 ]; then
+ echo U-Boot exit status indicates an error
+ exit $?
+fi
OpenPOWER on IntegriCloud