| #!/usr/bin/env bash |
| |
| # This script is the main driver of the bisection. Please read the |
| # README.txt in this directory for more info. |
| |
| syntax="Syntax: $0 [-(s)tep N | -(o)pts '-hvsc -t TEST'] <first commit> <last commit>" |
| |
| step=1 |
| while getopts "s:o:" opt; do |
| case $opt in |
| s) |
| step=$OPTARG |
| ;; |
| o) |
| run_opts="$run_opts $OPTARG" |
| ;; |
| *) |
| echo -e $syntax |
| exit 1 |
| ;; |
| esac |
| done |
| shift $(($OPTIND-1)) |
| |
| if [[ $1 = '' || $2 = '' ]]; then |
| echo -e $syntax |
| exit 1 |
| fi |
| |
| from=$1 |
| to=$(($2+1)) |
| cur=$from |
| |
| while [[ $cur < $to ]]; do |
| echo "Testing $cur..." |
| ./checkout.sh $cur 2>&1 > $cur.log |
| ./run.sh $run_opts 2>&1 >> $cur.log |
| if [[ $? != 0 ]]; then |
| echo "BAD" |
| exit 1 |
| else |
| echo "GOOD" |
| fi |
| cur=$(($cur+$step)) |
| done |