Enable manual checking of test results
diff --git a/tests/all.sh b/tests/all.sh
index a159e03..e03b1fc 100755
--- a/tests/all.sh
+++ b/tests/all.sh
@@ -1,4 +1,4 @@
-#! /bin/sh
+#! /bin/bash
script="$0"
@@ -10,24 +10,41 @@
bc="$1"
fi
-set -e
-
bcdir=$(dirname "${bc}")
out1="$bcdir/log_bc.txt"
out2="$bcdir/log_test.txt"
-while read t; do
+while read -u 10 t; do
echo "$t"
"$testdir/test.sh" "$t" "$bc" "$out1" "$out2"
-done < "$testdir/all.txt"
+ ret="$?"
+
+ if [ "$ret" -ne 0 ]; then
+
+ command -v meld >/dev/null 2>&1
+
+ ret2="$?"
+
+ if [ "$ret2" -eq 0 ]; then
+ meld "$out1" "$out2"
+ fi
+
+ read -p "Continue? " reply
+ if [[ $reply =~ ^[Yy]$ ]]; then
+ continue
+ else
+ exit "$ret"
+ fi
+
+ fi
+
+done 10< "$testdir/all.txt"
"$testdir/scripts.sh" "$bc" "$out1" "$out2"
-set +e
-
# TODO: Read tests
# TODO: Lex errors
# TODO: Parse errors
diff --git a/tests/scripts.sh b/tests/scripts.sh
index 8a295df..d7b6942 100755
--- a/tests/scripts.sh
+++ b/tests/scripts.sh
@@ -1,4 +1,4 @@
-#! /bin/sh
+#! /bin/bash
script="$0"
@@ -9,8 +9,6 @@
exit 1
fi
-set -e
-
bc="$1"
shift
@@ -32,9 +30,28 @@
diff "$out1" "$out2"
-done
+ ret="$?"
-set +e
+ if [ "$ret" -ne 0 ]; then
+
+ command -v meld >/dev/null 2>&1
+
+ ret2="$?"
+
+ if [ "$ret2" -eq 0 ]; then
+ meld "$out1" "$out2"
+ fi
+
+ read -p "Continue? " reply
+ if [[ $reply =~ ^[Yy]$ ]]; then
+ continue
+ else
+ exit "$ret"
+ fi
+
+ fi
+
+done
# TODO: Read tests
# TODO: Lex errors
diff --git a/tests/test.sh b/tests/test.sh
index a830a6f..c051096 100755
--- a/tests/test.sh
+++ b/tests/test.sh
@@ -59,5 +59,5 @@
echo "halt" | "$bc" -lq "$name" > "$out2"
fi
- diff "$out1" "$out2"
+diff "$out1" "$out2"