2020-04-12 18:37:54 +00:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
#
|
|
|
|
# Runs the full suite of tests against LinkedIn DustJS and duster to compare the result
|
2020-04-12 18:44:53 +00:00
|
|
|
set -euo pipefail
|
2020-04-12 18:37:54 +00:00
|
|
|
IFS=$'\n\t'
|
|
|
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
|
|
|
|
|
|
failed_count=0
|
2020-04-12 19:24:38 +00:00
|
|
|
show_diff=0
|
|
|
|
|
|
|
|
while (( "$#" )); do
|
|
|
|
if [ "$1" = "--help" ]; then
|
|
|
|
cat<<EOF
|
|
|
|
Runs the full compliance test suite.
|
|
|
|
|
|
|
|
Options:
|
|
|
|
--show-diff Shows the difference between the two dust implementations
|
|
|
|
EOF
|
|
|
|
exit 0
|
|
|
|
elif [ "$1" = "--show-diff" ]; then
|
|
|
|
show_diff=1
|
|
|
|
else
|
|
|
|
(>&2 echo "Unrecognized option: $1")
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
shift
|
|
|
|
done
|
2020-04-12 18:37:54 +00:00
|
|
|
|
2020-04-12 18:44:53 +00:00
|
|
|
while read -r test_group; do
|
2020-05-17 20:32:16 +00:00
|
|
|
set +e
|
|
|
|
if [ $show_diff -eq 1 ]; then
|
|
|
|
"$DIR/run_single_test.bash" --show-diff "$test_group"
|
|
|
|
else
|
|
|
|
"$DIR/run_single_test.bash" --show-diff "$test_group"
|
|
|
|
fi
|
|
|
|
result=$?
|
|
|
|
if [ $result -ne 0 ]; then
|
|
|
|
failed_count=$((failed_count + result))
|
|
|
|
fi
|
|
|
|
set -e
|
2020-05-16 20:46:39 +00:00
|
|
|
done <<<"$(find "$DIR/test_cases" -maxdepth 1 -mindepth 1 -type d ! -name '_*' | sort)"
|
|
|
|
|
|
|
|
ignored_count=$(find "$DIR/test_cases" -maxdepth 1 -mindepth 1 -type d -name '_*' | wc -l)
|
|
|
|
|
|
|
|
echo ""
|
|
|
|
echo "$ignored_count ignored tests"
|
2020-04-12 18:37:54 +00:00
|
|
|
|
2020-04-12 18:44:53 +00:00
|
|
|
if [ $failed_count -ne 0 ]; then
|
|
|
|
echo "$failed_count failed tests"
|
|
|
|
exit 1
|
|
|
|
else
|
|
|
|
echo "All tests passed"
|
|
|
|
fi
|