summaryrefslogtreecommitdiff
path: root/2016/test.sh
diff options
context:
space:
mode:
Diffstat (limited to '2016/test.sh')
-rwxr-xr-x2016/test.sh38
1 files changed, 38 insertions, 0 deletions
diff --git a/2016/test.sh b/2016/test.sh
new file mode 100755
index 0000000..78d4a5a
--- /dev/null
+++ b/2016/test.sh
@@ -0,0 +1,38 @@
+#!/usr/bin/env bash
+set -e
+set -o pipefail
+
+function prepare() {
+ fname="$1"
+ ext="${fname##*.}"
+ base="${fname:0:${#fname}-${#ext}-1}"
+ case "$ext" in
+ py)
+ echo "./$fname"
+ ;;
+ c|cpp)
+ make "$base" 2>&1 | grep -v 'is up to date' >&2
+ echo "./$base"
+ ;;
+ rip)
+ echo "rip $fname"
+ ;;
+ *)
+ echo >&2 "No handler for file '$fname'!"
+ exit 1
+ esac
+}
+
+
+for i in $(seq 1 25); do
+ for a in a b; do
+ exe=""
+ for fname in $i$a.{py,c,cpp,rip}; do
+ test -f $fname || continue
+ cmd="$(prepare "$fname")"
+ echo -n "$i$a: \"$cmd\" "
+ diff <($cmd <$i.in 2>/dev/null) $i$a.out
+ echo ok
+ done
+ done
+done