Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- args=".args"
- out=".out"
- in=".in"
- if [ $# -eq 2 ]; then
- for stem in $(cat $1); do
- if [ ! -r "$stem$out" ] || [ ! -r "$stem$out" ];then
- echo "$stem$out does not exist" >&2
- exit 20
- fi
- actual=$(mktemp)
- if [ -r "$stem$args" ] && [ -r "$stem$in" ];then
- eval $2 $(cat $stem$args) < $stem$in > "$actual"
- arguments=true
- inputs=true
- elif [ -r "$stem$args" ]; then
- eval $2 $(cat $stem$args) > "$actual"
- arguments=true
- inputs=false
- elif [ -r "$stem$in" ]; then
- eval $2 <$stem$in > "$actual"
- arguments=false
- inputs=true
- else
- eval $2 > "$actual"
- arguments=true
- inputs=false
- fi
- DIFF=$(diff $stem$out $actual)
- if [ "$DIFF" != "" ]; then
- echo "Test failed:" "$stem"
- echo "Args:"
- if $arguments; then
- echo "$(cat "$stem$args")"
- fi
- echo "Input:"
- if $inputs; then
- echo "$(cat "$stem$in")"
- fi
- echo "Expected:"
- echo "$(cat $stem$out)"
- echo "Actual:"
- echo "$(cat $actual)"
- fi
- rm "$actual"
- done
- else
- echo "Please enter 2 arguments" >&2
- exit 10
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement