xref: /freebsd/tests/sys/geom/class/mirror/conf.sh (revision af7dcae0e210d05b4ed93b6a891348ca6a84e48a)
109d98641SEnji Cooper#!/bin/sh
209d98641SEnji Cooper# $FreeBSD$
309d98641SEnji Cooper
409d98641SEnji Coopername="$(mktemp -u mirror.XXXXXX)"
509d98641SEnji Cooperclass="mirror"
609d98641SEnji Cooperbase=`basename $0`
709d98641SEnji Cooper
809d98641SEnji Coopergmirror_test_cleanup()
909d98641SEnji Cooper{
1009d98641SEnji Cooper	[ -c /dev/$class/$name ] && gmirror destroy $name
1109d98641SEnji Cooper	geom_test_cleanup
1209d98641SEnji Cooper}
1309d98641SEnji Coopertrap gmirror_test_cleanup ABRT EXIT INT TERM
1409d98641SEnji Cooper
1521274cadSMark Johnstonsyncwait()
1621274cadSMark Johnston{
1721274cadSMark Johnston	while $(gmirror status -s $name | grep -q SYNCHRONIZING); do
1821274cadSMark Johnston		sleep 0.1;
1921274cadSMark Johnston	done
2021274cadSMark Johnston}
2121274cadSMark Johnston
22*af7dcae0SConrad Meyerconsumerrefs()
23*af7dcae0SConrad Meyer{
24*af7dcae0SConrad Meyer	gclass=$1
25*af7dcae0SConrad Meyer	geom=$2
26*af7dcae0SConrad Meyer
27*af7dcae0SConrad Meyer	if [ $# -ne 2 ]; then
28*af7dcae0SConrad Meyer		echo "Bad usage consumerrefs" >&2
29*af7dcae0SConrad Meyer		exit 1
30*af7dcae0SConrad Meyer	fi
31*af7dcae0SConrad Meyer
32*af7dcae0SConrad Meyer	geom "${gclass}" list "${geom}" | \
33*af7dcae0SConrad Meyer	    grep -A5 ^Consumers | \
34*af7dcae0SConrad Meyer	    grep Mode | \
35*af7dcae0SConrad Meyer	    cut -d: -f2
36*af7dcae0SConrad Meyer}
37*af7dcae0SConrad Meyer
38*af7dcae0SConrad Meyerdisconnectwait()
39*af7dcae0SConrad Meyer{
40*af7dcae0SConrad Meyer	gclass=$1
41*af7dcae0SConrad Meyer	geom=$2
42*af7dcae0SConrad Meyer
43*af7dcae0SConrad Meyer	if [ $# -ne 2 ]; then
44*af7dcae0SConrad Meyer		echo "Bad usage disconnectwait" >&2
45*af7dcae0SConrad Meyer		exit 1
46*af7dcae0SConrad Meyer	fi
47*af7dcae0SConrad Meyer
48*af7dcae0SConrad Meyer	while [ $(consumerrefs "$gclass" "$geom") != r0w0e0 ]; do
49*af7dcae0SConrad Meyer		sleep 0.05
50*af7dcae0SConrad Meyer	done
51*af7dcae0SConrad Meyer}
52*af7dcae0SConrad Meyer
5309d98641SEnji Cooper. `dirname $0`/../geom_subr.sh
54