Various zimport.sh fixes

1) $SPLSRC and $SRCDIR should be changed to $SRC_DIR.  These are
   vestiges of an earlier version of the script and were missed when
   it was updated.  Additionally ensure the directory is created.

2) The 'fail' function should take an integer argument for the
   error code to return.  Otherwise 0 (success) will be mistakenly
   returned and errors will we incorrectly suppressed.  The error
   code should be meaningful enough to determine where the script
   failed.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
Brian Behlendorf 2014-04-16 16:06:24 -07:00
parent b066274a77
commit e0b8f62902

View File

@ -233,30 +233,30 @@ pool_create() {
cd $POOL_DIR_SRC cd $POOL_DIR_SRC
fi fi
$ZFS_SH zfs="spa_config_path=$POOL_DIR_PRISTINE" || fail $ZFS_SH zfs="spa_config_path=$POOL_DIR_PRISTINE" || fail 1
# Create a file vdev RAIDZ pool. # Create a file vdev RAIDZ pool.
FILEDIR="$POOL_DIR_PRISTINE" $ZPOOL_CREATE \ FILEDIR="$POOL_DIR_PRISTINE" $ZPOOL_CREATE \
-c file-raidz -p $POOL_TAG -v >/dev/null || fail -c file-raidz -p $POOL_TAG -v >/dev/null || fail 2
# Create a pool/fs filesystem with some random contents. # Create a pool/fs filesystem with some random contents.
$ZFS_CMD create $POOL_TAG/fs || fail $ZFS_CMD create $POOL_TAG/fs || fail 3
populate /$POOL_TAG/fs/ 10 100 populate /$POOL_TAG/fs/ 10 100
# Snapshot that filesystem, clone it, remove the files/dirs, # Snapshot that filesystem, clone it, remove the files/dirs,
# replace them with new files/dirs. # replace them with new files/dirs.
$ZFS_CMD snap $POOL_TAG/fs@snap || fail $ZFS_CMD snap $POOL_TAG/fs@snap || fail 4
$ZFS_CMD clone $POOL_TAG/fs@snap $POOL_TAG/clone || fail $ZFS_CMD clone $POOL_TAG/fs@snap $POOL_TAG/clone || fail 5
rm -Rf /$POOL_TAG/clone/* || fail rm -Rf /$POOL_TAG/clone/* || fail 6
populate /$POOL_TAG/clone/ 10 100 populate /$POOL_TAG/clone/ 10 100
# Scrub the pool, delay slightly, then export it. It is now # Scrub the pool, delay slightly, then export it. It is now
# somewhat interesting for testing purposes. # somewhat interesting for testing purposes.
$ZPOOL_CMD scrub $POOL_TAG || fail $ZPOOL_CMD scrub $POOL_TAG || fail 7
sleep 10 sleep 10
$ZPOOL_CMD export $POOL_TAG || fail $ZPOOL_CMD export $POOL_TAG || fail 8
$ZFS_SH -u || fail $ZFS_SH -u || fail 9
} }
# If the zfs-images directory doesn't exist fetch a copy from Github then # If the zfs-images directory doesn't exist fetch a copy from Github then
@ -265,7 +265,7 @@ if [ ! -d $IMAGES_DIR ]; then
IMAGES_DIR="$TEST_DIR/zfs-images" IMAGES_DIR="$TEST_DIR/zfs-images"
mkdir -p $IMAGES_DIR mkdir -p $IMAGES_DIR
curl -sL $IMAGES_TAR | \ curl -sL $IMAGES_TAR | \
tar -xz -C $IMAGES_DIR --strip-components=1 || fail tar -xz -C $IMAGES_DIR --strip-components=1 || fail 10
fi fi
# Given the available images in the zfs-images directory substitute the # Given the available images in the zfs-images directory substitute the
@ -297,6 +297,10 @@ if [ ! -d $TEST_DIR ]; then
mkdir -p $TEST_DIR mkdir -p $TEST_DIR
fi fi
if [ ! -d $SRC_DIR ]; then
mkdir -p $SRC_DIR
fi
# Print a header for all tags which are being tested. # Print a header for all tags which are being tested.
echo "--------------------- ZFS on Linux Source Versions --------------" echo "--------------------- ZFS on Linux Source Versions --------------"
printf "%-16s" " " printf "%-16s" " "
@ -330,7 +334,7 @@ for TAG in $SRC_TAGS; do
elif [ "$SPL_TAG" = "installed" ]; then elif [ "$SPL_TAG" = "installed" ]; then
skip_nonewline skip_nonewline
else else
cd $SPLSRC cd $SRC_DIR
if [ ! -d $SRC_DIR_SPL ]; then if [ ! -d $SRC_DIR_SPL ]; then
mkdir -p $SRC_DIR_SPL mkdir -p $SRC_DIR_SPL
@ -344,9 +348,9 @@ for TAG in $SRC_TAGS; do
rm $SRC_DIR_SPL/$SPL_TAG.tar rm $SRC_DIR_SPL/$SPL_TAG.tar
echo -n -e "${COLOR_GREEN}Local${COLOR_RESET}\t\t" echo -n -e "${COLOR_GREEN}Local${COLOR_RESET}\t\t"
else else
mkdir -p $SPL_DIR || fail mkdir -p $SPL_DIR || fail 1
curl -sL $SPL_URL | tar -xz -C $SPL_DIR \ curl -sL $SPL_URL | tar -xz -C $SPL_DIR \
--strip-components=1 || fail --strip-components=1 || fail 2
echo -n -e "${COLOR_GREEN}Remote${COLOR_RESET}\t\t" echo -n -e "${COLOR_GREEN}Remote${COLOR_RESET}\t\t"
fi fi
fi fi
@ -366,7 +370,7 @@ for TAG in $SRC_TAGS; do
elif [ "$ZFS_TAG" = "installed" ]; then elif [ "$ZFS_TAG" = "installed" ]; then
skip_nonewline skip_nonewline
else else
cd $SRCDIR cd $SRC_DIR
if [ ! -d $SRC_DIR_ZFS ]; then if [ ! -d $SRC_DIR_ZFS ]; then
mkdir -p $SRC_DIR_ZFS mkdir -p $SRC_DIR_ZFS
@ -380,9 +384,9 @@ for TAG in $SRC_TAGS; do
rm $SRC_DIR_ZFS/$ZFS_TAG.tar rm $SRC_DIR_ZFS/$ZFS_TAG.tar
echo -n -e "${COLOR_GREEN}Local${COLOR_RESET}\t\t" echo -n -e "${COLOR_GREEN}Local${COLOR_RESET}\t\t"
else else
mkdir -p $ZFS_DIR || fail mkdir -p $ZFS_DIR || fail 1
curl -sL $ZFS_URL | tar -xz -C $ZFS_DIR \ curl -sL $ZFS_URL | tar -xz -C $ZFS_DIR \
--strip-components=1 || fail --strip-components=1 || fail 2
echo -n -e "${COLOR_GREEN}Remote${COLOR_RESET}\t\t" echo -n -e "${COLOR_GREEN}Remote${COLOR_RESET}\t\t"
fi fi
fi fi
@ -401,9 +405,9 @@ for TAG in $SRC_TAGS; do
else else
cd $SPL_DIR cd $SPL_DIR
make distclean &>/dev/null make distclean &>/dev/null
sh ./autogen.sh &>/dev/null || fail sh ./autogen.sh &>/dev/null || fail 1
./configure &>/dev/null || fail ./configure &>/dev/null || fail 2
make -s -j$CPUS &>/dev/null || fail make -s -j$CPUS &>/dev/null || fail 3
pass_nonewline pass_nonewline
fi fi
done done
@ -421,9 +425,9 @@ for TAG in $SRC_TAGS; do
else else
cd $ZFS_DIR cd $ZFS_DIR
make distclean &>/dev/null make distclean &>/dev/null
sh ./autogen.sh &>/dev/null || fail sh ./autogen.sh &>/dev/null || fail 1
./configure --with-spl=$SPL_DIR &>/dev/null || fail ./configure --with-spl=$SPL_DIR &>/dev/null || fail 2
make -s -j$CPUS &>/dev/null || fail make -s -j$CPUS &>/dev/null || fail 3
pass_nonewline pass_nonewline
fi fi
done done
@ -443,7 +447,7 @@ for TAG in $POOL_TAGS; do
# Use the existing compressed image if available. # Use the existing compressed image if available.
if [ -f $POOL_BZIP ]; then if [ -f $POOL_BZIP ]; then
tar -xjf $POOL_BZIP -C $POOL_DIR_PRISTINE \ tar -xjf $POOL_BZIP -C $POOL_DIR_PRISTINE \
--strip-components=1 || fail --strip-components=1 || fail 1
# Use the installed version to create the pool. # Use the installed version to create the pool.
elif [ "$TAG" = "installed" ]; then elif [ "$TAG" = "installed" ]; then
pool_create $TAG pool_create $TAG
@ -468,7 +472,8 @@ for TAG in $POOL_TAGS; do
fi fi
$ZFS_SH zfs="spa_config_path=$POOL_DIR_COPY" $ZFS_SH zfs="spa_config_path=$POOL_DIR_COPY"
cp -a --sparse=always $POOL_DIR_PRISTINE $POOL_DIR_COPY || fail cp -a --sparse=always $POOL_DIR_PRISTINE \
$POOL_DIR_COPY || fail 2
POOL_NAME=`$ZPOOL_CMD import -d $POOL_DIR_COPY | \ POOL_NAME=`$ZPOOL_CMD import -d $POOL_DIR_COPY | \
awk '/pool:/ { print $2; exit 0 }'` awk '/pool:/ { print $2; exit 0 }'`
@ -477,13 +482,13 @@ for TAG in $POOL_TAGS; do
fail_nonewline fail_nonewline
ERROR=1 ERROR=1
else else
$ZPOOL_CMD export $POOL_NAME || fail $ZPOOL_CMD export $POOL_NAME || fail 3
pass_nonewline pass_nonewline
fi fi
rm -Rf $POOL_DIR_COPY rm -Rf $POOL_DIR_COPY
$ZFS_SH -u || fail $ZFS_SH -u || fail 4
done done
printf "\n" printf "\n"
done done