summaryrefslogtreecommitdiff
path: root/tests/sys/geom/class/mirror/conf.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/sys/geom/class/mirror/conf.sh')
-rw-r--r--tests/sys/geom/class/mirror/conf.sh31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/sys/geom/class/mirror/conf.sh b/tests/sys/geom/class/mirror/conf.sh
index 1cb785e5113fd..cee2b10e9ff6a 100644
--- a/tests/sys/geom/class/mirror/conf.sh
+++ b/tests/sys/geom/class/mirror/conf.sh
@@ -19,4 +19,35 @@ syncwait()
done
}
+consumerrefs()
+{
+ gclass=$1
+ geom=$2
+
+ if [ $# -ne 2 ]; then
+ echo "Bad usage consumerrefs" >&2
+ exit 1
+ fi
+
+ geom "${gclass}" list "${geom}" | \
+ grep -A5 ^Consumers | \
+ grep Mode | \
+ cut -d: -f2
+}
+
+disconnectwait()
+{
+ gclass=$1
+ geom=$2
+
+ if [ $# -ne 2 ]; then
+ echo "Bad usage disconnectwait" >&2
+ exit 1
+ fi
+
+ while [ $(consumerrefs "$gclass" "$geom") != r0w0e0 ]; do
+ sleep 0.05
+ done
+}
+
. `dirname $0`/../geom_subr.sh