#!/bin/bash

batch_fn="$1"
expected_output_fn="$(dirname "$batch_fn")/$(basename "$batch_fn" .bat).out"

# memory limit per process.
# passed to bash's ulimit -v, so specified in kibi.
memlimit="$((1024*1024))"

log() {
    echo "[$(date +"%F %X")]" "$@"
}

if [ ! -r "$expected_output_fn" ]
then
    echo "Expected output file missing or unreadable: \`\`$expected_output_fn''" >&2
fi

(
    ulimit -v "$memlimit"
    sh ./igor2 -b "$batch_fn" 2>&1 \
        | grep -v '^File loaded in [0-9.]\+s$\|^\s*CPU: [0-9.]\+s$' \
        | diff "$expected_output_fn" -
)

if [ $? = 0 ]
then
    log Success: "$batch_fn"
    exit 0
else
    log Failure: "$batch_fn"
    exit 1
fi
