I think wait_for_ggate_device should also be used at line 32, which calls "ggatec create". -Alan
On Mon, Jan 30, 2017 at 11:12 PM, Ngie Cooper <n...@freebsd.org> wrote: > 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 > +} > _______________________________________________ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"