43 lines
1.1 KiB
Bash
43 lines
1.1 KiB
Bash
|
#!/data/data/com.termux/files/usr/bin/bash
|
||
|
|
||
|
if [ $# != 1 ]; then
|
||
|
echo "Specify package to run tests for as only argument"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
PACKAGE=$1
|
||
|
TEST_DIR=packages/$PACKAGE/tests
|
||
|
|
||
|
if [ ! -d $TEST_DIR ]; then
|
||
|
echo "ERROR: No tests folder for package $PACKAGE"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
NUM_TESTS=0
|
||
|
NUM_FAILURES=0
|
||
|
|
||
|
for TEST_SCRIPT in $TEST_DIR/*; do
|
||
|
test -t 1 && printf "\033[32m"
|
||
|
echo "Running test ${TEST_SCRIPT}..."
|
||
|
(( NUM_TESTS += 1 ))
|
||
|
test -t 1 && printf "\033[31m"
|
||
|
(
|
||
|
assert_equals() {
|
||
|
FIRST=$1
|
||
|
SECOND=$2
|
||
|
if [ "$FIRST" != "$SECOND" ]; then
|
||
|
echo "assertion failed - expected '$FIRST', got '$SECOND'"
|
||
|
exit 1
|
||
|
fi
|
||
|
}
|
||
|
set -e -u
|
||
|
. $TEST_SCRIPT
|
||
|
)
|
||
|
if [ $? != 0 ]; then
|
||
|
(( NUM_FAILURES += 1 ))
|
||
|
fi
|
||
|
test -t 1 && printf "\033[0m"
|
||
|
done
|
||
|
|
||
|
echo "$NUM_TESTS tests run - $NUM_FAILURES failure(s)"
|