aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_all.sh
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_all.sh')
-rwxr-xr-xtest/test_all.sh45
1 files changed, 45 insertions, 0 deletions
diff --git a/test/test_all.sh b/test/test_all.sh
new file mode 100755
index 0000000..67b5c8f
--- /dev/null
+++ b/test/test_all.sh
@@ -0,0 +1,45 @@
+mytmpdir=$(mktemp -d 2>/dev/null || mktemp -d -t 'mytmpdir')
+echo "--------------------------------------------------"
+echo "Created working directory: $mytmpdir"
+echo "--------------------------------------------------"
+
+if [[ -z $1 ]]; then
+ test_dir=.
+else
+ test_dir=$1
+fi
+
+test_command() {
+ local loc=$(command -v $1)
+ if [[ $? -eq 0 ]]; then
+ echo "Found $1: $loc"
+ else
+ echo "Could not find $1"
+ exit 1
+ fi
+}
+
+test_command iverilog
+test_command gcc
+
+echo "--------------------------------------------------"
+
+for cfile in $test_dir/*.c; do
+ echo "Testing $cfile"
+ outbase=$mytmpdir/$(basename $cfile)
+ gcc -o $outbase.gcc $cfile
+ $outbase.gcc
+ expected=$?
+ ./bin/coqup --hls -drtl -o $outbase.v $cfile
+ iverilog -o $outbase.iverilog $outbase.v
+ actual=$($outbase.iverilog | sed -E -e 's/[^0-9]+([0-9]+)/\1/')
+ if [[ $expected = $actual ]]; then
+ echo "OK"
+ else
+ echo "FAILED: $expected != $actual"
+ fi
+done
+
+echo "--------------------------------------------------"
+
+rm -rf $mytmpdir