freebsd-src/tests/sys/geom/class/gate/2_test.sh
Enji Cooper 09d986419d Integrate
tools/regression/geom_{concat,eli,gate,mirror,nop,raid3,shsec,stripe,uzip}
in to the FreeBSD test suite as
tests/sys/geom/class/{concat,eli,gate,mirror,nop,raid3,shsec,stripe,uzip}

The tools/regression/geom and tools/regression/geom_part testcases are being
left alone because both test sets are both currently broken.

The majority of this work was done on ^/user/ngie/more-tests2 . The differences
are as follows:
- tests/sys/geom/class/Makefile.inc is not present; it was
  inlined into the class's Makefiles for explicitness.
- The testcases officially require root via kyua
- The geom_gate(4) tests don't use the pidfile changes proposed in
  https://reviews.freebsd.org/D4836 .

MFC after: 1 month
Sponsored by: EMC / Isilon Storage Division
2016-01-13 09:14:27 +00:00

49 lines
1,021 B
Bash

#!/bin/sh
# $FreeBSD$
. `dirname $0`/conf.sh
base=`basename $0`
us=46
work=`mktemp -u $base.XXXXXX` || exit 1
src=`mktemp -u $base.XXXXXX` || exit 1
test_cleanup()
{
ggatel destroy -f -u $us
rm -f $work $src
geom_test_cleanup
}
trap test_cleanup ABRT EXIT INT TERM
dd if=/dev/random of=$work bs=1m count=1 conv=sync
dd if=/dev/random of=$src bs=1m count=1 conv=sync
if ! ggatel create -u $us $work; then
echo 'ggatel create failed'
echo 'Bail out!'
exit 1
fi
dd if=${src} of=/dev/ggate${us} bs=1m count=1
sleep 1
echo '1..2'
src_checksum=$(md5 -q $src)
work_checksum=$(md5 -q $work)
if [ "$work_checksum" != "$src_checksum" ]; then
echo "not ok 1 - md5 checksums didn't match ($work_checksum != $src_checksum) # TODO: bug 204616"
echo 'not ok 2 # SKIP'
else
echo 'ok 1 - md5 checksum'
ggate_checksum=$(md5 -q /dev/ggate${us})
if [ "$ggate_checksum" != "$src_checksum" ]; then
echo "not ok 2 - md5 checksums didn't match ($ggate_checksum != $src_checksum)"
else
echo 'ok 2 - md5 checksum'
fi
fi