Download | Plain Text | No Line Numbers


  1. #!/bin/bash
  2.  
  3. binary="./mycpu"
  4. tmpfile="test/tmpfile"
  5. inputs=( $(ls test/* | grep _program | sort -n) )
  6.  
  7. for input in ${inputs[@]}
  8. do
  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 -Naur "$reffile" "$tmpfile"
  36. rm -rf "$tmpfile"
  37. exit 1
  38. else
  39. echo " SUCCESS"
  40. fi
  41. rm -rf "$tmpfile"
  42. done
  43.