diff options
-rw-r--r-- | scripts/common.sh.in | 27 | ||||
-rwxr-xr-x | scripts/zconfig.sh | 16 |
2 files changed, 33 insertions, 10 deletions
diff --git a/scripts/common.sh.in b/scripts/common.sh.in index f087f4431..531c7983b 100644 --- a/scripts/common.sh.in +++ b/scripts/common.sh.in @@ -116,6 +116,27 @@ skip() { echo -e "${COLOR_BROWN}Skip${COLOR_RESET}" } +populate() { + local ROOT=$1 + local MAX_DIR_SIZE=$2 + local MAX_FILE_SIZE=$3 + + mkdir -p $ROOT/{a,b,c,d,e,f,g}/{h,i} + DIRS=`find $ROOT` + + for DIR in $DIRS; do + COUNT=$(($RANDOM % $MAX_DIR_SIZE)) + + for i in `seq $COUNT`; do + FILE=`mktemp -p ${DIR}` + SIZE=$(($RANDOM % $MAX_FILE_SIZE)) + dd if=/dev/urandom of=$FILE bs=1k count=$SIZE &>/dev/null + done + done + + return 0 +} + init() { # Disable the udev rule 90-zfs.rules to prevent the zfs module # stack from being loaded due to the detection of a zfs device. @@ -127,6 +148,12 @@ init() { trap "mv ${RULE}.disabled ${RULE}" INT TERM EXIT mv ${RULE} ${RULE}.disabled fi + + # Create a random directory tree of files and sub-directories to + # to act as a copy source for the various regression tests. + SRC_DIR=`mktemp -d -p /var/tmp/ zfs.src.XXXXXXXX` + trap "rm -Rf $SRC_DIR" INT TERM EXIT + populate $SRC_DIR 10 100 } spl_dump_log() { diff --git a/scripts/zconfig.sh b/scripts/zconfig.sh index d1e796f17..83a6fac22 100755 --- a/scripts/zconfig.sh +++ b/scripts/zconfig.sh @@ -288,7 +288,6 @@ test_5() { local POOL_NAME=tank local ZVOL_NAME=fish local FULL_NAME=${POOL_NAME}/${ZVOL_NAME} - local SRC_DIR=/bin/ local TMP_CACHE=`mktemp -p /tmp zpool.cache.XXXXXXXX` # Create a pool and volume. @@ -306,11 +305,11 @@ test_5() { sync # Verify the copied files match the original files. - diff -ur ${SRC_DIR} /tmp/${ZVOL_NAME}-part1${SRC_DIR} \ + diff -ur ${SRC_DIR} /tmp/${ZVOL_NAME}-part1/${SRC_DIR##*/} \ &>/dev/null || fail 9 # Remove the files, umount, destroy the volume and pool. - rm -Rf /tmp/${ZVOL_NAME}-part1${SRC_DIR}* || fail 10 + rm -Rf /tmp/${ZVOL_NAME}-part1/${SRC_DIR##*/} || fail 10 umount /tmp/${ZVOL_NAME}-part1 || fail 11 rmdir /tmp/${ZVOL_NAME}-part1 || fail 12 @@ -330,7 +329,6 @@ test_6() { local SNAP_NAME=pristine local FULL_ZVOL_NAME=${POOL_NAME}/${ZVOL_NAME} local FULL_SNAP_NAME=${POOL_NAME}/${ZVOL_NAME}@${SNAP_NAME} - local SRC_DIR=/bin/ local TMP_CACHE=`mktemp -p /tmp zpool.cache.XXXXXXXX` # Create a pool and volume. @@ -359,9 +357,9 @@ test_6() { # Verify the copied files match the original files, # and the copied files do NOT appear in the snapshot. - diff -ur ${SRC_DIR} /tmp/${ZVOL_NAME}-part1${SRC_DIR} \ + diff -ur ${SRC_DIR} /tmp/${ZVOL_NAME}-part1/${SRC_DIR##*/} \ &>/dev/null || fail 12 - diff -ur ${SRC_DIR} /tmp/${SNAP_NAME}-part1${SRC_DIR} \ + diff -ur ${SRC_DIR} /tmp/${SNAP_NAME}-part1/${SRC_DIR##*/} \ &>/dev/null && fail 13 # umount, destroy the snapshot, volume, and pool. @@ -390,7 +388,6 @@ test_7() { local FULL_ZVOL_NAME=${POOL_NAME}/${ZVOL_NAME} local FULL_SNAP_NAME=${POOL_NAME}/${ZVOL_NAME}@${SNAP_NAME} local FULL_CLONE_NAME=${POOL_NAME}/${CLONE_NAME} - local SRC_DIR=/bin/ local TMP_CACHE=`mktemp -p /tmp zpool.cache.XXXXXXXX` # Create a pool and volume. @@ -419,9 +416,9 @@ test_7() { # Verify the copied files match the original files, # and the copied files do NOT appear in the snapshot. - diff -ur ${SRC_DIR} /tmp/${ZVOL_NAME}-part1${SRC_DIR} \ + diff -ur ${SRC_DIR} /tmp/${ZVOL_NAME}-part1/${SRC_DIR##*/} \ &>/dev/null || fail 12 - diff -ur ${SRC_DIR} /tmp/${SNAP_NAME}-part1${SRC_DIR} \ + diff -ur ${SRC_DIR} /tmp/${SNAP_NAME}-part1/${SRC_DIR##*/} \ &>/dev/null && fail 13 # Clone from the original pristine snapshot @@ -477,7 +474,6 @@ test_8() { local FULL_ZVOL_NAME2=${POOL_NAME2}/${ZVOL_NAME} local FULL_SNAP_NAME1=${POOL_NAME1}/${ZVOL_NAME}@${SNAP_NAME} local FULL_SNAP_NAME2=${POOL_NAME2}/${ZVOL_NAME}@${SNAP_NAME} - local SRC_DIR=/bin/ local TMP_CACHE=`mktemp -p /tmp zpool.cache.XXXXXXXX` # Create two pools and a volume |