2023-09-29 15:17:45 +08:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
if [ -z "$1" ]; then
|
2024-08-05 19:04:25 +08:00
|
|
|
echo "No argument supplied"
|
|
|
|
exit 1
|
2023-09-29 15:17:45 +08:00
|
|
|
fi
|
|
|
|
|
2023-10-04 11:18:49 +08:00
|
|
|
declare -a nac3args
|
2024-08-05 19:04:25 +08:00
|
|
|
while [ $# -ge 2 ]; do
|
|
|
|
case "$1" in
|
|
|
|
--help)
|
|
|
|
echo "Usage: check_demo.sh [-i686] -- demo [NAC3ARGS...]"
|
|
|
|
exit
|
|
|
|
;;
|
|
|
|
-i686)
|
|
|
|
i686=1
|
|
|
|
;;
|
|
|
|
--)
|
|
|
|
shift
|
|
|
|
break
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
break
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
shift
|
|
|
|
done
|
|
|
|
|
|
|
|
demo="$1"
|
|
|
|
shift
|
2023-10-04 11:18:49 +08:00
|
|
|
while [ $# -gt 1 ]; do
|
|
|
|
nac3args+=("$1")
|
|
|
|
shift
|
|
|
|
done
|
2024-08-05 19:04:25 +08:00
|
|
|
|
2023-09-29 15:17:45 +08:00
|
|
|
|
2024-07-26 10:42:40 +08:00
|
|
|
echo "### Checking $demo..."
|
|
|
|
|
|
|
|
echo ">>>>>> Running $demo with the Python interpreter"
|
2023-09-29 15:17:45 +08:00
|
|
|
./interpret_demo.py "$demo" > interpreted.log
|
2023-09-29 16:43:48 +08:00
|
|
|
|
2024-08-05 19:04:25 +08:00
|
|
|
if [ -n "$i686" ]; then
|
|
|
|
echo "...... Trying NAC3's 32-bit code generator output"
|
|
|
|
./run_demo.sh -i686 --out run_32.log "${nac3args[@]}" "$demo"
|
|
|
|
diff -Nau interpreted.log run_32.log
|
|
|
|
fi
|
2024-07-26 10:42:40 +08:00
|
|
|
|
|
|
|
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 \
|
2024-08-05 19:04:25 +08:00
|
|
|
run_32.log run_64.log
|