1*da20d885SPeter Holm#!/bin/sh 2*da20d885SPeter Holm 3*da20d885SPeter Holm# 4*da20d885SPeter Holm# Copyright (c) 2025 Peter Holm <pho@FreeBSD.org> 5*da20d885SPeter Holm# 6*da20d885SPeter Holm# SPDX-License-Identifier: BSD-2-Clause 7*da20d885SPeter Holm# 8*da20d885SPeter Holm 9*da20d885SPeter Holm[ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1 10*da20d885SPeter Holm 11*da20d885SPeter Holm. ../default.cfg 12*da20d885SPeter Holm 13*da20d885SPeter Holmmounts=15 # Number of parallel scripts 14*da20d885SPeter Holmmdstart=$mdstart # Use md unit numbers from this point 15*da20d885SPeter Holm 16*da20d885SPeter Holmif [ $# -eq 0 ]; then 17*da20d885SPeter Holm for i in `jot $mounts`; do 18*da20d885SPeter Holm m=$(( i + mdstart - 1 )) 19*da20d885SPeter Holm [ ! -d ${mntpoint}$m ] && mkdir ${mntpoint}$m 20*da20d885SPeter Holm mount | grep "$mntpoint" | grep -q md$m && umount ${mntpoint}$m 21*da20d885SPeter Holm done 22*da20d885SPeter Holm ../testcases/swap/swap -t 2m -i 20 & 23*da20d885SPeter Holm 24*da20d885SPeter Holm # start the parallel tests 25*da20d885SPeter Holm touch /tmp/$0 26*da20d885SPeter Holm for i in `jot $mounts`; do 27*da20d885SPeter Holm m=$(( i + mdstart - 1 )) 28*da20d885SPeter Holm ./$0 $m & 29*da20d885SPeter Holm ./$0 find $m > /dev/null 2>&1 & 30*da20d885SPeter Holm done 31*da20d885SPeter Holm wait 32*da20d885SPeter Holmelse 33*da20d885SPeter Holm if [ $1 = find ]; then 34*da20d885SPeter Holm while [ -r /tmp/$0 ]; do 35*da20d885SPeter Holm ls -lR ${mntpoint}* 36*da20d885SPeter Holm done 37*da20d885SPeter Holm else 38*da20d885SPeter Holm 39*da20d885SPeter Holm # The test: Parallel mount and unmounts 40*da20d885SPeter Holm start=`date +%s` 41*da20d885SPeter Holm while [ $((`date +%s` - start)) -lt 120 ]; do 42*da20d885SPeter Holm m=$1 43*da20d885SPeter Holm mount -t fdescfs null ${mntpoint}$m 44*da20d885SPeter Holm while mount | grep -qw $mntpoint$m; do 45*da20d885SPeter Holm opt=$([ $((`date '+%s'` % 2)) -eq 0 ] && echo "-f") 46*da20d885SPeter Holm umount $opt ${mntpoint}$m > /dev/null 2>&1 47*da20d885SPeter Holm done 48*da20d885SPeter Holm done 49*da20d885SPeter Holm rm -f /tmp/$0 50*da20d885SPeter Holm fi 51*da20d885SPeter Holmfi 52