Year 2 compilers coureswork

test.sh 1.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #/bin/bash
  2. start=$(date +%s.%N)
  3. absdir=$(readlink -f $(dirname $0))
  4. ret_only=`$absdir/../mycc < $absdir/return_only.c | tail -n 1`
  5. var_maths=`$absdir/../mycc < $absdir/var_maths.c | tail -n 1`
  6. func_call=`$absdir/../mycc < $absdir/func_call.c | tail -n 1`
  7. cond_loop=`$absdir/../mycc < $absdir/cond_loop.c | tail -n 1`
  8. func_args=`$absdir/../mycc < $absdir/func_args.c | tail -n 1`
  9. ret_ans='3'
  10. var_ans='11'
  11. func_ans='8'
  12. args_ans='14'
  13. cond_ans='17'
  14. overall='0'
  15. pass="\033[32mPASSED\033[0m"
  16. fail="\033[31mFAILED\033[0m"
  17. if [ "$ret_only" -eq $ret_ans ]; then
  18. echo "return_only ... $pass"
  19. else
  20. echo -n "return_only ... $fail"
  21. echo " expected $ret_ans but got $ret_only"
  22. overall='1'
  23. fi
  24. if [ "$var_maths" -eq $var_ans ]; then
  25. echo "var_maths ..... $pass"
  26. else
  27. echo "var_maths ..... $fail"
  28. echo " expected $var_ans but got $var_maths"
  29. overall='1'
  30. fi
  31. if [ "$func_call" -eq $func_ans ]; then
  32. echo "func_call ..... $pass"
  33. else
  34. echo -n "func_call ..... $fail"
  35. echo " expected $func_ans but got $func_call"
  36. overall='1'
  37. fi
  38. if [ "$cond_loop" -eq $cond_ans ]; then
  39. echo "cond_loop ..... $pass"
  40. else
  41. echo -n "cond_loop ..... $fail"
  42. echo " expected $cond_ans but got $cond_loop"
  43. overall='1'
  44. fi
  45. if [ "$func_args" -eq $args_ans ]; then
  46. echo "func_args ..... $pass"
  47. else
  48. echo -n "func_args ..... $fail"
  49. echo " expected $args_ans but got $func_args"
  50. overall='1'
  51. fi
  52. end=$(date +%s.%N)
  53. runtime=$(python -c "print(${end} - ${start})")
  54. echo "\nCompleted 5 tests in $runtime""s"
  55. exit $overall