aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/zconfig.sh
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2010-08-26 11:44:39 -0700
committerBrian Behlendorf <[email protected]>2010-08-31 13:41:50 -0700
commit325f023544bbec6a478882c442e15304ee379759 (patch)
treee41ddbab7f373fc7fd43390c4ba05ea722729e68 /scripts/zconfig.sh
parent47d0ed1e6f8a8ee67492ec63173a27df8e4ca059 (diff)
Add linux kernel device support
This branch contains the majority of the changes required to cleanly intergrate with Linux style special devices (/dev/zfs). Mainly this means dropping all the Solaris style callbacks and replacing them with the Linux equivilants. This patch also adds the onexit infrastructure needed to track some minimal state between ioctls. Under Linux it would be easy to do this simply using the file->private_data. But under Solaris they apparent need to pass the file descriptor as part of the ioctl data and then perform a lookup in the kernel. Once again to keep code change to a minimum I've implemented the Solaris solution. Signed-off-by: Brian Behlendorf <[email protected]>
Diffstat (limited to 'scripts/zconfig.sh')
-rwxr-xr-xscripts/zconfig.sh50
1 files changed, 21 insertions, 29 deletions
diff --git a/scripts/zconfig.sh b/scripts/zconfig.sh
index 98f00fa0e..c2e5d9754 100755
--- a/scripts/zconfig.sh
+++ b/scripts/zconfig.sh
@@ -29,7 +29,7 @@ OPTIONS:
EOF
}
-while getopts 'hvc?' OPTION; do
+while getopts 'hvct:s:?' OPTION; do
case $OPTION in
h)
usage
@@ -41,6 +41,12 @@ while getopts 'hvc?' OPTION; do
c)
CLEANUP=1
;;
+ t)
+ TESTS_RUN=($OPTARG)
+ ;;
+ s)
+ TESTS_SKIP=($OPTARG)
+ ;;
?)
usage
exit
@@ -75,14 +81,12 @@ EOF
}
# Validate persistent zpool.cache configuration.
-zconfig_test1() {
+test_1() {
local POOL_NAME=test1
local TMP_FILE1=`mktemp`
local TMP_FILE2=`mktemp`
local TMP_CACHE=`mktemp -p /tmp zpool.cache.XXXXXXXX`
- echo -n "test 1 - persistent zpool.cache: "
-
# Create a pool save its status for comparison.
${ZFS_SH} zfs="spa_config_path=${TMP_CACHE}" || fail 1
${ZPOOL_CREATE_SH} -p ${POOL_NAME} -c lo-raidz2 || fail 2
@@ -101,17 +105,15 @@ zconfig_test1() {
pass
}
-zconfig_test1
+run_test 1 "persistent zpool.cache"
# Validate ZFS disk scanning and import w/out zpool.cache configuration.
-zconfig_test2() {
+test_2() {
local POOL_NAME=test2
local TMP_FILE1=`mktemp`
local TMP_FILE2=`mktemp`
local TMP_CACHE=`mktemp -p /tmp zpool.cache.XXXXXXXX`
- echo -n "test 2 - scan disks for pools to import: "
-
# Create a pool save its status for comparison.
${ZFS_SH} zfs="spa_config_path=${TMP_CACHE}" || fail 1
${ZPOOL_CREATE_SH} -p ${POOL_NAME} -c lo-raidz2 || fail 2
@@ -135,7 +137,7 @@ zconfig_test2() {
pass
}
-zconfig_test2
+run_test 2 "scan disks for pools to import"
zconfig_zvol_device_stat() {
local EXPECT=$1
@@ -175,7 +177,7 @@ zconfig_zvol_device_stat() {
# zpool import/export device check
# (1 volume, 2 partitions, 1 snapshot, 1 clone)
-zconfig_test3() {
+test_3() {
local POOL_NAME=tank
local ZVOL_NAME=volume
local SNAP_NAME=snap
@@ -185,8 +187,6 @@ zconfig_test3() {
local FULL_CLONE_NAME=${POOL_NAME}/${CLONE_NAME}
local TMP_CACHE=`mktemp -p /tmp zpool.cache.XXXXXXXX`
- echo -n "test 3 - zpool import/export device: "
-
# Create a pool, volume, partition, snapshot, and clone.
${ZFS_SH} zfs="spa_config_path=${TMP_CACHE}" || fail 1
${ZPOOL_CREATE_SH} -p ${POOL_NAME} -c lo-raidz2 || fail 2
@@ -225,10 +225,10 @@ zconfig_test3() {
pass
}
-zconfig_test3
+run_test 3 "zpool import/export device"
# zpool insmod/rmmod device check (1 volume, 1 snapshot, 1 clone)
-zconfig_test4() {
+test_4() {
POOL_NAME=tank
ZVOL_NAME=volume
SNAP_NAME=snap
@@ -238,8 +238,6 @@ zconfig_test4() {
FULL_CLONE_NAME=${POOL_NAME}/${CLONE_NAME}
TMP_CACHE=`mktemp -p /tmp zpool.cache.XXXXXXXX`
- echo -n "test 4 - zpool insmod/rmmod device: "
-
# Create a pool, volume, snapshot, and clone
${ZFS_SH} zfs="spa_config_path=${TMP_CACHE}" || fail 1
${ZPOOL_CREATE_SH} -p ${POOL_NAME} -c lo-raidz2 || fail 2
@@ -278,18 +276,16 @@ zconfig_test4() {
pass
}
-zconfig_test4
+run_test 4 "zpool insmod/rmmod device"
# ZVOL volume sanity check
-zconfig_test5() {
+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`
- echo -n "test 5 - zvol+ext3 volume: "
-
# Create a pool and volume.
${ZFS_SH} zfs="spa_config_path=${TMP_CACHE}" || fail 1
${ZPOOL_CREATE_SH} -p ${POOL_NAME} -c lo-raidz2 || fail 2
@@ -323,10 +319,10 @@ zconfig_test5() {
pass
}
-zconfig_test5
+run_test 5 "zvol+ext3 volume"
# ZVOL snapshot sanity check
-zconfig_test6() {
+test_6() {
local POOL_NAME=tank
local ZVOL_NAME=fish
local SNAP_NAME=pristine
@@ -335,8 +331,6 @@ zconfig_test6() {
local SRC_DIR=/bin/
local TMP_CACHE=`mktemp -p /tmp zpool.cache.XXXXXXXX`
- echo -n "test 6 - zvol+ext2 snapshot: "
-
# Create a pool and volume.
${ZFS_SH} zfs="spa_config_path=${TMP_CACHE}" || fail 1
${ZPOOL_CREATE_SH} -p ${POOL_NAME} -c lo-raidz2 || fail 2
@@ -382,10 +376,10 @@ zconfig_test6() {
pass
}
-zconfig_test6
+run_test 6 "zvol+ext2 snapshot"
# ZVOL clone sanity check
-zconfig_test7() {
+test_7() {
local POOL_NAME=tank
local ZVOL_NAME=fish
local SNAP_NAME=pristine
@@ -396,8 +390,6 @@ zconfig_test7() {
local SRC_DIR=/bin/
local TMP_CACHE=`mktemp -p /tmp zpool.cache.XXXXXXXX`
- echo -n "test 7 - zvol+ext2 clone: "
-
# Create a pool and volume.
${ZFS_SH} zfs="spa_config_path=${TMP_CACHE}" || fail 1
${ZPOOL_CREATE_SH} -p ${POOL_NAME} -c lo-raidz2 || fail 2
@@ -464,7 +456,7 @@ zconfig_test7() {
pass
}
-zconfig_test7
+run_test 7 "zvol+ext2 clone"
# Send/Receive sanity check
test_8() {