| #! /bin/sh -u |
| |
| # `driver_run` script is NOT intended to used for running the LLVM |
| # test-suite, nor is it invoked by any of the LLVM test-suite |
| # infrastructure. It is provided for convenience for the specific |
| # purpose of updating the reference_output files should the need to do |
| # so arise. |
| |
| # Fortran compiler name |
| FC='gfortran' |
| # option to produce executable name |
| EXECOPT='-o' |
| # run test 257 (that uses PAUSE) |
| EXE257=1 |
| # do not run tests that include deleted features in Fortran 95 |
| AVOID_DELETED_F95=0 |
| |
| # |
| # main loop |
| # |
| for file in `ls FM???.f` |
| do |
| process_it=1 |
| # |
| # If requested, do not run tests that contain features |
| # deleted in Fortran 95 |
| # |
| if [ x"${AVOID_DELETED_F95}" != x0 ]; then |
| if [ `grep -c '^[^C*].....[ ]*\bASSIGN\b' ${file}` -ne 0 ]; then |
| process_it=0 |
| elif [ `grep -c '^[^C*].....[ ]*\bPAUSE\b' ${file}` -ne 0 ]; then |
| process_it=0 |
| elif [ x"${file}" = x'FM719.f' ]; then |
| process_it=0 |
| fi |
| fi |
| |
| basename=`basename ${file} .f` |
| |
| # If requested, run the test |
| if [ ${process_it} -eq 0 ]; then |
| echo "Skip ${basename}" |
| else |
| result="${basename}".reference_output |
| data="${basename}".reference_input |
| |
| echo "Process ${basename}" |
| |
| eval "${FC}" "${file}" "${EXECOPT}" a.out |
| |
| # FM257 tests PAUSE |
| if [ x"${basename}" = xFM257 ]; then |
| if [ x"${EXE257}" = x0 ]; then |
| echo "Skip ${basename}" |
| else |
| { |
| cat <<__EOT__ |
| go |
| |
| |
| |
| __EOT__ |
| } < /dev/null | \ |
| ./a.out > "${result}" & |
| pn=`ps | grep a.out | grep -v grep | sed 's/ *\([0-9]*\).*/\1/'` |
| kill -15 "${pn}" |
| kill -15 "${pn}" |
| kill -15 "${pn}" |
| kill -15 "${pn}" |
| kill -15 "${pn}" |
| fi |
| elif [ -f "${data}" ]; then |
| ./a.out < "${data}" > "${result}" |
| else |
| ./a.out > "${result}" |
| fi |
| |
| # hard-coded to exit 0 |
| echo "exit 0" >> "${result}" |
| |
| rm -f a.out |
| fi |
| done |
| |
| rm -f fort.* |
| echo "Finished." |
| |
| # |
| # Possible error extraction |
| # |
| |
| #grep -n 'FAIL' *.res | grep -v '0 TESTS FAILED' | grep -v 'TEST[ ]*PASS/FAIL' |