svn commit: r313008 - head/tests/sys/geom/class/gate
Ngie Cooper
ngie at FreeBSD.org
Tue Jan 31 06:12:53 UTC 2017
Author: ngie
Date: Tue Jan 31 06:12:51 2017
New Revision: 313008
URL: https://svnweb.freebsd.org/changeset/base/313008
Log:
Wait for /dev/ggate* to appear after calling `ggatel create` in :ggatel_{file,md}
The test assumed that `ggatel create` created a device on completion, but that's
incorrect. This squashes the race by waiting for the device to appear, as
`ggatel create` daemonizes before issuing an ioctl to geom_gate(4) if not called
with `-v`.
Discussed with: asomers
MFC after: 1 week
PR: 204616
Sponsored by: Dell EMC Isilon
Modified:
head/tests/sys/geom/class/gate/ggate_test.sh
Modified: head/tests/sys/geom/class/gate/ggate_test.sh
==============================================================================
--- head/tests/sys/geom/class/gate/ggate_test.sh Tue Jan 31 03:40:13 2017 (r313007)
+++ head/tests/sys/geom/class/gate/ggate_test.sh Tue Jan 31 06:12:51 2017 (r313008)
@@ -74,7 +74,11 @@ ggatel_file_body()
atf_check ggatel create -u $us work
- dd if=src of=/dev/ggate${us} bs=1m count=1 conv=notrunc
+ ggate_dev=/dev/ggate${us}
+
+ wait_for_ggate_device ${ggate_dev}
+
+ dd if=src of=${ggate_dev} bs=1m count=1 conv=notrunc
checksum src work
}
@@ -104,7 +108,11 @@ ggatel_md_body()
atf_check ggatel create -u $us /dev/$work
- dd if=/dev/$src of=/dev/ggate${us} bs=1m count=1 conv=notrunc
+ ggate_dev=/dev/ggate${us}
+
+ wait_for_ggate_device ${ggate_dev}
+
+ dd if=/dev/$src of=${ggate_dev} bs=1m count=1 conv=notrunc
checksum /dev/$src /dev/$work
}
@@ -191,3 +199,14 @@ common_cleanup()
fi
true
}
+
+# Bug 204616: ggatel(8) creates /dev/ggate* asynchronously if `ggatel create`
+# isn't called with `-v`.
+wait_for_ggate_device()
+{
+ ggate_device=$1
+
+ while [ ! -c $ggate_device ]; do
+ sleep 0.5
+ done
+}
More information about the svn-src-all
mailing list