btest-gcc.sh: Add support for option --add-passes-despite-regression.

* btest-gcc.sh: Add support for option
	--add-passes-despite-regression.

From-SVN: r100699
This commit is contained in:
Hans-Peter Nilsson 2005-06-07 07:42:22 +00:00 committed by Hans-Peter Nilsson
parent ce677da7bc
commit bd127a7515
2 changed files with 47 additions and 8 deletions

View file

@ -1,3 +1,8 @@
2005-06-07 Hans-Peter Nilsson <hp@bitrange.com>
* btest-gcc.sh: Add support for option
--add-passes-despite-regression.
2005-06-06 Hans-Peter Nilsson <hp@axis.com>
* btest-gcc.sh <Build>: Don't pass --with-newlib when target is

View file

@ -18,7 +18,20 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
# INPUT:
# btest <target> <source> <prefix> <state> <build>
# btest <options> <target> <source> <prefix> <state> <build>
add_passes_despite_regression=0
# <options> can be
# --add-passes-despite-regression:
# Add new "PASSes" despite there being some regressions.
case "$1" in
--add-passes-despite-regression)
add_passes_despite_regression=1; shift;;
--*) echo "Invalid option: $1"; exit 2;;
esac
# TARGET is the target triplet. It should be the same one as used in
# constructing PREFIX. Or it can be the keyword 'native', indicating
# a target of whatever platform the script is running on.
@ -178,17 +191,38 @@ for LOG in $TESTLOGS ; do
done | sort | uniq > $FAILED || exit 1
comm -12 $FAILED $PASSES >> $REGRESS || exit 1
NUMREGRESS=`wc -l < $REGRESS | tr -d ' '`
if [ $NUMREGRESS -eq 0 ] || [ $add_passes_despite_regression -ne 0 ] ; then
# Update the state.
for LOG in $TESTLOGS ; do
L=`basename $LOG`
awk '/^PASS: / { print "'$L'",$2; }' $LOG || exit 1
done | sort | uniq | comm -23 - $FAILED > ${PASSES}~ || exit 1
[ -s ${PASSES}~ ] || exit 1
if [ $NUMREGRESS -ne 0 ] ; then
# The way we keep track of new PASSes when in "regress-N" for
# --add-passes-despite-regression, is to *add* them to previous
# PASSes. Just as without this option, we don't forget *any* PASS
# lines, because besides the ones in $REGRESS that we definitely
# don't want to lose, their removal or rename may have been a
# mistake (as in, the cause of the "regress-N" state). If they
# come back, we then know they're regressions.
cat ${PASSES}~ ${PASSES} | sort -u > ${PASSES}~~
mv ${PASSES}~~ ${PASSES} || exit 1
rm ${PASSES}~ || exit 1
else
# In contrast to the merging for "regress-N", we just overwrite
# the known PASSes when in the "pass" state, so we get rid of
# stale PASS lines for removed, moved or otherwise changed tests
# which may be added back with a different meaning later on.
mv ${PASSES}~ ${PASSES} || exit 1
fi
fi
if [ $NUMREGRESS -ne 0 ] ; then
echo regress-$NUMREGRESS > $RESULT
exit 1
fi
# It passed. Update the state.
for LOG in $TESTLOGS ; do
L=`basename $LOG`
awk '/^PASS: / { print "'$L'",$2; }' $LOG || exit 1
done | sort | uniq | comm -23 - $FAILED > ${PASSES}~ || exit 1
[ -s ${PASSES}~ ] || exit 1
mv ${PASSES}~ ${PASSES} || exit 1
echo pass > $RESULT
exit 0