summaryrefslogtreecommitdiffstats
path: root/ue3/mycpu/test/test.sh
diff options
context:
space:
mode:
Diffstat (limited to 'ue3/mycpu/test/test.sh')
-rwxr-xr-xue3/mycpu/test/test.sh40
1 files changed, 40 insertions, 0 deletions
diff --git a/ue3/mycpu/test/test.sh b/ue3/mycpu/test/test.sh
new file mode 100755
index 0000000..ad2ae4d
--- /dev/null
+++ b/ue3/mycpu/test/test.sh
@@ -0,0 +1,40 @@
1#!/bin/bash
2
3binary="./mycpu"
4tmpfile="test/tmpfile"
5inputs=( $(ls test/* | grep _program | sort -n) )
6
7for input in ${inputs[@]}
8do
9 echo "Testing $input ..."
10
11 programfile="$input"
12 args="-c $programfile"
13 memoryfile="${input/_program/_memory}"
14 reffile="${input/_program/_output}"
15 if [ -e "$memoryfile" ]
16 then
17 args+=" -m $memoryfile"
18 fi
19
20 if [ ! -e "$reffile" ]
21 then
22 echo " ERROR: reference file $reffile doesn't exist"
23 exit 1
24 fi
25
26 rm -rf "$tmpfile"
27 echo " Executing $binary $args ..."
28 $binary $args > $tmpfile
29
30 md5_1=$(md5sum < "$reffile")
31 md5_2=$(md5sum < "$tmpfile")
32 if [ "$md5_1" != "$md5_2" ]
33 then
34 echo " ERROR: output and $reffile differ"
35 diff -Nau $reffile $tmpfile
36 exit 1
37 else
38 echo " SUCCESS"
39 fi
40done