1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
#!/bin/sh
# work around sadt not honouring the latest DEP8
test -n "$AUTOPKGTEST_TMP" || AUTOPKGTEST_TMP=${ADTTMP:-$TMPDIR}
set -e
# just to be safe
test -n "$AUTOPKGTEST_TMP"
cp /usr/share/doc/mksh/check.* "$AUTOPKGTEST_TMP/"
cp /usr/share/doc/mksh/testdata.* "$AUTOPKGTEST_TMP/"
for x in "$AUTOPKGTEST_TMP/"*.gz; do
test -e "$x" || continue
gzip -d "$x"
done
rv=0
bad() {
echo "E: $*"
rv=1
}
echo I: self-test
set -- $(md5sum debian/rtchecks)
test bd51f320dcb3970f0119db72f7ae6be4 = "$1" || bad rtchecks corrupt
for fn in "$AUTOPKGTEST_TMP"/testdata.*; do
what=${fn#"$AUTOPKGTEST_TMP"/testdata.}
echo "I: testing $what"
test -s "$fn" || {
# deliberately catches testdata.* matching nothing
echo >&2 "E: $fn empty"
exit 1
}
cat= shell=/bin/false skip= asanopts=
. "$fn"
if test x"$skip" = x"1"; then
echo "W: skipping $shell"
continue
elif test x"$skip" != x"0"; then
bad "$what: testdata file error"
fi
:>"$AUTOPKGTEST_TMP"/rtchecks.out
if test x"$what" = x"legacy"; then
echo "I: $what: rtchecks skipped"
elif env ${asanopts:+ASAN_OPTIONS="$asanopts"} \
"$shell" debian/rtchecks >"$AUTOPKGTEST_TMP"/rtchecks.out; then
set -- $(md5sum "$AUTOPKGTEST_TMP"/rtchecks.out)
if test d5345290b8f3a343f6446710007d4e5a = "$1"; then
echo "I: $what: rtchecks passed"
else
bad "$what: rtchecks mismatched"
sed 's/^/N: /' <"$AUTOPKGTEST_TMP"/rtchecks.out
fi
else
bad "$what: rtchecks failed"
fi
echo "I: $what: Starting mtest; this takes about 30 seconds..."
:>"$AUTOPKGTEST_TMP"/mtest.log
if perl "$AUTOPKGTEST_TMP"/check.pl -T "$AUTOPKGTEST_TMP" \
-U C.UTF-8 -s debian/mtest.t -p "$shell" -v \
${asanopts:+-e ASAN_OPTIONS="$asanopts"} \
>"$AUTOPKGTEST_TMP"/mtest.log 2>&1; then
if grep '^Total failed: 0$' "$AUTOPKGTEST_TMP"/mtest.log \
>/dev/null; then
echo "I: $what: mtest passed"
else
bad "$what: mtest did not pass"
sed 's/^/N: /' <"$AUTOPKGTEST_TMP"/mtest.log
fi
else
bad "$what: mtest failed"
sed 's/^/N: /' <"$AUTOPKGTEST_TMP"/mtest.log
fi
done
if test x"$rv" = x"0"; then
echo "I: success"
exit 0
fi
echo >&2 "E: there were failures"
exit $rv
|