Home | History | Annotate | Line # | Download | only in bin
      1      1.1  mrg #! /bin/sh
      2      1.1  mrg 
      3      1.1  mrg # The build failed for and identifier in the range bwetween LOW and HIGH.
      4      1.1  mrg # Find a new patch id to try within that range.
      5      1.1  mrg #
      6      1.1  mrg # It's meant to be easy to modify the heuristics used to select the
      7      1.1  mrg # next patch to try by adding to or rearranging the patches listed in
      8      1.1  mrg # MIDLIST.  Known failures are recorded in ${REG_FAILLIST}.
      9      1.1  mrg #
     10      1.1  mrg # A nifty improvement would be to record known ranges of failure as
     11      1.1  mrg # ranges, and then pick revisions just before and just after the range.
     12      1.1  mrg #
     13  1.1.1.2  mrg # Copyright (C) 2006-2024 Free Software Foundation, Inc.
     14      1.1  mrg #
     15      1.1  mrg # This file is free software; you can redistribute it and/or modify
     16      1.1  mrg # it under the terms of the GNU General Public License as published by
     17      1.1  mrg # the Free Software Foundation; either version 3 of the License, or
     18      1.1  mrg # (at your option) any later version.
     19      1.1  mrg #
     20      1.1  mrg # This program is distributed in the hope that it will be useful,
     21      1.1  mrg # but WITHOUT ANY WARRANTY; without even the implied warranty of
     22      1.1  mrg # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     23      1.1  mrg # GNU General Public License for more details.
     24      1.1  mrg #
     25      1.1  mrg # For a copy of the GNU General Public License, write the the
     26      1.1  mrg # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
     27      1.1  mrg # Boston, MA 02111-1301, USA.
     28      1.1  mrg 
     29      1.1  mrg LOW=$1
     30      1.1  mrg HIGH=$2
     31      1.1  mrg 
     32      1.1  mrg MIDLIST=""
     33      1.1  mrg 
     34      1.1  mrg let MID01=LOW+LOW+LOW+LOW+LOW+LOW+LOW+LOW+LOW+LOW+LOW+HIGH
     35      1.1  mrg let MID01=MID01/12
     36      1.1  mrg let MID02=LOW+LOW+LOW+LOW+LOW+LOW+LOW+LOW+LOW+LOW+HIGH+HIGH
     37      1.1  mrg let MID02=MID02/12
     38      1.1  mrg let MID03=LOW+LOW+LOW+LOW+LOW+LOW+LOW+LOW+LOW+HIGH+HIGH+HIGH
     39      1.1  mrg let MID03=MID03/12
     40      1.1  mrg let MID04=LOW+LOW+LOW+LOW+LOW+LOW+LOW+LOW+HIGH+HIGH+HIGH+HIGH
     41      1.1  mrg let MID04=MID04/12
     42      1.1  mrg let MID05=LOW+LOW+LOW+LOW+LOW+LOW+LOW+HIGH+HIGH+HIGH+HIGH+HIGH
     43      1.1  mrg let MID05=MID05/12
     44      1.1  mrg let MID06=LOW+LOW+LOW+LOW+LOW+LOW+HIGH+HIGH+HIGH+HIGH+HIGH+HIGH
     45      1.1  mrg let MID06=MID06/12
     46      1.1  mrg let MID07=LOW+LOW+LOW+LOW+LOW+HIGH+HIGH+HIGH+HIGH+HIGH+HIGH+HIGH
     47      1.1  mrg let MID07=MID07/12
     48      1.1  mrg let MID08=LOW+LOW+LOW+LOW+HIGH+HIGH+HIGH+HIGH+HIGH+HIGH+HIGH+HIGH
     49      1.1  mrg let MID08=MID08/12
     50      1.1  mrg let MID09=LOW+LOW+LOW+HIGH+HIGH+HIGH+HIGH+HIGH+HIGH+HIGH+HIGH+HIGH
     51      1.1  mrg let MID09=MID09/12
     52      1.1  mrg let MID10=LOW+LOW+HIGH+HIGH+HIGH+HIGH+HIGH+HIGH+HIGH+HIGH+HIGH+HIGH
     53      1.1  mrg let MID10=MID10/12
     54      1.1  mrg let MID11=LOW+HIGH+HIGH+HIGH+HIGH+HIGH+HIGH+HIGH+HIGH+HIGH+HIGH+HIGH
     55      1.1  mrg let MID11=MID11/12
     56      1.1  mrg 
     57      1.1  mrg # Look in this order; MID has already been done:
     58      1.1  mrg #
     59      1.1  mrg #  LOW--10---7---6---3---2---MID---1---4---5---8---9---HIGH
     60      1.1  mrg 
     61      1.1  mrg MIDLIST="${MIDLIST} ${MID07}"
     62      1.1  mrg MIDLIST="${MIDLIST} ${MID05}"
     63      1.1  mrg MIDLIST="${MIDLIST} ${MID04}"
     64      1.1  mrg MIDLIST="${MIDLIST} ${MID08}"
     65      1.1  mrg MIDLIST="${MIDLIST} ${MID09}"
     66      1.1  mrg MIDLIST="${MIDLIST} ${MID03}"
     67      1.1  mrg MIDLIST="${MIDLIST} ${MID02}"
     68      1.1  mrg MIDLIST="${MIDLIST} ${MID10}"
     69      1.1  mrg MIDLIST="${MIDLIST} ${MID11}"
     70      1.1  mrg MIDLIST="${MIDLIST} ${MID01}"
     71      1.1  mrg 
     72      1.1  mrg for MID in ${MIDLIST}
     73      1.1  mrg do
     74      1.1  mrg   # Skip this if it's the low endpoint.
     75      1.1  mrg   if [ ${MID} != ${LOW} ]; then
     76      1.1  mrg     # Is this patch already known to fail?
     77      1.1  mrg     ${REG_CHECKFAIL} ${MID}
     78      1.1  mrg     if [ $? -ne 0 ]; then
     79      1.1  mrg       echo ${MID}
     80      1.1  mrg       exit 0
     81      1.1  mrg     fi
     82      1.1  mrg   fi
     83      1.1  mrg done
     84      1.1  mrg 
     85      1.1  mrg echo 0
     86      1.1  mrg exit 1
     87