dm-thinp demo test

Fairly trivial test to use the dm-thin infrastructure.

Right now it exhausts space in queue-on-error mode,
adds more space, does a bit more IO, then unmounts &
checks the fs.

Not sure if that's valid to test, but it works here and
demonstrates the common/dmthin helpers.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
Eric Sandeen
2016-05-09 10:55:24 +10:00
committed by Dave Chinner
parent 4b52fffb5c
commit 1c299868dd
3 changed files with 86 additions and 0 deletions
+83
View File
@@ -0,0 +1,83 @@
#! /bin/bash
# FS QA Test No. generic/347
#
# Test very basic thin device usage, exhaustion, and growth
#
# Copyright (c) 2015 Red Hat, Inc. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it would be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
seq=`basename $0`
seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
BACKING_SIZE=$((500 * 1024 * 1024 / 512)) # 500M
VIRTUAL_SIZE=$((10 * $BACKING_SIZE)) # 5000M
GROW_SIZE=$((100 * 1024 * 1024 / 512)) # 100M
_cleanup()
{
_dmthin_cleanup
rm -f $tmp.*
}
_setup_thin()
{
_dmthin_init $BACKING_SIZE $VIRTUAL_SIZE
_dmthin_set_queue
_mkfs_dev $DMTHIN_VOL_DEV
_dmthin_mount
}
_workout()
{
# Overfill it by a bit
for I in `seq 1 500`; do
$XFS_IO_PROG -f -c "pwrite -W 0 1M" $SCRATCH_MNT/file$I &>/dev/null
done
sync
_dmthin_grow $GROW_SIZE
# Write a little more, but don't fill
for I in `seq 501 510`; do
$XFS_IO_PROG -f -c "pwrite 0 1M" $SCRATCH_MNT/file$I &>/dev/null
done
}
# get standard environment, filters and checks
. ./common/rc
. ./common/dmthin
_supported_fs generic
_supported_os Linux
_require_dm_target thin-pool
_setup_thin
_workout
_dmthin_check_fs
_dmthin_cleanup
echo "=== completed"
status=0
exit
+2
View File
@@ -0,0 +1,2 @@
QA output created by 347
=== completed
+1
View File
@@ -349,6 +349,7 @@
344 auto 344 auto
345 auto 345 auto
346 auto 346 auto
347 auto quick rw thin
705 blockdev quick rw 705 blockdev quick rw
706 blockdev quick rw 706 blockdev quick rw
707 blockdev quick rw 707 blockdev quick rw