summaryrefslogtreecommitdiff
path: root/tools/test.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tools/test.sh')
-rwxr-xr-xtools/test.sh41
1 files changed, 41 insertions, 0 deletions
diff --git a/tools/test.sh b/tools/test.sh
new file mode 100755
index 0000000..2dcbf6a
--- /dev/null
+++ b/tools/test.sh
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+#
+# tests a binary
+# against a output and an exit code
+#
+
+dir="$(dirname "$0")"
+
+msim="$dir/../bin/msim/msim"
+bin="$dir/../test/msim/$1"
+
+out=$(cat "$dir/../test/out/$1")
+status=$(cat "$dir/../test/out/$1.status")
+
+temp=$(mktemp)
+
+$msim $bin &> $temp
+
+rstatus="$?"
+rout=$(cat $temp)
+rm $temp
+
+res=0
+
+if [ "$out" != "$rout" ]; then
+ res=1
+fi
+
+if [ "$status" != "$rstatus" ]; then
+ res=1
+fi
+
+if [ $res = 0 ]; then
+ printf "\033[32mPASSED\033[0m\n"
+else
+ printf "\033[31mFAILED\033[0m\n"
+ diff <(echo $out) <(echo $rout)
+fi
+
+exit $res