Path: blob/main/tools/test/stress2/misc/backingstore.sh
39536 views
#!/bin/sh12#3# Copyright (c) 2008 Peter Holm <[email protected]>4# All rights reserved.5#6# Redistribution and use in source and binary forms, with or without7# modification, are permitted provided that the following conditions8# are met:9# 1. Redistributions of source code must retain the above copyright10# notice, this list of conditions and the following disclaimer.11# 2. Redistributions in binary form must reproduce the above copyright12# notice, this list of conditions and the following disclaimer in the13# documentation and/or other materials provided with the distribution.14#15# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND16# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE17# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE18# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE19# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL20# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS21# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)22# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT23# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY24# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF25# SUCH DAMAGE.26#2728# Test sparse backing store2930[ `id -u ` -ne 0 ] && echo "Must be root!" && exit 13132. ../default.cfg3334D=$diskimage35export here=`pwd`3637m=$mdstart3839mount | grep "$mntpoint" | grep -q md$m && umount $mntpoint$m40mdconfig -l | grep -q md$m && mdconfig -d -u $m4142dd if=/dev/zero of=$D$m bs=100m count=1 status=none || exit 14344mdconfig -a -t vnode -f $D$m -u $m4546newfs md${m} > /dev/null 2>&147[ -d $mntpoint$m ] || mkdir -p $mntpoint$m48mount $opt /dev/md$m $mntpoint$m4950n=$m51m=$((m + 1))5253mount | grep "$mntpoint$m" | grep -q md$m && umount $mntpoint$m54mdconfig -l | grep -q md$m && mdconfig -d -u $m5556truncate -s 500M $mntpoint$n/diskimage57mdconfig -a -t vnode -f $mntpoint$n/diskimage -u $m5859newfs md${m} > /dev/null 2>&160[ -d $mntpoint$m ] || mkdir -p $mntpoint$m61mount $opt /dev/md$m $mntpoint$m6263export RUNDIR=$mntpoint$m/stressX64../testcases/rw/rw -t 5m -i 200 -h -n6566while mount | grep -q $mntpoint$m; do67flag=$([ $((`date '+%s'` % 2)) -eq 0 ] && echo "-f" || echo "")68umount $flag $mntpoint$m > /dev/null 2>&169done70mdconfig -l | grep -q md$m && mdconfig -d -u $m7172m=$((m - 1))73while mount | grep -q $mntpoint$m; do74umount $([ $((`date '+%s'` % 2)) -eq 0 ] && \75echo "-f" || echo "") $mntpoint$m > /dev/null 2>&176done77mdconfig -l | grep -q md$m && mdconfig -d -u $m78rm -f $D798081