xref: /freebsd/tools/test/stress2/misc/msdos12.sh (revision 4d846d260e2b9a3d4d0a701462568268cbfe7a5b)
122f5f4a1SPeter Holm#!/bin/sh
222f5f4a1SPeter Holm
322f5f4a1SPeter Holm#
4*4d846d26SWarner Losh# SPDX-License-Identifier: BSD-2-Clause
522f5f4a1SPeter Holm#
622f5f4a1SPeter Holm# Copyright (c) 2021 Peter Holm
722f5f4a1SPeter Holm#
822f5f4a1SPeter Holm# Redistribution and use in source and binary forms, with or without
922f5f4a1SPeter Holm# modification, are permitted provided that the following conditions
1022f5f4a1SPeter Holm# are met:
1122f5f4a1SPeter Holm# 1. Redistributions of source code must retain the above copyright
1222f5f4a1SPeter Holm#    notice, this list of conditions and the following disclaimer.
1322f5f4a1SPeter Holm# 2. Redistributions in binary form must reproduce the above copyright
1422f5f4a1SPeter Holm#    notice, this list of conditions and the following disclaimer in the
1522f5f4a1SPeter Holm#    documentation and/or other materials provided with the distribution.
1622f5f4a1SPeter Holm#
1722f5f4a1SPeter Holm# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
1822f5f4a1SPeter Holm# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1922f5f4a1SPeter Holm# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
2022f5f4a1SPeter Holm# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
2122f5f4a1SPeter Holm# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2222f5f4a1SPeter Holm# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2322f5f4a1SPeter Holm# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2422f5f4a1SPeter Holm# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2522f5f4a1SPeter Holm# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2622f5f4a1SPeter Holm# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2722f5f4a1SPeter Holm# SUCH DAMAGE.
2822f5f4a1SPeter Holm#
2922f5f4a1SPeter Holm
3022f5f4a1SPeter Holm[ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1
3122f5f4a1SPeter Holm
3222f5f4a1SPeter Holm# Copy of rename15.sh, modified for msdosfs.
3322f5f4a1SPeter Holm
3422f5f4a1SPeter Holm. ../default.cfg
3522f5f4a1SPeter Holm
3622f5f4a1SPeter Holm[ -x /sbin/mount_msdosfs ] || exit 0
3722f5f4a1SPeter Holmlog=/tmp/msdos12.log
3822f5f4a1SPeter Holm
3922f5f4a1SPeter Holmset -e
4022f5f4a1SPeter Holmmount | grep "on $mntpoint " | grep -q /dev/md && umount -f $mntpoint
4122f5f4a1SPeter Holm[ -c /dev/md$mdstart ] &&  mdconfig -d -u $mdstart
4222f5f4a1SPeter Holmmdconfig -a -t swap -s 2g -u $mdstart
43608c97bfSPeter Holmgpart create -s bsd md$mdstart > /dev/null
44608c97bfSPeter Holmgpart add -t freebsd-ufs md$mdstart > /dev/null
45608c97bfSPeter Holmpart=a
4622f5f4a1SPeter Holmnewfs_msdos -F 32 -b 8192 /dev/md$mdstart$part > /dev/null
4722f5f4a1SPeter Holmmount -t msdosfs /dev/md$mdstart$part $mntpoint
4822f5f4a1SPeter Holmmkdir $mntpoint/stressX
4922f5f4a1SPeter Holmchmod 0777 $mntpoint/stressX
5022f5f4a1SPeter Holmset +e
5122f5f4a1SPeter Holm
5222f5f4a1SPeter Holmexport LOAD=80
5322f5f4a1SPeter Holmexport MAXSWAPPCT=80
5422f5f4a1SPeter Holmexport RUNDIR=$mntpoint/stressX
5522f5f4a1SPeter Holmexport dirnprenameLOAD=100
5622f5f4a1SPeter Holmexport dirrenameLOAD=100
5722f5f4a1SPeter Holmexport renameLOAD=100
5822f5f4a1SPeter Holmexport runRUNTIME=5m
5922f5f4a1SPeter Holmexport rwLOAD=80
6022f5f4a1SPeter Holmexport TESTPROGS='
6122f5f4a1SPeter Holmtestcases/rename/rename
6222f5f4a1SPeter Holmtestcases/swap/swap
6322f5f4a1SPeter Holm'
6422f5f4a1SPeter Holm
6522f5f4a1SPeter Holmsu $testuser -c 'cd ..; ./testcases/run/run $TESTPROGS'
6622f5f4a1SPeter Holm
6722f5f4a1SPeter Holm../tools/killall.sh
6822f5f4a1SPeter Holmleftover=`find $mntpoint -type f | wc -l`
6922f5f4a1SPeter Holmif [ $leftover -gt 0 ]; then
7022f5f4a1SPeter Holm	s=1
7122f5f4a1SPeter Holm	find $mntpoint -type f | head -5
7222f5f4a1SPeter Holmfi
7322f5f4a1SPeter Holmfor i in `jot 6`; do
7422f5f4a1SPeter Holm	mount | grep -q "on $mntpoint " || break
7522f5f4a1SPeter Holm	umount $mntpoint && break || sleep 10
7622f5f4a1SPeter Holm	[ $i -eq 6 ] &&
7722f5f4a1SPeter Holm	    { echo FATAL; fstat -mf $mntpoint; exit 1; }
7822f5f4a1SPeter Holmdone
7922f5f4a1SPeter Holmfsck -t msdosfs -y /dev/md$mdstart$part > $log 2>&1
8022f5f4a1SPeter Holmif egrep -q "BAD|INCONSISTENCY|MODIFIED" $log; then
8122f5f4a1SPeter Holm	echo "fsck problems:"
8222f5f4a1SPeter Holm	cat $log
8322f5f4a1SPeter Holm	s=2
8422f5f4a1SPeter Holm
8522f5f4a1SPeter Holm	mount -t msdosfs /dev/md$mdstart$part $mntpoint || exit 1
8622f5f4a1SPeter Holm	ls -lR $mntpoint | head -5
8722f5f4a1SPeter Holm	umount $mntpoint
8822f5f4a1SPeter Holmfi
8922f5f4a1SPeter Holmmdconfig -d -u $mdstart
9022f5f4a1SPeter Holmrm -f $log
9122f5f4a1SPeter Holmexit $s
92