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
|
set -euo pipefail
|
||||||
|
|
||||||
if [ -z "$1" ]; then
|
DEFAULT_INPUT="src/test/resources/samples/*.txt"
|
||||||
echo "Usage: test.sh <fork name>"
|
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
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f "./prepare_$1.sh" ]; then
|
if [ -f "./prepare_$FORK.sh" ]; then
|
||||||
"./prepare_$1.sh"
|
"./prepare_$FORK.sh"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for sample in $(ls src/test/resources/samples/*.txt); do
|
for sample in $(ls $INPUT); do
|
||||||
echo "Validating calculate_average_$1.sh -- $sample"
|
echo "Validating calculate_average_$FORK.sh -- $sample"
|
||||||
|
|
||||||
rm -f measurements.txt
|
rm -f measurements.txt
|
||||||
ln -s $sample measurements.txt
|
ln -s $sample measurements.txt
|
||||||
|
|
||||||
diff <("./calculate_average_$1.sh") ${sample%.txt}.out
|
diff <("./calculate_average_$FORK.sh") ${sample%.txt}.out
|
||||||
done
|
done
|
||||||
|
|
||||||
rm measurements.txt
|
rm measurements.txt
|
||||||
|
24
test_all.sh
24
test_all.sh
@ -17,14 +17,30 @@
|
|||||||
|
|
||||||
set -euo pipefail
|
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
|
for impl in $(ls calculate_average_*.sh | sort); do
|
||||||
noext="${impl%%.sh}"
|
noext="${impl%%.sh}"
|
||||||
name=${noext##calculate_average_}
|
fork=${noext##calculate_average_}
|
||||||
|
|
||||||
if output=$(./test.sh "$name" 2>&1); then
|
if output=$(./test.sh "$fork" "$INPUT" 2>&1); then
|
||||||
echo "PASS $name"
|
echo "PASS $fork"
|
||||||
else
|
else
|
||||||
echo "FAIL $name"
|
echo "FAIL $fork"
|
||||||
echo "$output" 1>&2
|
echo "$output" 1>&2
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
Loading…
Reference in New Issue
Block a user