From 2bdbb6290210106c8fe114c2a2d31931e07c2b87 Mon Sep 17 00:00:00 2001 From: Sean McBride Date: Wed, 31 Mar 2021 17:02:36 -0400 Subject: [PATCH] test: Improve test runner --- .../applications/ekf/by_iteration/run.sh | 1 + .../applications/ekf/one_iteration/run.sh | 1 + .../applications/imageclassification/run.sh | 1 + .../imageresize/by_resolution/run.sh | 1 + .../applications/imageresize/test/run.sh | 3 +- .../licenseplate/by_plate_count/run.sh | 1 + .../applications/ocr/by_dpi/run.sh | 1 + .../applications/ocr/by_font/install.sh | 4 +- .../applications/ocr/by_font/run.sh | 33 +++++----- .../applications/ocr/by_word/run.sh | 5 +- .../applications/ocr/fivebyeight/run.sh | 1 + .../applications/ocr/handwriting/run.sh | 1 + .../experiments/applications/ocr/hyde/run.sh | 1 + test.sh | 61 ++++++++++--------- 14 files changed, 64 insertions(+), 51 deletions(-) diff --git a/runtime/experiments/applications/ekf/by_iteration/run.sh b/runtime/experiments/applications/ekf/by_iteration/run.sh index 381de67..e129276 100755 --- a/runtime/experiments/applications/ekf/by_iteration/run.sh +++ b/runtime/experiments/applications/ekf/by_iteration/run.sh @@ -5,6 +5,7 @@ # Also disables pagination and stopping on SIGUSR1 experiment_directory=$(pwd) +echo "$experiment_directory" runtime_directory=$(cd ../../../.. && pwd) binary_directory=$(cd "$runtime_directory"/bin && pwd) log="$experiment_directory/log.csv" diff --git a/runtime/experiments/applications/ekf/one_iteration/run.sh b/runtime/experiments/applications/ekf/one_iteration/run.sh index ec4e3cc..3c9f57d 100755 --- a/runtime/experiments/applications/ekf/one_iteration/run.sh +++ b/runtime/experiments/applications/ekf/one_iteration/run.sh @@ -5,6 +5,7 @@ # Also disables pagination and stopping on SIGUSR1 experiment_directory=$(pwd) +echo "$experiment_directory" project_directory=$(cd ../../../.. && pwd) binary_directory=$(cd "$project_directory"/bin && pwd) did_pass=true diff --git a/runtime/experiments/applications/imageclassification/run.sh b/runtime/experiments/applications/imageclassification/run.sh index 96c8db1..32cb13b 100755 --- a/runtime/experiments/applications/imageclassification/run.sh +++ b/runtime/experiments/applications/imageclassification/run.sh @@ -5,6 +5,7 @@ # Also disables pagination and stopping on SIGUSR1 experiment_directory=$(pwd) +echo "$experiment_directory" project_directory=$(cd ../../.. && pwd) binary_directory=$(cd "$project_directory"/bin && pwd) diff --git a/runtime/experiments/applications/imageresize/by_resolution/run.sh b/runtime/experiments/applications/imageresize/by_resolution/run.sh index f55441f..3d44144 100755 --- a/runtime/experiments/applications/imageresize/by_resolution/run.sh +++ b/runtime/experiments/applications/imageresize/by_resolution/run.sh @@ -5,6 +5,7 @@ # Also disables pagination and stopping on SIGUSR1 experiment_directory=$(pwd) +echo "$experiment_directory" project_directory=$(cd ../../../.. && pwd) binary_directory=$(cd "$project_directory"/bin && pwd) log="$experiment_directory/log.csv" diff --git a/runtime/experiments/applications/imageresize/test/run.sh b/runtime/experiments/applications/imageresize/test/run.sh index a5466d1..1cd8d77 100755 --- a/runtime/experiments/applications/imageresize/test/run.sh +++ b/runtime/experiments/applications/imageresize/test/run.sh @@ -5,6 +5,7 @@ # Also disables pagination and stopping on SIGUSR1 experiment_directory=$(pwd) +echo "$experiment_directory" project_directory=$(cd ../../../.. && pwd) binary_directory=$(cd "$project_directory"/bin && pwd) @@ -26,7 +27,7 @@ total_count=10 for ((i = 0; i < total_count; i++)); do echo "$i" ext="$RANDOM" - curl -H 'Expect:' -H "Content-Type: image/jpg" --data-binary "@flower.jpg" --output "result_$ext.png" localhost:10000 2>/dev/null 1>/dev/null + curl -H 'Expect:' -H "Content-Type: image/jpg" --data-binary "@flower.jpg" --output "result_$ext.png" localhost:10000 2>/dev/null 1>/dev/null || exit 1 pixel_differences="$(compare -identify -metric AE "result_$ext.png" expected_result.png null: 2>&1 >/dev/null)" diff --git a/runtime/experiments/applications/licenseplate/by_plate_count/run.sh b/runtime/experiments/applications/licenseplate/by_plate_count/run.sh index a7105d4..06420c7 100755 --- a/runtime/experiments/applications/licenseplate/by_plate_count/run.sh +++ b/runtime/experiments/applications/licenseplate/by_plate_count/run.sh @@ -5,6 +5,7 @@ # Also disables pagination and stopping on SIGUSR1 experiment_directory=$(pwd) +echo "$experiment_directory" project_directory=$(cd ../../../.. && pwd) binary_directory=$(cd "$project_directory"/bin && pwd) log="$experiment_directory/log.csv" diff --git a/runtime/experiments/applications/ocr/by_dpi/run.sh b/runtime/experiments/applications/ocr/by_dpi/run.sh index 938a43b..6b5d8f5 100755 --- a/runtime/experiments/applications/ocr/by_dpi/run.sh +++ b/runtime/experiments/applications/ocr/by_dpi/run.sh @@ -5,6 +5,7 @@ # Also disables pagination and stopping on SIGUSR1 experiment_directory=$(pwd) +echo "$experiment_directory" project_directory=$(cd ../../../.. && pwd) binary_directory=$(cd "$project_directory"/bin && pwd) log="$experiment_directory/log.csv" diff --git a/runtime/experiments/applications/ocr/by_font/install.sh b/runtime/experiments/applications/ocr/by_font/install.sh index 43f930b..e2eff34 100755 --- a/runtime/experiments/applications/ocr/by_font/install.sh +++ b/runtime/experiments/applications/ocr/by_font/install.sh @@ -2,7 +2,7 @@ # Installs the deps needed for run.sh if [ "$(whoami)" == "root" ]; then - apt-get install netpbm pango1.0-tools wamerican + apt-get install netpbm pango1.0-tools wamerican fonts-roboto fonts-cascadia-code fonts-dejavu else - sudo apt-get install netpbm pango1.0-tools wamerican + sudo apt-get install netpbm pango1.0-tools wamerican fonts-roboto fonts-cascadia-code fonts-dejavu fi diff --git a/runtime/experiments/applications/ocr/by_font/run.sh b/runtime/experiments/applications/ocr/by_font/run.sh index cb526a9..a1bdf34 100755 --- a/runtime/experiments/applications/ocr/by_font/run.sh +++ b/runtime/experiments/applications/ocr/by_font/run.sh @@ -5,6 +5,7 @@ # Also disables pagination and stopping on SIGUSR1 experiment_directory=$(pwd) +echo "$experiment_directory" project_directory=$(cd ../../../.. && pwd) binary_directory=$(cd "$project_directory"/bin && pwd) log="$experiment_directory/log.csv" @@ -17,8 +18,8 @@ else fi word_count=100 -fonts=("mono" "URW Gothic" "Lobster Two") -total_count=100 +fonts=("DejaVu Sans Mono" "Roboto" "Cascadia Code") +total_count=10 for ((i = 1; i <= total_count; i++)); do echo "Test $i" @@ -27,25 +28,25 @@ for ((i = 1; i <= total_count; i++)); do for font in "${fonts[@]}"; do # For whatever reason, templating in multiple word strips was a pain, so brute forcing case "$font" in - "mono") - echo "Mono" - pango-view --font="mono" -qo mono_words.png -t "$words" - pngtopnm mono_words.png >mono_words.pnm + "DejaVu Sans Mono") + echo "DejaVu Sans Mono" + pango-view --font="DejaVu Sans Mono" -qo mono_words.png -t "$words" || exit 1 + pngtopnm mono_words.png >mono_words.pnm || exit 1 result=$(curl -H 'Expect:' -H "Content-Type: text/plain" --data-binary @mono_words.pnm localhost:10000 2>/dev/null) diff -ywBZE --suppress-common-lines <(echo "$words") <(echo "$result") ;; - "URW Gothic") - echo "URW Gothic" - pango-view --font="URW Gothic" -qo URW_Gothic_words.png -t "$words" - pngtopnm URW_Gothic_words.png >URW_Gothic_words.pnm - result=$(curl -H 'Expect:' -H "Content-Type: text/plain" --data-binary @URW_Gothic_words.pnm localhost:10002 2>/dev/null) + "Roboto") + echo "Roboto" + pango-view --font="Roboto" -qo Roboto_words.png -t "$words" || exit 1 + pngtopnm Roboto_words.png >Roboto_words.pnm || exit 1 + result=$(curl -H 'Expect:' -H "Content-Type: text/plain" --data-binary @Roboto_words.pnm localhost:10002 2>/dev/null) diff -ywBZE --suppress-common-lines <(echo "$words") <(echo "$result") ;; - "Lobster Two") - echo "Lobster Two" - pango-view --font="Lobster Two" -qo Lobster_Two_words.png -t "$words" - pngtopnm Lobster_Two_words.png >Lobster_Two_words.pnm - result=$(curl -H 'Expect:' -H "Content-Type: text/plain" --data-binary @Lobster_Two_words.pnm localhost:10001 2>/dev/null) + "Cascadia Code") + echo "Cascadia Code" + pango-view --font="Cascadia Code" -qo Cascadia_Code_words.png -t "$words" || exit 1 + pngtopnm Cascadia_Code_words.png >Cascadia_Code_words.pnm || exit 1 + result=$(curl -H 'Expect:' -H "Content-Type: text/plain" --data-binary @Cascadia_Code_words.pnm localhost:10001 2>/dev/null) diff -ywBZE --suppress-common-lines <(echo "$words") <(echo "$result") ;; esac diff --git a/runtime/experiments/applications/ocr/by_word/run.sh b/runtime/experiments/applications/ocr/by_word/run.sh index f1f098a..7ca4e2f 100755 --- a/runtime/experiments/applications/ocr/by_word/run.sh +++ b/runtime/experiments/applications/ocr/by_word/run.sh @@ -5,6 +5,7 @@ # Also disables pagination and stopping on SIGUSR1 experiment_directory=$(pwd) +echo "$experiment_directory" project_directory=$(cd ../../../.. && pwd) binary_directory=$(cd "$project_directory"/bin && pwd) log="$experiment_directory/log.csv" @@ -31,8 +32,8 @@ for ((i = 0; i < total_count; i++)); do for word_count in "${word_counts[@]}"; do echo "${word_count}"_words.pnm words="$(shuf -n"$word_count" /usr/share/dict/american-english)" - pango-view --font=mono -qo "$word_count"_words.png -t "$words" - pngtopnm "$word_count"_words.png >"$word_count"_words.pnm + pango-view --font=mono -qo "$word_count"_words.png -t "$words" || exit 1 + pngtopnm "$word_count"_words.png >"$word_count"_words.pnm || exit 1 result=$(curl -H 'Expect:' -H "Content-Type: text/plain" --data-binary @"${word_count}"_words.pnm localhost:${word_count_to_port["$word_count"_words.pnm]} 2>/dev/null) diff --git a/runtime/experiments/applications/ocr/fivebyeight/run.sh b/runtime/experiments/applications/ocr/fivebyeight/run.sh index 662178f..94e4b2c 100755 --- a/runtime/experiments/applications/ocr/fivebyeight/run.sh +++ b/runtime/experiments/applications/ocr/fivebyeight/run.sh @@ -5,6 +5,7 @@ # Also disables pagination and stopping on SIGUSR1 experiment_directory=$(pwd) +echo "$experiment_directory" project_directory=$(cd ../../../.. && pwd) binary_directory=$(cd "$project_directory"/bin && pwd) diff --git a/runtime/experiments/applications/ocr/handwriting/run.sh b/runtime/experiments/applications/ocr/handwriting/run.sh index f98d6b7..2555e17 100755 --- a/runtime/experiments/applications/ocr/handwriting/run.sh +++ b/runtime/experiments/applications/ocr/handwriting/run.sh @@ -5,6 +5,7 @@ # Also disables pagination and stopping on SIGUSR1 experiment_directory=$(pwd) +echo "$experiment_directory" project_directory=$(cd ../../../.. && pwd) binary_directory=$(cd "$project_directory"/bin && pwd) diff --git a/runtime/experiments/applications/ocr/hyde/run.sh b/runtime/experiments/applications/ocr/hyde/run.sh index c3444cd..875af1a 100755 --- a/runtime/experiments/applications/ocr/hyde/run.sh +++ b/runtime/experiments/applications/ocr/hyde/run.sh @@ -5,6 +5,7 @@ # Also disables pagination and stopping on SIGUSR1 experiment_directory=$(pwd) +echo "$experiment_directory" project_directory=$(cd ../../../.. && pwd) binary_directory=$(cd "$project_directory"/bin && pwd) did_pass=true diff --git a/test.sh b/test.sh index 2ec3e34..437636b 100755 --- a/test.sh +++ b/test.sh @@ -1,53 +1,54 @@ #!/bin/bash # Test Driver Script +if [[ $0 != "./test.sh" ]]; then + echo "Must run in same directory as ./test.sh" + exit 1 +fi + +base_dir=$(pwd) + # Awsm -cd awsm && cargo build --release && cd .. +cd "$base_dir/awsm" && cargo build --release || exit 1 # Sledge -cd runtime && make clean all && cd .. +cd "$base_dir/runtime" && make clean all || exit 1 # OCR Build # FIXME: gocr incorectly reports up to date -cd runtime/tests && make -B clean gocr && cd ../.. +cd "$base_dir/runtime/tests" && make -B clean gocr || exit 1 # OCR Tests -cd runtime/experiments/applications/ocr/hyde && ./run.sh && cd ../../../../.. -cd runtime/experiments/applications/ocr/handwriting && ./run.sh && cd ../../../../.. -cd runtime/experiments/applications/ocr/fivebyeight && ./run.sh && cd ../../../../.. - -# FIXME: Install scripts will only work after on Ubuntu 20 LTS -# cd runtime/experiments/applications/ocr/by_word && ./install.sh && cd ../../../../.. -# cd runtime/experiments/applications/ocr/by_word && ./run.sh && cd ../../../../.. - -# cd runtime/experiments/applications/ocr/by_font && ./install.sh && cd ../../../../.. -# cd runtime/experiments/applications/ocr/by_font && ./run.sh && cd ../../../../.. - -# cd runtime/experiments/applications/ocr/by_dpi && ./install.sh && cd ../../../../.. -# cd runtime/experiments/applications/ocr/by_dpi && ./run.sh && cd ../../../../.. +cd "$base_dir/runtime/experiments/applications/ocr/hyde" && ./run.sh || exit 1 +cd "$base_dir/runtime/experiments/applications/ocr/handwriting" && ./run.sh || exit 1 +cd "$base_dir/runtime/experiments/applications/ocr/fivebyeight" && ./run.sh || exit 1 +cd "$base_dir/runtime/experiments/applications/ocr/by_word" && ./install.sh || exit 1 +cd "$base_dir/runtime/experiments/applications/ocr/by_word" && ./run.sh || exit 1 +cd "$base_dir/runtime/experiments/applications/ocr/by_font" && ./install.sh || exit 1 +cd "$base_dir/runtime/experiments/applications/ocr/by_font" && ./run.sh || exit 1 +cd "$base_dir/runtime/experiments/applications/ocr/by_dpi" && ./install.sh || exit 1 +cd "$base_dir/runtime/experiments/applications/ocr/by_dpi" && ./run.sh || exit 1 # EKF Build -cd runtime/tests && make -B clean tinyekf && cd ../.. +cd "$base_dir/runtime/tests" && make -B clean tinyekf || exit 1 # EKF Tests -cd runtime/experiments/applications/ekf/by_iteration && ./run.sh && cd ../../../../.. -cd runtime/experiments/applications/ekf/one_iteration && ./run.sh && cd ../../../../.. +cd "$base_dir/runtime/experiments/applications/ekf/by_iteration" && ./run.sh || exit 1 +cd "$base_dir/runtime/experiments/applications/ekf/one_iteration" && ./run.sh || exit 1 # cifar10 Build -cd runtime/tests && make -B clean cifar10 && cd ../.. +cd "$base_dir/runtime/tests" && make -B clean cifar10 || exit 1 # cifar10 Tests -cd runtime/experiments/applications/imageclassification && ./run.sh && cd ../../../.. +cd "$base_dir/runtime/experiments/applications/imageclassification" && ./run.sh || exit 1 # sod Build -cd runtime/tests && make -B clean sod && cd ../.. +cd "$base_dir/runtime/tests" && make -B clean sod || exit 1 # sod Tests -cd runtime/experiments/applications/imageresize/test && ./install.sh && cd ../../../../.. -cd runtime/experiments/applications/imageresize/test && ./run.sh && cd ../../../../.. -cd runtime/experiments/applications/imageresize/by_resolution && ./install.sh && cd ../../../../.. -cd runtime/experiments/applications/imageresize/by_resolution && ./run.sh && cd ../../../../.. -cd runtime/experiments/applications/licenseplace/1 && ./run.sh && cd ../../../../.. -cd runtime/experiments/applications/licenseplace/2 && ./run.sh && cd ../../../../.. -cd runtime/experiments/applications/licenseplace/4 && ./run.sh && cd ../../../../.. -cd runtime/experiments/applications/licenseplace && ./run.sh && cd ../../../.. +cd "$base_dir/runtime/experiments/applications/imageresize/test" && ./install.sh || exit 1 +cd "$base_dir/runtime/experiments/applications/imageresize/test" && ./run.sh || exit 1 +cd "$base_dir/runtime/experiments/applications/imageresize/by_resolution" && ./install.sh || exit 1 +cd "$base_dir/runtime/experiments/applications/imageresize/by_resolution" && ./run.sh || exit 1 +cd "$base_dir/runtime/experiments/applications/licenseplate/by_plate_count" && ./run.sh || exit 1 +cd "$base_dir/runtime/experiments/applications/licenseplate" && ./run.sh || exit 1