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