Year 2 compilers coureswork

new_test.sh 812B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/bin/bash
  2. uname=`uname`
  3. if [ "$uname" = "Darwin" ]; then
  4. date="gdate"
  5. readlink="greadlink"
  6. else
  7. date="date"
  8. readlink="readlink"
  9. fi
  10. start=$($date +%s.%N)
  11. absdir=$($readlink -f $(dirname $0))
  12. pass="\033[32mPASSED\033[0m"
  13. fail="\033[31mFAILED\033[0m"
  14. tests=0
  15. passes=0
  16. for i in $(ls $absdir | grep .\*.c | sort); do
  17. answer=`$absdir/../mycc < $absdir/$i | tail -n 1`
  18. exp_ans=`grep --color=none "##answer" $absdir/$i | sed 's/[^0-9]\+\([0-9]\+\).\+/\1/g'`
  19. echo -n "${i%.*} ... "
  20. if [ "$answer" -eq "$exp_ans" ]; then
  21. echo -e "$pass"
  22. passes=$((passes+1))
  23. else
  24. echo -e "$fail expected $exp_ans got $answer"
  25. fi
  26. tests=$((tests+1))
  27. done
  28. end=$($date +%s.%N)
  29. runtime=$(python -c "print(${end} - ${start})")
  30. echo -e "\n$passes/$tests passed in $runtime""s"
  31. exit $((tests-passes))