shellharden/moduletests/run

32 lines
525 B
Plaintext
Raw Normal View History

2018-05-26 21:59:26 +00:00
#!/usr/bin/env bash
set -e
if test $# -lt 1; then
echo "Usage: $0 target/debug/shellharden test/original/*"
exit 1
fi
exe="$1"
shift
pass=()
fail=()
for i in "$@"; do
printf '\n——— \e[1m%s\e[m ———\n' "$i"
expect="$(dirname "$(dirname "$i")")/expected/$(basename "$i")"
if diff -u "$expect" <("$exe" --transform "$i" 2>&1); then
pass+=("$i")
else
fail+=("$i")
fi
done
echo
echo Passes:
printf '\t\e[32m%s\e[m\n' "${pass[@]}"
echo
echo Fails:
printf '\t\e[31m%s\e[m\n' "${fail[@]}"
exit ${#fail[@]}