summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorScott Gasch <[email protected]>2021-09-09 16:42:13 -0700
committerScott Gasch <[email protected]>2021-09-09 16:42:13 -0700
commit6f132c0342ab7aa438ed88d7c5f987cb52d8ca05 (patch)
tree80cf90e7d8ae2ea9d6d191bb78650030fef8cb2e /tests
parent709370b2198e09f1dbe195fe8813602a3125b7f6 (diff)
Update tests / test harness.
Diffstat (limited to 'tests')
-rwxr-xr-xtests/parallelize_itest.py (renamed from tests/parallelize_test.py)0
-rwxr-xr-xtests/run_all_tests.sh13
-rwxr-xr-xtests/run_tests.sh116
3 files changed, 116 insertions, 13 deletions
diff --git a/tests/parallelize_test.py b/tests/parallelize_itest.py
index 9d98710..9d98710 100755
--- a/tests/parallelize_test.py
+++ b/tests/parallelize_itest.py
diff --git a/tests/run_all_tests.sh b/tests/run_all_tests.sh
deleted file mode 100755
index 25365bb..0000000
--- a/tests/run_all_tests.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/bash
-
-for doctest in $(grep -l doctest ../*.py); do
- echo "------------------------- ${doctest} -------------------------"
- python3 ${doctest}
-done
-
-for test in $(ls *_test.py); do
- if [ "${test}" != "parallelize_test.py" ]; then
- echo "------------------------- ${test} -------------------------"
- ${test}
- fi
-done
diff --git a/tests/run_tests.sh b/tests/run_tests.sh
new file mode 100755
index 0000000..6e0c30c
--- /dev/null
+++ b/tests/run_tests.sh
@@ -0,0 +1,116 @@
+#!/bin/bash
+
+source /home/scott/bin/color_vars.sh
+
+ROOT=/home/scott/lib/python_modules
+DOCTEST=0
+UNITTEST=0
+INTEGRATION=0
+FAILURES=0
+
+dup() {
+ if [ $# -ne 2 ]; then
+ echo "Usage: dup <string> <count>"
+ return
+ fi
+ local times=$(seq 1 $2)
+ for x in ${times}; do
+ echo -n "$1"
+ done
+}
+
+make_header() {
+ if [ $# -ne 2 ]; then
+ echo "Usage: make_header <required title> <color>"
+ return
+ fi
+ local title="$1"
+ local title_len=${#title}
+ title_len=$((title_len + 4))
+ local width=70
+ local left=4
+ local right=$(($width-($title_len+$left)))
+ local color="$2"
+ dup '-' $left
+ echo -ne "[ ${color}${title}${NC} ]"
+ dup '-' $right
+ echo
+}
+
+
+while [[ $# -gt 0 ]]; do
+ key="$1"
+ case $key in
+ -a|--all)
+ DOCTEST=1
+ UNITTEST=1
+ INTEGRATION=1
+ ;;
+ -d|--doctests)
+ DOCTEST=1
+ ;;
+ -u|--unittests)
+ UNITTEST=1
+ ;;
+ -i|--integration)
+ INTEGRATION=1
+ ;;
+ *) # unknown option
+ echo "Usage: $0 [-a]|[-i][-u][-d]"
+ echo
+ echo "Runs tests under ${ROOT}. Options control which test types:"
+ echo
+ echo " -a | --all . . . . . . . . . . . . Run all types of tests"
+ echo " -d | --doctests . . . . . . . . . Run doctests"
+ echo " -u | --unittests . . . . . . . . . Run unittests"
+ echo " -i | --integration . . . . . . . . Run integration tests"
+ echo
+ echo "Argument $key was not recognized."
+ exit 1
+ ;;
+ esac
+ shift
+done
+
+if [ ${DOCTEST} -eq 1 ]; then
+ for doctest in $(grep -lR doctest ${ROOT}/*.py); do
+ BASE=$(basename ${doctest})
+ BASE="${BASE} (doctest)"
+ make_header "${BASE}" "${CYAN}"
+ OUT=$( python3 ${doctest} 2>&1 )
+ if [ "$OUT" == "" ]; then
+ echo "OK"
+ else
+ echo -e "${OUT}"
+ FAILURES=$((FAILURES+1))
+ fi
+ done
+fi
+
+if [ ${UNITTEST} -eq 1 ]; then
+ for test in $(find ${ROOT} -name "*_test.py" -print); do
+ BASE=$(basename ${test})
+ BASE="${BASE} (unittest)"
+ make_header "${BASE}" "${GREEN}"
+ ${test}
+ if [ $? -ne 0 ]; then
+ FAILURES=$((FAILURES+1))
+ fi
+ done
+fi
+
+if [ ${INTEGRATION} -eq 1 ]; then
+ for test in $(find ${ROOT} -name "*_itest.py" -print); do
+ BASE=$(basename ${test})
+ BASE="${BASE} (integration test)"
+ make_header "${BASE}" "${ORANGE}"
+ ${test}
+ if [ $? -ne 0 ]; then
+ FAILURES=$((FAILURES+1))
+ fi
+ done
+fi
+
+if [ ${FAILURES} -ne 0 ]; then
+ echo -e "${RED}There were ${FAILURES} failure(s).${NC}"
+fi