#!/usr/bin/env bash

set -e

if [ -z "$1" ]; then
  echo "Requires at least one argument"
  exit 1
fi

declare -a nac3args
while [ $# -gt 1 ]; do
  nac3args+=("$1")
  shift
done
demo="$1"

echo "### Checking $demo..."

# Get reference output
echo ">>>>>> Running $demo with the Python interpreter"
./interpret_demo.py "$demo" > interpreted.log

echo "...... Trying NAC3's 32-bit code generator output"
./run_demo.sh -i386 --out run_32.log "${nac3args[@]}" "$demo"
diff -Nau interpreted.log run_32.log

echo "...... Trying NAC3's 64-bit code generator output"
./run_demo.sh --out run_64.log "${nac3args[@]}" "$demo"
diff -Nau interpreted.log run_64.log

echo "...... OK"

rm -f interpreted.log \
  run_32.log run_64.log