#!/bin/bash # This script is a helper to bisect GCC regressions. # Inputs (as env. variables): # EXP: name of .exp file to run # TESTNAME: name of test to run # TARGET # CPU # FPU # MODE # SIMU # TARGETBOARD: additional test flags # Check if the variable NAME is set check_set() { name=$1 eval val=\$${name} [ x$val = x ] && echo $1 not set && exit 1 } check_set EXP check_set TESTNAME check_set TARGET #check_set CPU #check_set FPU #check_set MODE #check_set SIMU REV=$(git show --format=%H -s BISECT_HEAD) echo AT `date` BISECT TRYING: ${REV} set -x cd ${RUNDIR} ${ABE}/abe.sh --target ${TARGET} gcc=gcc.git@${REV} --set runtestflags="${EXP}=${TESTNAME}" --build all --check gcc --excludecheck gdb >& gcc-${REV}.log [ $? -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