Home | History | Annotate | Line # | Download | only in contrib
test_installed revision 1.5.4.1
      1      1.1       mrg #! /bin/sh
      2      1.1       mrg 
      3      1.1       mrg # (C) 1998, 2000, 2002, 2003, 2007 Free Software Foundation
      4      1.1       mrg # Originally by Alexandre Oliva <oliva (at] dcc.unicamp.br>
      5      1.1       mrg 
      6      1.1       mrg # This script is Free Software, and it can be copied, distributed and
      7      1.1       mrg # modified as defined in the GNU General Public License.  A copy of
      8      1.1       mrg # its license can be downloaded from http://www.gnu.org/copyleft/gpl.html
      9      1.1       mrg 
     10      1.1       mrg # This scripts assumes it lives in the contrib directory of the GCC
     11      1.1       mrg # source tree, so it will find the testsuite tree from its location.
     12      1.1       mrg # If you move it elsewhere, or want to use another testsuite tree, you
     13      1.1       mrg # can override the defaults with --srcdir=/some/dir/GCC or
     14      1.1       mrg # --testsuite=/some/dir/GCC/gcc/testsuite.  If you specify
     15      1.1       mrg # --testsuite, --srcdir will be ignored; otherwise, `/gcc/testsuite'
     16      1.1       mrg # will be appended to the srcdir.
     17      1.1       mrg 
     18      1.1       mrg # You may specify where the binaries to be tested should be picked up
     19      1.1       mrg # from.  If you specify --prefix=/some/dir, gcc, g++ and gfortran will be
     20      1.1       mrg # looked for at /some/dir/bin.  Each one may be overridden by
     21      1.1       mrg # specifying --with-gcc=/pathname/to/gcc, --with-g++=/pathname/to/g++
     22      1.1       mrg # and --with-gfortran=/pathname/to/gfortran.  If you specify --without-gcc,
     23      1.1       mrg # --without-g++ or --without-gfortran, the test for the specified program
     24      1.1       mrg # will be skipped.  By default, gcc, g++ and gfortran will be searched in
     25      1.1       mrg # the PATH.
     26      1.1       mrg 
     27      1.1       mrg # An additional argument may specify --tmpdir=/some/dir; by default,
     28      1.1       mrg # temporaries will be stored in the current directory, where the log
     29      1.1       mrg # files will be stored.
     30      1.1       mrg 
     31      1.1       mrg # The script will interpret arguments until it finds one it does not
     32      1.1       mrg # understand.  The remaining ones will be passed to `runtest'.  A
     33      1.1       mrg # double-dash can be used to explicitly separate the arguments to
     34      1.1       mrg # `test_installed' from the ones to `runtest'.
     35      1.1       mrg 
     36      1.1       mrg # This script should be run in an empty directory; it will refuse to
     37      1.1       mrg # run if it finds a file named site.exp in the current directory.
     38      1.1       mrg 
     39      1.1       mrg 
     40      1.1       mrg if test -f site.exp; then
     41      1.1       mrg     echo site.exp already exists >&2
     42      1.1       mrg     exit 1
     43      1.1       mrg fi
     44      1.1       mrg 
     45      1.1       mrg while true; do
     46      1.1       mrg   case "$1" in
     47      1.1       mrg   --with-testsuite=*) testsuite=`echo "$1" | sed 's/[^=]*=//'`; shift;;
     48      1.1       mrg   --srcdir=*) srcdir=`echo "$1" | sed 's/[^=]*=//'`; shift;;
     49  1.5.4.1  christos   --target=*) target=`echo "$1" | sed 's/[^=]*=//'`; shift;;
     50      1.1       mrg   --prefix=*) prefix=`echo "$1" | sed 's/[^=]*=//'`; shift;;
     51      1.1       mrg   --with-gcc=*) GCC_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
     52      1.1       mrg   --with-g++=*) GXX_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
     53      1.1       mrg   --with-gfortran=*) GFORTRAN_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
     54      1.1       mrg   --without-gcc) GCC_UNDER_TEST=no; shift;;
     55      1.1       mrg   --without-g++) GXX_UNDER_TEST=no; shift;;
     56      1.1       mrg   --without-gfortran) GFORTRAN_UNDER_TEST=no; shift;;
     57      1.1       mrg   --without-objc) OBJC_UNDER_TEST=no; shift;;
     58      1.1       mrg 
     59      1.1       mrg   --tmpdir=*) tmpdir=`echo "$1" | sed 's/[^=]*=//'`; shift;;
     60      1.1       mrg 
     61      1.1       mrg   --help) cat <<\EOF
     62      1.1       mrg Runs the testsuite for an installed version of gcc/g++/gfortran/objc
     63      1.1       mrg Copyright (C) 1998  Free Software Foundation
     64      1.1       mrg by Alexandre Oliva <oliva@dcc.unicamp.br>
     65      1.1       mrg 
     66      1.1       mrg Supported arguments:
     67      1.1       mrg 
     68      1.1       mrg --help                        prints this page
     69      1.1       mrg 
     70      1.1       mrg --with-testsuite=/some/dir/gcc/testsuite   specify the testsuite directory
     71      1.1       mrg --srcdir=/some/dir            same as --with-testsuite=/some/dir/gcc/testsuite
     72      1.1       mrg                               [deduced from shell-script pathname]
     73      1.1       mrg 
     74  1.5.4.1  christos --target=triplet              The target architecture of the compiler being
     75  1.5.4.1  christos                               tested if different than the host.
     76  1.5.4.1  christos 
     77      1.1       mrg --prefix=/some/dir            use gcc, g++ and gfortran from /some/dir/bin [PATH]
     78      1.1       mrg --with-gcc=/some/dir/bin/gcc  use specified gcc program [gcc]
     79      1.1       mrg --with-g++=/some/dir/bin/g++  use specified g++ program [g++]
     80      1.1       mrg --with-gfortran=/some/dir/bin/gfortran  use specified gfortran program [gfortran]
     81      1.1       mrg --without-gcc                 do not run gcc testsuite
     82      1.1       mrg --without-g++                 do not run g++ testsuite
     83      1.1       mrg --without-gfortran            do not run gfortran testsuite
     84      1.1       mrg --without-objc                do not run objc testsuite
     85      1.1       mrg 
     86      1.1       mrg --tmpdir=/some/dir            create temporaries and leave failed programs
     87      1.1       mrg                               at specified directory [.]
     88      1.1       mrg 
     89      1.1       mrg --   end of argument list; following arguments are passed to runtest
     90      1.1       mrg EOF
     91      1.1       mrg     exit
     92      1.1       mrg   ;;
     93      1.1       mrg   
     94      1.1       mrg   --) shift; break;;
     95      1.1       mrg   *) break;;
     96      1.1       mrg   esac
     97      1.1       mrg done
     98      1.1       mrg   
     99      1.1       mrg if test x"${testsuite+set}" != x"set" && test x"${srcdir+set}" != x"set"; then
    100      1.1       mrg   file=$0
    101      1.1       mrg   while [ -h $file ]; do
    102      1.1       mrg     file=`ls -l $file | sed s/'.* -> '//`
    103      1.1       mrg   done
    104      1.1       mrg   srcdir=`CDPATH=. && cd \`echo "$file" | sed 's,/*[^/]*$,,;s,^$,.,'\`/.. >/dev/null && ${PWDCMD-pwd}`
    105      1.1       mrg fi
    106      1.1       mrg 
    107      1.1       mrg cat >site.exp <<EOF
    108      1.1       mrg set rootme "."
    109      1.1       mrg set tmpdir "${tmpdir-`${PWDCMD-pwd}`}"
    110      1.1       mrg set srcdir "${testsuite-${srcdir}/gcc/testsuite}"
    111      1.1       mrg set CFLAGS ""
    112      1.1       mrg set CXXFLAGS ""
    113      1.1       mrg set GCC_UNDER_TEST "${GCC_UNDER_TEST-${prefix}${prefix+/bin/}gcc}"
    114      1.1       mrg set GXX_UNDER_TEST "${GXX_UNDER_TEST-${prefix}${prefix+/bin/}g++}"
    115      1.1       mrg set GFORTRAN_UNDER_TEST "${GFORTRAN_UNDER_TEST-${prefix}${prefix+/bin/}gfortran}"
    116      1.1       mrg set OBJC_UNDER_TEST "${OBJC_UNDER_TEST-${prefix}${prefix+/bin/}gcc}"
    117      1.1       mrg EOF
    118  1.5.4.1  christos if test x${target} != x; then
    119  1.5.4.1  christos   echo "set target_triplet $target" >> site.exp
    120  1.5.4.1  christos   echo "set target_alias $target" >> site.exp
    121  1.5.4.1  christos fi
    122      1.1       mrg 
    123      1.1       mrg test x"${GCC_UNDER_TEST}" = x"no" || runtest --tool gcc ${1+"$@"}
    124      1.1       mrg test x"${GXX_UNDER_TEST}" = x"no" || runtest --tool g++ ${1+"$@"}
    125      1.1       mrg test x"${GFORTRAN_UNDER_TEST}" = x"no" || runtest --tool gfortran ${1+"$@"}
    126      1.1       mrg test x"${OBJC_UNDER_TEST}" = x"no" || runtest --tool objc ${1+"$@"}
    127      1.1       mrg 
    128      1.1       mrg exit 0
    129