aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Yastrebov <yastrebov.alex@gmail.com>2024-01-10 17:01:33 +0100
committerGunnar Morling <gunnar.morling@googlemail.com>2024-01-10 17:53:13 +0100
commitaf269e39fc59e7f09481978f42045c207efc3c31 (patch)
tree79f21411b60858180dd30b30ecab75baf6c0031c
parent4df425fb9b2e4726c02057d79e2eb5511b7ae6fc (diff)
Update test*.sh to support input file pattern
This is useful for testing fork(s) against subset of test samples
-rwxr-xr-xtest.sh27
-rwxr-xr-xtest_all.sh24
2 files changed, 40 insertions, 11 deletions
diff --git a/test.sh b/test.sh
index 1eb25b1..c45ca75 100755
--- a/test.sh
+++ b/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
diff --git a/test_all.sh b/test_all.sh
index e1141d7..eff975d 100755
--- a/test_all.sh
+++ b/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