#!/bin/bash

tests_dir=tests

for t in add addN allodd andL anD appenD concaT droP eveN evenpos evens eq fib \
    fibAdd flatten flatapp heaD incr insert oddpos lasT lastM lasts lengtH \
    lengths member mem multfst multlst negateAll odD mirror pepper\' pepper \
    powset powapp reversE shiftl shiftr snoc sort sortIns suM switch taiL takE \
    weave zeros rocket hanoi balloons playTennis enjoySport lenses ack
do
    bat="${tests_dir}/${t}.bat"
    out="${tests_dir}/${t}.out"
    cat <<TESTFILE > "$bat"
:l expl/Examples.hs
:s + simplify
:g ${t}
:q
TESTFILE
    echo "[$(date +"%F %X")] Wrote ${bat}."
    echo "[$(date +"%F %X")] Executing:" timeout 60 ./igor2 -b "${bat}" \> "$out"
    (   ulimit -v "$((1024*1024))"
        timeout 60 \
        sh ./igor2 -b "$bat" \
            | grep -v '^File loaded in [0-9.]\+s$\|^\s*CPU: [0-9.]\+s$' \
            > "$out" 2>&1 )
    if [ $? = 0 ]
    then
        echo "Wrote ${out}."
    else
        echo -n "RV=$?: "
        rm -v "$out"
    fi
done

