32 lines
525 B
Bash
Executable File
32 lines
525 B
Bash
Executable File
#!/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[@]}
|