Update the test-script based on the sunlabel version, but put a for-loop
in there to run over the various architectures.
This commit is contained in:
parent
d73072efd4
commit
cf0500a874
@ -3,108 +3,168 @@
|
||||
|
||||
TMP=/tmp/$$.
|
||||
set -e
|
||||
MD=`mdconfig -a -t malloc -s 2m`
|
||||
trap "exec 7</dev/null; rm -f ${TMP}* ; mdconfig -d -u ${MD}" EXIT INT TERM
|
||||
|
||||
./bsdlabel -r -w $MD auto
|
||||
|
||||
dd if=/dev/$MD of=${TMP}i0 count=16 > /dev/null 2>&1
|
||||
./bsdlabel $MD > ${TMP}l0
|
||||
sed '
|
||||
/ c:/{
|
||||
p
|
||||
s/c:/a:/
|
||||
s/4096/1024/
|
||||
}
|
||||
' ${TMP}l0 > ${TMP}l1
|
||||
./bsdlabel -R $MD ${TMP}l1
|
||||
dd if=/dev/$MD of=${TMP}i1 count=16 > /dev/null 2>&1
|
||||
sed '
|
||||
/ c:/{
|
||||
p
|
||||
s/c:/a:/
|
||||
s/4096/2048/
|
||||
}
|
||||
' ${TMP}l0 > ${TMP}l2
|
||||
./bsdlabel -R $MD ${TMP}l2
|
||||
dd if=/dev/$MD of=${TMP}i2 count=16 > /dev/null 2>&1
|
||||
|
||||
exec 7< /dev/${MD}a
|
||||
|
||||
for t in a c
|
||||
for ARCH in i386 alpha
|
||||
do
|
||||
if dd if=${TMP}i2 of=/dev/${MD}$t 2>/dev/null ; then
|
||||
echo "PASS: Could rewrite same label to ...$t while ...a open" 1>&2
|
||||
echo "ARCH $ARCH"
|
||||
MD=`mdconfig -a -t malloc -s 2m`
|
||||
trap "exec 7</dev/null; rm -f ${TMP}* ; mdconfig -d -u ${MD}" EXIT INT TERM
|
||||
|
||||
./bsdlabel -m ${ARCH} -r -w $MD auto
|
||||
|
||||
dd if=/dev/$MD of=${TMP}i0 count=16 > /dev/null 2>&1
|
||||
if [ "$ARCH" = "alpha" ] ; then
|
||||
dd if=${TMP}i0 of=${TMP}b0 iseek=1 count=15 > /dev/null 2>&1
|
||||
else
|
||||
echo "FAIL: Could not rewrite same label to ...$t while ...a open" 1>&2
|
||||
cp ${TMP}i0 ${TMP}b0
|
||||
fi
|
||||
./bsdlabel -m ${ARCH} $MD > ${TMP}l0
|
||||
|
||||
sed '
|
||||
/ c:/{
|
||||
p
|
||||
s/c:/a:/
|
||||
s/4096/1024/
|
||||
}
|
||||
' ${TMP}l0 > ${TMP}l1
|
||||
|
||||
./bsdlabel -m ${ARCH} -R $MD ${TMP}l1
|
||||
if [ -c /dev/${MD}a ] ; then
|
||||
echo "PASS: Created a: partition" 1>&2
|
||||
else
|
||||
echo "FAIL: Did not create a: partition" 1>&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if dd if=${TMP}i1 of=/dev/${MD}$t 2>/dev/null ; then
|
||||
echo "FAIL: Could label with smaller ...a to ...$t while ...a open" 1>&2
|
||||
exit 2
|
||||
# Spoil and rediscover
|
||||
|
||||
true > /dev/${MD}
|
||||
if [ -c /dev/${MD}a ] ; then
|
||||
echo "PASS: Recreated a: partition after spoilage" 1>&2
|
||||
else
|
||||
echo "PASS: Could not label with smaller ...a to ...$t while ...a open" 1>&2
|
||||
echo "FAIL: Did not recreate a: partition after spoilage" 1>&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if dd if=${TMP}i0 of=/dev/${MD}$t 2>/dev/null ; then
|
||||
echo "FAIL: Could write label missing ...a to ...$t while ...a open" 1>&2
|
||||
dd if=/dev/$MD of=${TMP}i1 count=16 > /dev/null 2>&1
|
||||
sed '
|
||||
/ c:/{
|
||||
p
|
||||
s/c:/a:/
|
||||
s/4096/2048/
|
||||
}
|
||||
' ${TMP}l0 > ${TMP}l2
|
||||
|
||||
./bsdlabel -m ${ARCH} -R $MD ${TMP}l2
|
||||
dd if=/dev/$MD of=${TMP}i2 count=16 > /dev/null 2>&1
|
||||
|
||||
exec 7< /dev/${MD}a
|
||||
|
||||
for t in a c
|
||||
do
|
||||
if dd if=${TMP}i2 of=/dev/${MD}$t 2>/dev/null ; then
|
||||
echo "PASS: Could rewrite same label to ...$t while ...a open" 1>&2
|
||||
else
|
||||
echo "FAIL: Could not rewrite same label to ...$t while ...a open" 1>&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if dd if=${TMP}i1 of=/dev/${MD}$t 2>/dev/null ; then
|
||||
echo "FAIL: Could label with smaller ...a to ...$t while ...a open" 1>&2
|
||||
exit 2
|
||||
else
|
||||
echo "PASS: Could not label with smaller ...a to ...$t while ...a open" 1>&2
|
||||
fi
|
||||
|
||||
if dd if=${TMP}i0 of=/dev/${MD}$t 2>/dev/null ; then
|
||||
echo "FAIL: Could write label missing ...a to ...$t while ...a open" 1>&2
|
||||
exit 2
|
||||
else
|
||||
echo "PASS: Could not write label missing ...a to ...$t while ...a open" 1>&2
|
||||
fi
|
||||
done
|
||||
|
||||
exec 7< /dev/null
|
||||
|
||||
if dd if=${TMP}i0 of=/dev/${MD}c 2>/dev/null ; then
|
||||
echo "PASS: Could write missing ...a label to ...c" 1>&2
|
||||
else
|
||||
echo "FAIL: Could not write missing ...a label to ...c" 1>&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if dd if=${TMP}i2 of=/dev/${MD}c 2>/dev/null ; then
|
||||
echo "PASS: Could write large ...a label to ...c" 1>&2
|
||||
else
|
||||
echo "FAIL: Could not write large ...a label to ...c" 1>&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if dd if=${TMP}i1 of=/dev/${MD}c 2>/dev/null ; then
|
||||
echo "PASS: Could write small ...a label to ...c" 1>&2
|
||||
else
|
||||
echo "FAIL: Could not write small ...a label to ...c" 1>&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if dd if=${TMP}i2 of=/dev/${MD}a 2>/dev/null ; then
|
||||
echo "PASS: Could increase size of ...a by writing to ...a" 1>&2
|
||||
else
|
||||
echo "FAIL: Could not increase size of ...a by writing to ...a" 1>&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if dd if=${TMP}i1 of=/dev/${MD}a 2>/dev/null ; then
|
||||
echo "FAIL: Could decrease size of ...a by writing to ...a" 1>&2
|
||||
exit 2
|
||||
else
|
||||
echo "PASS: Could not write label missing ...a to ...$t while ...a open" 1>&2
|
||||
echo "PASS: Could not decrease size of ...a by writing to ...a" 1>&2
|
||||
fi
|
||||
|
||||
if dd if=${TMP}i0 of=/dev/${MD}a 2>/dev/null ; then
|
||||
echo "FAIL: Could delete ...a by writing to ...a" 1>&2
|
||||
exit 2
|
||||
else
|
||||
echo "PASS: Could not delete ...a by writing to ...a" 1>&2
|
||||
fi
|
||||
|
||||
if ./bsdlabel -m ${ARCH} -B -b ${TMP}b0 ${MD} ; then
|
||||
if [ ! -c /dev/${MD}a ] ; then
|
||||
echo "FAILED: Writing bootcode killed ...a" 1>&2
|
||||
exit 2
|
||||
else
|
||||
echo "PASS: Could write bootcode while closed" 1>&2
|
||||
fi
|
||||
else
|
||||
echo "FAILED: Could not write bootcode while closed" 1>&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
exec 7> /dev/${MD}c
|
||||
if ktrace ./bsdlabel -m ${ARCH} -B -b ${TMP}b0 ${MD} ; then
|
||||
if [ ! -c /dev/${MD}a ] ; then
|
||||
echo "FAILED: Writing bootcode killed ...a" 1>&2
|
||||
exit 2
|
||||
else
|
||||
echo "PASS: Could write bootcode while open" 1>&2
|
||||
fi
|
||||
else
|
||||
echo "FAILED: Could not write bootcode while open" 1>&2
|
||||
exit 2
|
||||
fi
|
||||
exec 7> /dev/null
|
||||
|
||||
if dd if=${TMP}i0 of=/dev/${MD}c 2>/dev/null ; then
|
||||
echo "PASS: Could delete ...a by writing to ...c" 1>&2
|
||||
else
|
||||
echo "FAIL: Could not delete ...a by writing to ...c" 1>&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
# XXX: need to add a 'b' partition and check for overlaps.
|
||||
|
||||
rm -f ${TMP}*
|
||||
mdconfig -d -u ${MD}
|
||||
|
||||
done
|
||||
|
||||
exec 7< /dev/null
|
||||
|
||||
if dd if=${TMP}i0 of=/dev/${MD}c 2>/dev/null ; then
|
||||
echo "PASS: Could write missing ...a label to ...c" 1>&2
|
||||
else
|
||||
echo "FAIL: Could not write missing ...a label to ...c" 1>&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if dd if=${TMP}i2 of=/dev/${MD}c 2>/dev/null ; then
|
||||
echo "PASS: Could write large ...a label to ...c" 1>&2
|
||||
else
|
||||
echo "FAIL: Could not write large ...a label to ...c" 1>&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if dd if=${TMP}i1 of=/dev/${MD}c 2>/dev/null ; then
|
||||
echo "PASS: Could write small ...a label to ...c" 1>&2
|
||||
else
|
||||
echo "FAIL: Could not write small ...a label to ...c" 1>&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if dd if=${TMP}i2 of=/dev/${MD}a 2>/dev/null ; then
|
||||
echo "PASS: Could increase size of ...a by writing to ...a" 1>&2
|
||||
else
|
||||
echo "FAIL: Could not increase size of ...a by writing to ...a" 1>&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
if dd if=${TMP}i1 of=/dev/${MD}a 2>/dev/null ; then
|
||||
echo "FAIL: Could decrease size of ...a by writing to ...a" 1>&2
|
||||
exit 2
|
||||
else
|
||||
echo "PASS: Could not decrease size of ...a by writing to ...a" 1>&2
|
||||
fi
|
||||
|
||||
if dd if=${TMP}i0 of=/dev/${MD}a 2>/dev/null ; then
|
||||
echo "FAIL: Could delete ...a by writing to ...a" 1>&2
|
||||
exit 2
|
||||
else
|
||||
echo "PASS: Could not delete ...a by writing to ...a" 1>&2
|
||||
fi
|
||||
|
||||
if dd if=${TMP}i0 of=/dev/${MD}c 2>/dev/null ; then
|
||||
echo "PASS: Could delete ...a by writing to ...c" 1>&2
|
||||
else
|
||||
echo "FAIL: Could not delete ...a by writing to ...c" 1>&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
# XXX: need to add a 'b' partition and check for overlaps.
|
||||
trap "" EXIT INT TERM
|
||||
exit 0
|
||||
|
Loading…
Reference in New Issue
Block a user