mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			99 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #! /bin/sh
 | |
| 
 | |
| # (C) 2010 Free Software Foundation
 | |
| # Written by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
 | |
| 
 | |
| # This script is Free Software, and it can be copied, distributed and
 | |
| # modified as defined in the GNU General Public License.  A copy of
 | |
| # its license can be downloaded from http://www.gnu.org/copyleft/gpl.html
 | |
| 
 | |
| PROGNAME=test_recheck
 | |
| 
 | |
| usage ()
 | |
| {
 | |
|   cat <<EOF
 | |
| Usage: $PROGNAME [-h] [-n] DIR|FILE.sum...
 | |
| 
 | |
| Rerun unsuccessful tests for testsuites below DIR or for FILE.sum.
 | |
| 
 | |
|   -h     display this help and exit
 | |
|   -n     dry run, only show what would be run
 | |
| EOF
 | |
|   exit $?
 | |
| }
 | |
| 
 | |
| error ()
 | |
| {
 | |
|   echo "$@" >&2
 | |
|   exit 1
 | |
| }
 | |
| 
 | |
| dry=
 | |
| for arg
 | |
| do
 | |
|   case $arg in
 | |
|     -h | \?) usage ;;
 | |
|     -n) dry=:; shift ;;
 | |
|     -*) error "unknown argument $arg" ;;
 | |
|     *)  break ;;
 | |
|   esac
 | |
| done
 | |
| test $# -gt 0 || usage
 | |
| 
 | |
| # Find a good awk.
 | |
| if test -z "$AWK" ; then
 | |
|   for AWK in gawk nawk awk
 | |
|   do
 | |
|     if type $AWK 2>&1 | grep 'not found' > /dev/null 2>&1 ; then
 | |
|       :
 | |
|     else
 | |
|       break
 | |
|     fi
 | |
|   done
 | |
| fi
 | |
| 
 | |
| : ${MAKE=make}
 | |
| : ${filesuffix=}
 | |
| cwd=`pwd`
 | |
| files=`find "$@" -name \*.sum$filesuffix -print | grep testsuite | sort`
 | |
| st=0
 | |
| 
 | |
| for file in $files; do
 | |
|   dir=`echo $file | sed 's,/[^/]*$,,'`
 | |
|   base=`echo $file | sed 's,.*/,,; s,\.sum$,,'`
 | |
|   flags=`$AWK '
 | |
| /^Running .*\.exp \.\.\./ {
 | |
|   if (expfile != "" && tests != "")
 | |
|     printf (" %s=\"%s\"", expfile, tests)
 | |
|   expfile = $2
 | |
|   sub (/^[^ ]*\//, "", expfile)
 | |
|   sep = ""
 | |
|   tests = ""
 | |
| }
 | |
| /^(FAIL|XPASS|UNRESOLVED|WARNING|ERROR): / {
 | |
|   if (test != $2 "" && $2 != "" ) {
 | |
|     test = $2
 | |
|     tests = tests sep test
 | |
|     sep = " "
 | |
|   }
 | |
| }
 | |
| END {
 | |
|   if (expfile != "" && tests != "")
 | |
|     printf (" %s=\"%s\"", expfile, tests)
 | |
| }' $file`
 | |
|   if test -n "$flags"; then
 | |
|     cd $dir
 | |
|     amflags=
 | |
|     if grep '^AM_RUNTESTFLAGS =' Makefile >/dev/null 2>&1; then
 | |
|       amflags=`echo 'print-runtestflags: ; @echo $(AM_RUNTESTFLAGS)' \
 | |
| 		 | ${MAKE} -s -f Makefile -f - print-runtestflags`
 | |
|     fi
 | |
|     echo "(cd $dir && runtest $amflags --tool $base $flags)"
 | |
|     if test -z "$dry"; then
 | |
|       eval runtest --tool $base $flags || st=$?
 | |
|     fi
 | |
|     cd "$cwd"
 | |
|   fi
 | |
| done
 | |
| exit $st
 |