| #!/bin/bash |
| |
| |
| |
| |
| |
| CURRENT_TEST= |
| CURRENT_OUTPUT= |
| STATUS_ONLY= |
| |
| for P; do |
| case "$P" in |
| -s|--status) STATUS_ONLY=yes; shift ;; |
| esac |
| done |
| |
| cat $@ | while read LINE; do |
| if [ "${LINE#S:}" != "$LINE" ]; then |
| CURRENT_TEST=`echo $LINE | cut -d: -f2` |
| CURRENT_OUTPUT="$LINE"$'\n' |
| elif [ "${LINE#R:}" != "$LINE" ]; then |
| |
| if [ "${LINE/#R:*:*}" != "$LINE" ]; then |
| |
| |
| CURRENT_TEST="${LINE#R:}" |
| CURRENT_TEST="${CURRENT_TEST/%:*}" |
| RESULT="${LINE/#*:}" |
| else |
| |
| |
| RESULT="${LINE/#R*:/}" |
| fi |
| if [ "$RESULT" != "PASS" ]; then |
| if [ -n "$STATUS_ONLY" ]; then |
| echo "$RESULT $CURRENT_TEST" |
| else |
| CURRENT_OUTPUT+="$LINE" |
| echo "$CURRENT_OUTPUT" |
| echo |
| fi |
| fi |
| CURRENT_OUTPUT= |
| else |
| CURRENT_OUTPUT+="$LINE"$'\n' |
| fi |
| done |