Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable zfs-test zpool_expand_002_pos #5757

Merged
merged 2 commits into from
Feb 13, 2017
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions tests/runfiles/linux.run
Original file line number Diff line number Diff line change
Expand Up @@ -277,10 +277,10 @@ post =
tests = ['zpool_detach_001_neg']

# DISABLED: Requires full FMA support in ZED
# zpool_expand_* - https://github.com/zfsonlinux/zfs/issues/2437
#[tests/functional/cli_root/zpool_expand]
#tests = ['zpool_expand_001_pos', 'zpool_expand_002_pos',
# 'zpool_expand_003_neg']
# zpool_expand_001_pos - https://github.com/zfsonlinux/zfs/issues/2437
# zpool_expand_003_pos - https://github.com/zfsonlinux/zfs/issues/2437
[tests/functional/cli_root/zpool_expand]
tests = ['zpool_expand_002_pos']

# DISABLED:
# zpool_export_004_pos - https://github.com/zfsonlinux/zfs/issues/3484
Expand Down
7 changes: 7 additions & 0 deletions tests/zfs-tests/include/default.cfg.in
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@

#
# Copyright (c) 2016 by Delphix. All rights reserved.
# Copyright (c) 2017 Lawrence Livermore National Security, LLC.
#

. $STF_SUITE/include/commands.cfg
Expand Down Expand Up @@ -129,6 +130,12 @@ export TESTDIR0=${TEST_BASE_DIR%%/}/testdir0$$
export TESTDIR1=${TEST_BASE_DIR%%/}/testdir1$$
export TESTDIR2=${TEST_BASE_DIR%%/}/testdir2$$

# some temp files
export TEMPFILE=${TEST_BASE_DIR%%/}/tempfile$$
export TEMPFILE0=${TEST_BASE_DIR%%/}/tempfile0$$
export TEMPFILE1=${TEST_BASE_DIR%%/}/tempfile1$$
export TEMPFILE2=${TEST_BASE_DIR%%/}/tempfile2$$
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you use TEMPFILE{0,1,2}? I don't see where you do. It appears that you are only using TEMPFILE.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are correct. I defined TEMPFILE012 to be consistent with other similar variables such as TESTDIR*

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dinatale2, thanks for the Thumbs Up. Does this mean you approve the patch? If so, I believe there's a special link for that in the upper right corner somewhere. Thanks!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh sorry, just acknowledging that I approve of the reasoning behind why you did it that way. I will give this another look over and give it a proper review.


export ZFSROOT=

export TESTSNAP=testsnap$$
Expand Down
5 changes: 4 additions & 1 deletion tests/zfs-tests/include/libtest.shlib
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

#
# Copyright (c) 2012, 2015 by Delphix. All rights reserved.
# Copyright (c) 2017 Lawrence Livermore National Security, LLC.
#

. ${STF_TOOLS}/include/logapi.shlib
Expand Down Expand Up @@ -1043,14 +1044,16 @@ function get_prop # property dataset
# Simple function to get the specified property of pool. If unable to
# get the property then exits.
#
# Note property is in 'parsable' format (-p)
#
function get_pool_prop # property pool
{
typeset prop_val
typeset prop=$1
typeset pool=$2

if poolexists $pool ; then
prop_val=$($ZPOOL get $prop $pool 2>/dev/null | $TAIL -1 | \
prop_val=$($ZPOOL get -pH $prop $pool 2>/dev/null | $TAIL -1 | \
$AWK '{print $3}')
if [[ $? -ne 0 ]]; then
log_note "Unable to get $prop property for pool " \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,7 @@
#


export org_size=1g
export exp_size=2g
export org_size=$MINVDEVSIZE
export exp_size=$((2*$org_size))

export VFS=$TESTPOOL/$TESTFS

export EX_1GB=1073741824
export EX_3GB=3221225472
Original file line number Diff line number Diff line change
Expand Up @@ -102,30 +102,33 @@ for type in " " mirror raidz raidz2; do
if [[ $zfs_expand_size > $zfs_prev_size ]]; then
# check for zpool history for the pool size expansion
if [[ $type == " " ]]; then
typeset expansion_size=$(($exp_size-$org_size))
typeset size_addition=$($ZPOOL history -il $TESTPOOL1 |\
$GREP "pool '$TESTPOOL1' size:" | \
$GREP "vdev online" | \
$GREP "(+${EX_1GB}" | wc -l)
$GREP "(+${expansion_size}" | wc -l)

if [[ $size_addition -ne $i ]]; then
log_fail "pool $TESTPOOL1 is not autoexpand " \
"after LUN expansion"
fi
elif [[ $type == "mirror" ]]; then
typeset expansion_size=$(($exp_size-$org_size))
$ZPOOL history -il $TESTPOOL1 | \
$GREP "pool '$TESTPOOL1' size:" | \
$GREP "vdev online" | \
$GREP "(+${EX_1GB})" >/dev/null 2>&1
$GREP "(+${expansion_size})" >/dev/null 2>&1

if [[ $? -ne 0 ]] ; then
log_fail "pool $TESTPOOL1 is not autoexpand " \
"after LUN expansion"
fi
else
typeset expansion_size=$((3*($exp_size-$org_size)))
$ZPOOL history -il $TESTPOOL1 | \
$GREP "pool '$TESTPOOL1' size:" | \
$GREP "vdev online" | \
$GREP "(+${EX_3GB})" >/dev/null 2>&1
$GREP "(+${expansion_size})" >/dev/null 2>&1

if [[ $? -ne 0 ]]; then
log_fail "pool $TESTPOOL is not autoexpand " \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

#
# Copyright (c) 2012, 2015 by Delphix. All rights reserved.
# Copyright (c) 2017 Lawrence Livermore National Security, LLC.
#

. $STF_SUITE/include/libtest.shlib
Expand All @@ -39,12 +40,11 @@
#
#
# STRATEGY:
# 1) Create a pool
# 2) Create volume on top of the pool
# 3) Create pool by using the zvols
# 4) Expand the vol size by zfs set volsize
# 5 Use zpool online -e to online the zvol vdevs
# 6) Check that the pool size was expaned
# 1) Create 3 files
# 2) Create a pool backed by the files
# 3) Expand the files' size with truncate
# 4) Use zpool online -e to online the vdevs
# 5) Check that the pool size was expanded
#

verify_runnable "global"
Expand All @@ -56,23 +56,22 @@ function cleanup
fi

for i in 1 2 3; do
if datasetexists $VFS/vol$i; then
log_must $ZFS destroy $VFS/vol$i
fi
[ -e ${TEMPFILE}.$i ] && log_must $RM ${TEMPFILE}.$i
done
}

log_onexit cleanup

log_assert "zpool can expand after zpool online -e zvol vdevs on LUN expansion"

for i in 1 2 3; do
log_must $ZFS create -V $org_size $VFS/vol$i
done

for type in " " mirror raidz raidz2; do
log_must $ZPOOL create $TESTPOOL1 $type ${ZVOL_DEVDIR}/$VFS/vol1 \
${ZVOL_DEVDIR}/$VFS/vol2 ${ZVOL_DEVDIR}/$VFS/vol3
for i in 1 2 3; do
log_must $TRUNCATE -s $org_size ${TEMPFILE}.$i
done

log_must $ZPOOL create $TESTPOOL1 $type $TEMPFILE.1 \
$TEMPFILE.2 $TEMPFILE.3

typeset autoexp=$(get_pool_prop autoexpand $TESTPOOL1)

Expand All @@ -85,11 +84,11 @@ for type in " " mirror raidz raidz2; do
$AWK '{print $3}')

for i in 1 2 3; do
log_must $ZFS set volsize=$exp_size $VFS/vol$i
log_must $TRUNCATE -s $exp_size ${TEMPFILE}.$i
done

for i in 1 2 3; do
log_must $ZPOOL online -e $TESTPOOL1 ${ZVOL_DEVDIR}/$VFS/vol$i
log_must $ZPOOL online -e $TESTPOOL1 ${TEMPFILE}.$i
done

$SYNC
Expand All @@ -106,30 +105,33 @@ for type in " " mirror raidz raidz2; do
if [[ $zfs_expand_size -gt $zfs_prev_size ]]; then
# check for zpool history for the pool size expansion
if [[ $type == " " ]]; then
typeset expansion_size=$(($exp_size-$org_size))
typeset size_addition=$($ZPOOL history -il $TESTPOOL1 \
| $GREP "pool '$TESTPOOL1' size:" | \
$GREP "vdev online" | \
$GREP "(+${EX_1GB}" | wc -l)
$GREP "(+${expansion_size}" | wc -l)

if [[ $size_addition -ne $i ]]; then
log_fail "pool $TESTPOOL1 is not autoexpand " \
"after LUN expansion"
fi
elif [[ $type == "mirror" ]]; then
typeset expansion_size=$(($exp_size-$org_size))
$ZPOOL history -il $TESTPOOL1 | \
$GREP "pool '$TESTPOOL1' size:" | \
$GREP "vdev online" | \
$GREP "(+${EX_1GB})" >/dev/null 2>&1
$GREP "(+${expansion_size})" >/dev/null 2>&1

if [[ $? -ne 0 ]]; then
log_fail "pool $TESTPOOL1 is not autoexpand " \
"after LUN expansion"
fi
else
typeset expansion_size=$((3*($exp_size-$org_size)))
$ZPOOL history -il $TESTPOOL1 | \
$GREP "pool '$TESTPOOL1' size:" | \
$GREP "vdev online" | \
$GREP "(+${EX_3GB})" >/dev/null 2>&1
$GREP "(+${expansion_size})" >/dev/null 2>&1

if [[ $? -ne 0 ]] ; then
log_fail "pool $TESTPOOL1 is not autoexpand " \
Expand All @@ -141,8 +143,5 @@ for type in " " mirror raidz raidz2; do
"expansion"
fi
log_must $ZPOOL destroy $TESTPOOL1
for i in 1 2 3; do
log_must $ZFS set volsize=$org_size $VFS/vol$i
done
done
log_pass "zpool can expand after zpool online -e zvol vdevs on LUN expansion"