42 lines
678 B
Bash
42 lines
678 B
Bash
#! /bin/bash
|
|
|
|
main() {
|
|
local ret=0
|
|
for f in ./*_test.sh; do
|
|
if ! one_main "$f"; then
|
|
echo failed $f >&2
|
|
ret=$((ret+1))
|
|
fi
|
|
done
|
|
if [ $ret != 0 ]; then
|
|
echo failed >&2
|
|
fi
|
|
return $ret
|
|
}
|
|
|
|
one_main() (
|
|
echo testing $f >&2
|
|
local f="$1"
|
|
local ret=0
|
|
for t in $(grep ^test_ "$f" | sed 's/(.*//'); do
|
|
echo testing $f:$t >&2
|
|
each
|
|
source "${f%_test.sh}.sh"
|
|
source "$f"
|
|
if ! eval "$t"; then
|
|
echo failed $f:$t >&2
|
|
ret=$((ret+1))
|
|
fi
|
|
done
|
|
return $ret
|
|
)
|
|
|
|
each() {
|
|
export CACHE=$(mktemp -d)
|
|
source ./cache.sh
|
|
}
|
|
|
|
if [ "$0" == "$BASH_SOURCE" ]; then
|
|
main "$@"
|
|
fi
|