diff --git a/tests/zfs-tests/tests/functional/checksum/Makefile.am b/tests/zfs-tests/tests/functional/checksum/Makefile.am index 2d7d271a095d..8132ea1d6d54 100644 --- a/tests/zfs-tests/tests/functional/checksum/Makefile.am +++ b/tests/zfs-tests/tests/functional/checksum/Makefile.am @@ -7,6 +7,7 @@ AUTOMAKE_OPTIONS = subdir-objects pkgdatadir = $(datadir)/@PACKAGE@/zfs-tests/tests/functional/checksum dist_pkgdata_SCRIPTS = \ + default.cfg \ setup.ksh \ cleanup.ksh \ run_edonr_test.ksh \ diff --git a/tests/zfs-tests/tests/functional/checksum/cleanup.ksh b/tests/zfs-tests/tests/functional/checksum/cleanup.ksh index 79cd6e9f908e..da628bcd1ac8 100755 --- a/tests/zfs-tests/tests/functional/checksum/cleanup.ksh +++ b/tests/zfs-tests/tests/functional/checksum/cleanup.ksh @@ -25,6 +25,26 @@ # Use is subject to license terms. # +# +# Copyright (c) 2013 by Delphix. All rights reserved. +# + . $STF_SUITE/include/libtest.shlib +. $STF_SUITE/tests/functional/scrub_mirror/default.cfg + + +verify_runnable "global" + +$DF -F zfs -h | $GREP "$TESTFS " >/dev/null +[[ $? == 0 ]] && log_must $ZFS umount -f $TESTDIR +destroy_pool $TESTPOOL + +# recreate and destroy a zpool over the disks to restore the partitions to +# normal +if [[ -n $SINGLE_DISK ]]; then + log_must cleanup_devices $MIRROR_PRIMARY +else + log_must cleanup_devices $MIRROR_PRIMARY $MIRROR_SECONDARY +fi -default_cleanup +log_pass diff --git a/tests/zfs-tests/tests/functional/checksum/default.cfg b/tests/zfs-tests/tests/functional/checksum/default.cfg new file mode 100644 index 000000000000..c173cc1c982b --- /dev/null +++ b/tests/zfs-tests/tests/functional/checksum/default.cfg @@ -0,0 +1,66 @@ +# +# CDDL HEADER START +# +# The contents of this file are subject to the terms of the +# Common Development and Distribution License (the "License"). +# You may not use this file except in compliance with the License. +# +# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +# or http://www.opensolaris.org/os/licensing. +# See the License for the specific language governing permissions +# and limitations under the License. +# +# When distributing Covered Code, include this CDDL HEADER in each +# file and include the License file at usr/src/OPENSOLARIS.LICENSE. +# If applicable, add the following below this CDDL HEADER, with the +# fields enclosed by brackets "[]" replaced with your own identifying +# information: Portions Copyright [yyyy] [name of copyright owner] +# +# CDDL HEADER END +# + +# +# Copyright 2008 Sun Microsystems, Inc. All rights reserved. +# Use is subject to license terms. +# + +# +# Copyright (c) 2013 by Delphix. All rights reserved. +# + +typeset -i NUMBER_OF_DISKS=0 +for i in $DISKS; do + [[ -n $MIRROR_PRIMARY ]] && MIRROR_SECONDARY=$i + [[ -z $MIRROR_PRIMARY ]] && MIRROR_PRIMARY=$i +done + +if [[ -z $MIRROR_SECONDARY ]]; then + # We need to repartition the single disk to two slices + SINGLE_DISK=$MIRROR_PRIMARY + MIRROR_SECONDARY=$MIRROR_PRIMARY + SIDE_PRIMARY_PART=0 + SIDE_SECONDARY_PART=1 + if is_linux; then + SIDE_PRIMARY=${SINGLE_DISK}p1 + SIDE_SECONDARY=${SINGLE_DISK}p2 + else + SIDE_PRIMARY=${SINGLE_DISK}s${SIDE_PRIMARY_PART} + SIDE_SECONDARY=${SINGLE_DISK}s${SIDE_SECONDARY_PART} + fi +else + SIDE_PRIMARY_PART=0 + SIDE_SECONDARY_PART=0 + if is_linux; then + SIDE_PRIMARY=${MIRROR_PRIMARY}p1 + SIDE_SECONDARY=${MIRROR_SECONDARY}p1 + else + SIDE_PRIMARY=${MIRROR_PRIMARY}s${SIDE_PRIMARY_PART} + SIDE_SECONDARY=${MIRROR_SECONDARY}s${SIDE_SECONDARY_PART} + fi +fi + + +export MIRROR_PRIMARY MIRROR_SECONDARY SINGLE_DISK SIDE_PRIMARY SIDE_SECONDARY + +export MIRROR_MEGS=100 +export MIRROR_SIZE=${MIRROR_MEGS}m # default mirror size diff --git a/tests/zfs-tests/tests/functional/checksum/filetest_001_pos.ksh b/tests/zfs-tests/tests/functional/checksum/filetest_001_pos.ksh index 758b353c972e..a360dfd36daf 100755 --- a/tests/zfs-tests/tests/functional/checksum/filetest_001_pos.ksh +++ b/tests/zfs-tests/tests/functional/checksum/filetest_001_pos.ksh @@ -89,7 +89,7 @@ while is_pool_scrubbing $TESTPOOL; do $SLEEP 1 done $ZPOOL status -P -v $TESTPOOL | grep $firstvdev | read -r name state rd wr cksum -log_assert "Normal file write test saw: $cksum errors" +log_assert "Normal file write test saw $cksum checksum errors" log_must [ $cksum -eq 0 ] rm -fr $TESTDIR/* diff --git a/tests/zfs-tests/tests/functional/checksum/setup.ksh b/tests/zfs-tests/tests/functional/checksum/setup.ksh index 27e125df4a3d..dba4883f1b53 100755 --- a/tests/zfs-tests/tests/functional/checksum/setup.ksh +++ b/tests/zfs-tests/tests/functional/checksum/setup.ksh @@ -21,11 +21,31 @@ # # -# Copyright 2007 Sun Microsystems, Inc. All rights reserved. +# Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # +# +# Copyright (c) 2013 by Delphix. All rights reserved. +# + . $STF_SUITE/include/libtest.shlib +. $STF_SUITE/tests/functional/checksum/default.cfg + +verify_runnable "global" + +if ! $(is_physical_device $DISKS) ; then + log_unsupported "This directory cannot be run on raw files." +fi + +if [[ -n $SINGLE_DISK ]]; then + log_note "Partitioning a single disk ($SINGLE_DISK)" +else + log_note "Partitioning disks ($MIRROR_PRIMARY $MIRROR_SECONDARY)" +fi +log_must set_partition $SIDE_PRIMARY_PART "" $MIRROR_SIZE $MIRROR_PRIMARY +log_must set_partition $SIDE_SECONDARY_PART "" $MIRROR_SIZE $MIRROR_SECONDARY + +default_mirror_setup $SIDE_PRIMARY $SIDE_SECONDARY -DISK=${DISKS%% *} -default_mirror_setup $DISKS +log_pass