Update test*.sh to support input file pattern
This is useful for testing fork(s) against subset of test samples
This commit is contained in:
parent
4df425fb9b
commit
af269e39fc
27
test.sh
27
test.sh
@ -17,22 +17,35 @@
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
echo "Usage: test.sh <fork name>"
|
||||
DEFAULT_INPUT="src/test/resources/samples/*.txt"
|
||||
FORK=${1:-""}
|
||||
INPUT=${2:-$DEFAULT_INPUT}
|
||||
|
||||
if [ "$#" -eq 0 ] || [ "$#" -gt 2 ] || [ "$FORK" = "-h" ]; then
|
||||
echo "Usage: ./test.sh <fork name> [input file pattern]"
|
||||
echo
|
||||
echo "For each test sample matching <input file pattern> (default '$DEFAULT_INPUT')"
|
||||
echo "runs <fork name> implementation and diffs the result with the expected output."
|
||||
echo "Note that optional <input file pattern> should be quoted if contains wild cards."
|
||||
echo
|
||||
echo "Examples:"
|
||||
echo "./test.sh baseline"
|
||||
echo "./test.sh baseline src/test/resources/samples/measurements-1.txt"
|
||||
echo "./test.sh baseline 'src/test/resources/samples/measurements-*.txt'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -f "./prepare_$1.sh" ]; then
|
||||
"./prepare_$1.sh"
|
||||
if [ -f "./prepare_$FORK.sh" ]; then
|
||||
"./prepare_$FORK.sh"
|
||||
fi
|
||||
|
||||
for sample in $(ls src/test/resources/samples/*.txt); do
|
||||
echo "Validating calculate_average_$1.sh -- $sample"
|
||||
for sample in $(ls $INPUT); do
|
||||
echo "Validating calculate_average_$FORK.sh -- $sample"
|
||||
|
||||
rm -f measurements.txt
|
||||
ln -s $sample measurements.txt
|
||||
|
||||
diff <("./calculate_average_$1.sh") ${sample%.txt}.out
|
||||
diff <("./calculate_average_$FORK.sh") ${sample%.txt}.out
|
||||
done
|
||||
|
||||
rm measurements.txt
|
||||
|
24
test_all.sh
24
test_all.sh
@ -17,14 +17,30 @@
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
INPUT=${1:-""}
|
||||
|
||||
if [ "$INPUT" = "-h" ] || [ "$#" -gt 1 ]; then
|
||||
echo "Usage: ./test_all.sh [input file pattern]"
|
||||
echo
|
||||
echo "For each available fork run ./test.sh <fork name> [input file pattern]."
|
||||
echo "Note that optional <input file pattern> should be quoted if contains wild cards."
|
||||
echo
|
||||
echo "Examples:"
|
||||
echo "./test_all.sh"
|
||||
echo "./test_all.sh 2>/dev/null"
|
||||
echo "./test_all.sh src/test/resources/samples/measurements-1.txt"
|
||||
echo "./test_all.sh 'src/test/resources/samples/measurements-*.txt'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for impl in $(ls calculate_average_*.sh | sort); do
|
||||
noext="${impl%%.sh}"
|
||||
name=${noext##calculate_average_}
|
||||
fork=${noext##calculate_average_}
|
||||
|
||||
if output=$(./test.sh "$name" 2>&1); then
|
||||
echo "PASS $name"
|
||||
if output=$(./test.sh "$fork" "$INPUT" 2>&1); then
|
||||
echo "PASS $fork"
|
||||
else
|
||||
echo "FAIL $name"
|
||||
echo "FAIL $fork"
|
||||
echo "$output" 1>&2
|
||||
fi
|
||||
done
|
||||
|
Loading…
Reference in New Issue
Block a user