summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xabe-bisect-helper.sh10
-rwxr-xr-xabe-bisect.sh6
2 files changed, 11 insertions, 5 deletions
diff --git a/abe-bisect-helper.sh b/abe-bisect-helper.sh
index e406c823..983c7232 100755
--- a/abe-bisect-helper.sh
+++ b/abe-bisect-helper.sh
@@ -38,6 +38,10 @@ ${ABE}/abe.sh --target ${TARGET} gcc=gcc.git@${REV} --set runtestflags="${EXP}=$
[ $? -ne 0 ] && exit 125
sums=`find builds/*/${TARGET}/gcc.git~master_rev_${REV}-stage2/ -name "*.sum"`
-grep ${TESTNAME} $sums | grep FAIL && exit 1 # FAILED
-grep ${TESTNAME} $sums | grep PASS && exit 0 # SUCCESS
-exit 125 # If no PASS, something went wrong
+nb_fail=$(grep ${TESTNAME} $sums | grep -c FAIL)
+[ ${nb_fail} -gt ${GOODFAIL} ] && exit 1 # More failures than GOOD, this is a bad one
+
+nb_pass=$(grep ${TESTNAME} $sums | grep -c PASS)
+[ ${nb_pass} -ge ${GOODPASS} ] && exit 0 # At least as many passes as GOOD, this is a good one
+
+exit 125 # something went wrong
diff --git a/abe-bisect.sh b/abe-bisect.sh
index e510fb61..8ce6250d 100755
--- a/abe-bisect.sh
+++ b/abe-bisect.sh
@@ -68,7 +68,7 @@ echo BAD: $BADSHA1
[ x"$GOODSHA1" = x ] && echo "ERROR: Could not find good commit ($GOOD)" && exit 1
[ x"$BADSHA1" = x ] && echo "ERROR: Could not find bad commit ($BAD)" && exit 1
-# Sanity check: make sure BAD has more failures than GOOD
+# Sanity checks on the number of passes/fails in GOOD and BAD
pushd ${rundir}
${ABE}/abe.sh --target ${TARGET} gcc=gcc.git@${GOODSHA1} --set runtestflags="${EXP}=${TESTNAME}" --build all --check gcc --excludecheck gdb >& gcc-${GOODSHA1}.log
if [ $? -ne 0 ]; then
@@ -90,13 +90,15 @@ sums=`find builds/*/${TARGET}/gcc.git~master_rev_${BADSHA1}-stage2/ -name "*.sum
bad_nb_fail=$(grep ${TESTNAME} $sums | grep -c FAIL)
bad_nb_pass=$(grep ${TESTNAME} $sums | grep -c PASS)
+# make sure BAD has more failures than GOOD
if [ $bad_nb_fail -le $good_nb_fail ]; then
echo "ERROR: BAD ($BAD) does not have more failures ($bad_nb_fail) than GOOD ($GOOD) ($good_nb_fail)"
exit 1
fi
+
popd
git bisect good ${GOODSHA1}
git bisect bad ${BADSHA1}
-RUNDIR=${rundir} ABE=${ABE} EXP=${EXP} TESTNAME=${TESTNAME} TARGET=${TARGET} CPU=${CPU} FPU=${FPU} MODE=${MODE} SIMU=${SIMU} TARGETBOARD=${TARGETBOARD} git bisect run ${mydir}/abe-bisect-helper.sh
+RUNDIR=${rundir} ABE=${ABE} EXP=${EXP} TESTNAME=${TESTNAME} TARGET=${TARGET} CPU=${CPU} FPU=${FPU} MODE=${MODE} SIMU=${SIMU} TARGETBOARD=${TARGETBOARD} GOODPASS=${good_nb_pass} GOODFAIL=${good_nb_fail} BADPASS=${bad_nb_pass} BADFAIL=${bad_nb_fail} git bisect run ${mydir}/abe-bisect-helper.sh