Advertisement
Guest User

done

a guest
Oct 21st, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. args=".args"
  4. out=".out"
  5. in=".in"
  6.  
  7.  
  8. if [ $# -eq 2 ]; then
  9. for stem in $(cat $1); do
  10. if [ ! -r "$stem$out" ] || [ ! -r "$stem$out" ];then
  11. echo "$stem$out does not exist" >&2
  12. exit 20
  13. fi
  14.  
  15. actual=$(mktemp)
  16. if [ -r "$stem$args" ] && [ -r "$stem$in" ];then
  17. eval $2 $(cat $stem$args) < $stem$in > "$actual"
  18. arguments=true
  19. inputs=true
  20. elif [ -r "$stem$args" ]; then
  21. eval $2 $(cat $stem$args) > "$actual"
  22. arguments=true
  23. inputs=false
  24. elif [ -r "$stem$in" ]; then
  25. eval $2 <$stem$in > "$actual"
  26. arguments=false
  27. inputs=true
  28. else
  29. eval $2 > "$actual"
  30. arguments=true
  31. inputs=false
  32. fi
  33.  
  34. DIFF=$(diff $stem$out $actual)
  35. if [ "$DIFF" != "" ]; then
  36. echo "Test failed:" "$stem"
  37. echo "Args:"
  38. if $arguments; then
  39. echo "$(cat "$stem$args")"
  40. fi
  41. echo "Input:"
  42. if $inputs; then
  43. echo "$(cat "$stem$in")"
  44. fi
  45. echo "Expected:"
  46. echo "$(cat $stem$out)"
  47. echo "Actual:"
  48. echo "$(cat $actual)"
  49. fi
  50.  
  51. rm "$actual"
  52. done
  53. else
  54. echo "Please enter 2 arguments" >&2
  55. exit 10
  56. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement