File indexing completed on 2024-04-21 15:24:19

0001 #/bin/bash
0002 
0003 if [[ "$(which php-parser)" == "" ]]; then
0004   echo "ERROR: cannot find php-parser in your PATH!"
0005   exit 1
0006 fi
0007 
0008 if [ ! -d "$1" ]; then
0009   echo "USAGE: $0 /path/to/php-tests"
0010   exit 2
0011 fi
0012 
0013 passed=""
0014 failed=""
0015 
0016 path=$1
0017 shift 1
0018 
0019 if [ ! -d /tmp/php-parser-tests ]; then
0020   mkdir /tmp/php-parser-tests
0021 fi
0022 
0023 for f in $(find "$path" -type f -name "*.phpt"); do
0024   base=$(basename $f)
0025   perl -ne '(/^--FILE--$/../^--EXPECT(F)?--$/) && print' "$f" | egrep -v '^--(FILE|EXPECT(F)?)--$' > /tmp/$base
0026   fail=$(egrep '^Parse error: ' $f)
0027   if php-parser /tmp/$base &>/tmp/$base.log; then
0028     if [[ "$fail" == "" ]]; then
0029       echo "passed $base"
0030       passed=$(echo -e "$passed\n$base")
0031     else
0032       echo
0033       echo "failed $base"
0034       cat /tmp/$base.log
0035       echo
0036       failed=$(echo -e "$failed\n$base")
0037     fi
0038   else
0039     if [[ "$fail" == "" ]]; then
0040       echo
0041       echo "failed $base"
0042       cat /tmp/$base.log
0043       echo
0044       failed=$(echo -e "$failed\n$base")
0045     else
0046       echo "passed $base"
0047       passed=$(echo -e "$passed\n$base")
0048     fi
0049   fi
0050 done
0051 
0052 echo
0053 echo "PASSED:"
0054 echo
0055 
0056 echo "$passed"
0057 echo
0058 echo "FAILED:"
0059 echo
0060 echo "$failed"