Print this page
7290 ZFS test suite needs to control what utilities it can run
Reviewed by: Dan Kimmel <dan.kimmel@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
*** 24,34 ****
# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#
! # Copyright (c) 2013, 2015 by Delphix. All rights reserved.
#
. $STF_SUITE/include/libtest.shlib
. $STF_SUITE/tests/functional/replacement/replacement.cfg
--- 24,34 ----
# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#
! # Copyright (c) 2013, 2016 by Delphix. All rights reserved.
#
. $STF_SUITE/include/libtest.shlib
. $STF_SUITE/tests/functional/replacement/replacement.cfg
*** 48,66 ****
function cleanup
{
if [[ -n "$child_pids" ]]; then
for wait_pid in $child_pids
do
! $KILL $wait_pid
done
fi
if poolexists $TESTPOOL1; then
destroy_pool $TESTPOOL1
fi
! [[ -e $TESTDIR ]] && log_must $RM -rf $TESTDIR/*
}
log_assert "Replacing a disk during I/O completes."
options=""
--- 48,66 ----
function cleanup
{
if [[ -n "$child_pids" ]]; then
for wait_pid in $child_pids
do
! kill $wait_pid
done
fi
if poolexists $TESTPOOL1; then
destroy_pool $TESTPOOL1
fi
! [[ -e $TESTDIR ]] && log_must rm -rf $TESTDIR/*
}
log_assert "Replacing a disk during I/O completes."
options=""
*** 90,145 ****
typeset -i index=0
typeset disk1=$1
typeset i=0
while [[ $i -lt $iters ]]; do
! log_note "Invoking $FILE_TRUNC with: $options_display"
! $FILE_TRUNC $options $TESTDIR/$TESTFILE.$i &
typeset pid=$!
! $SLEEP 1
! if ! $PS -p $pid > /dev/null 2>&1; then
! log_fail "$FILE_TRUNC $options $TESTDIR/$TESTFILE.$i"
fi
child_pids="$child_pids $pid"
((i = i + 1))
done
! log_must $ZPOOL detach $TESTPOOL1 $disk1
! $SLEEP 10
for wait_pid in $child_pids
do
! $KILL $wait_pid
done
child_pids=""
! log_must $ZPOOL export $TESTPOOL1
! log_must $ZPOOL import -d $TESTDIR $TESTPOOL1
! log_must $ZFS umount $TESTPOOL1/$TESTFS1
! log_must $ZDB -cdui $TESTPOOL1/$TESTFS1
! log_must $ZFS mount $TESTPOOL1/$TESTFS1
}
specials_list=""
i=0
while [[ $i != 2 ]]; do
! $MKFILE $MINVDEVSIZE $TESTDIR/$TESTFILE1.$i
specials_list="$specials_list $TESTDIR/$TESTFILE1.$i"
((i = i + 1))
done
create_pool $TESTPOOL1 mirror $specials_list
! log_must $ZFS create $TESTPOOL1/$TESTFS1
! log_must $ZFS set mountpoint=$TESTDIR1 $TESTPOOL1/$TESTFS1
detach_test $TESTDIR/$TESTFILE1.1
! $ZPOOL iostat -v $TESTPOOL1 | grep "$TESTDIR/$TESTFILE1.1"
if [[ $? -eq 0 ]]; then
log_fail "$TESTFILE1.1 should no longer be present."
fi
destroy_pool $TESTPOOL1
--- 90,145 ----
typeset -i index=0
typeset disk1=$1
typeset i=0
while [[ $i -lt $iters ]]; do
! log_note "Invoking file_trunc with: $options_display"
! file_trunc $options $TESTDIR/$TESTFILE.$i &
typeset pid=$!
! sleep 1
! if ! ps -p $pid > /dev/null 2>&1; then
! log_fail "file_trunc $options $TESTDIR/$TESTFILE.$i"
fi
child_pids="$child_pids $pid"
((i = i + 1))
done
! log_must zpool detach $TESTPOOL1 $disk1
! sleep 10
for wait_pid in $child_pids
do
! kill $wait_pid
done
child_pids=""
! log_must zpool export $TESTPOOL1
! log_must zpool import -d $TESTDIR $TESTPOOL1
! log_must zfs umount $TESTPOOL1/$TESTFS1
! log_must zdb -cdui $TESTPOOL1/$TESTFS1
! log_must zfs mount $TESTPOOL1/$TESTFS1
}
specials_list=""
i=0
while [[ $i != 2 ]]; do
! mkfile $MINVDEVSIZE $TESTDIR/$TESTFILE1.$i
specials_list="$specials_list $TESTDIR/$TESTFILE1.$i"
((i = i + 1))
done
create_pool $TESTPOOL1 mirror $specials_list
! log_must zfs create $TESTPOOL1/$TESTFS1
! log_must zfs set mountpoint=$TESTDIR1 $TESTPOOL1/$TESTFS1
detach_test $TESTDIR/$TESTFILE1.1
! zpool iostat -v $TESTPOOL1 | grep "$TESTDIR/$TESTFILE1.1"
if [[ $? -eq 0 ]]; then
log_fail "$TESTFILE1.1 should no longer be present."
fi
destroy_pool $TESTPOOL1
*** 146,161 ****
log_note "Verify 'zpool detach' fails with non-mirrors."
for type in "" "raidz" "raidz1" ; do
create_pool $TESTPOOL1 $type $specials_list
! log_must $ZFS create $TESTPOOL1/$TESTFS1
! log_must $ZFS set mountpoint=$TESTDIR1 $TESTPOOL1/$TESTFS1
! log_mustnot $ZPOOL detach $TESTDIR/$TESTFILE1.1
! $ZPOOL iostat -v $TESTPOOL1 | grep "$TESTDIR/$TESTFILE1.1"
if [[ $? -ne 0 ]]; then
log_fail "$TESTFILE1.1 is not present."
fi
destroy_pool $TESTPOOL1
--- 146,161 ----
log_note "Verify 'zpool detach' fails with non-mirrors."
for type in "" "raidz" "raidz1" ; do
create_pool $TESTPOOL1 $type $specials_list
! log_must zfs create $TESTPOOL1/$TESTFS1
! log_must zfs set mountpoint=$TESTDIR1 $TESTPOOL1/$TESTFS1
! log_mustnot zpool detach $TESTDIR/$TESTFILE1.1
! zpool iostat -v $TESTPOOL1 | grep "$TESTDIR/$TESTFILE1.1"
if [[ $? -ne 0 ]]; then
log_fail "$TESTFILE1.1 is not present."
fi
destroy_pool $TESTPOOL1