| 1 | #!/data/data/com.termux/files/usr/bin/bash |
| 2 | |
| 3 | if [ $# != 1 ]; then |
| 4 | echo "Specify package to run tests for as only argument" |
| 5 | exit 1 |
| 6 | fi |
| 7 | |
| 8 | PACKAGE=$1 |
| 9 | TEST_DIR=packages/$PACKAGE/tests |
| 10 | |
| 11 | if [ ! -d $TEST_DIR ]; then |
| 12 | echo "ERROR: No tests folder for package $PACKAGE" |
| 13 | exit 1 |
| 14 | fi |
| 15 | |
| 16 | NUM_TESTS=0 |
| 17 | NUM_FAILURES=0 |
| 18 | |
| 19 | for TEST_SCRIPT in $TEST_DIR/*; do |
| 20 | test -t 1 && printf "\033[32m" |
| 21 | echo "Running test ${TEST_SCRIPT}..." |
| 22 | (( NUM_TESTS += 1 )) |
| 23 | test -t 1 && printf "\033[31m" |
| 24 | ( |
| 25 | assert_equals() { |
| 26 | FIRST=$1 |
| 27 | SECOND=$2 |
| 28 | if [ "$FIRST" != "$SECOND" ]; then |
| 29 | echo "assertion failed - expected '$FIRST', got '$SECOND'" |
| 30 | exit 1 |
| 31 | fi |
| 32 | } |
| 33 | set -e -u |
| 34 | . $TEST_SCRIPT |
| 35 | ) |
| 36 | if [ $? != 0 ]; then |
| 37 | (( NUM_FAILURES += 1 )) |
| 38 | fi |
| 39 | test -t 1 && printf "\033[0m" |
| 40 | done |
| 41 | |
| 42 | echo "$NUM_TESTS tests run - $NUM_FAILURES failure(s)" |