#!/bin/bash command=$1 ext=$2 total=0 failed=0 diffed=0 for dir in tests/extracted/*; do for file in $dir/*.$ext; do ((total++)) if [[ -f ${file%.*}.in ]]; then cat ${file%.*}.in | $command $file > $file.out result=$? else $command $file > $file.out result=$? fi if [[ $result -ne 0 ]]; then echo ERROR: $command $file failed. ((failed++)) else if [[ -f ${file%.*}.expect ]]; then echo ---- diff ${file%.*}.expect $file.out ---- diff ${file%.*}.expect $file.out if [[ $? -ne 0 ]]; then ((diffed++)) fi echo ------------------------------- fi fi done done echo "Ran $total tests: $failed failures, $diffed runs differed." if [[ $failed -gt 0 ]] || [[ $diffed -gt 0 ]]; then exit 1 fi exit 0