38 lines
820 B
Bash
38 lines
820 B
Bash
|
#!/usr/bin/env bash
|
||
|
|
||
|
FIXTURE_DIR=$(readlink -f "$(dirname "$0")")
|
||
|
PROJECT_DIR="$FIXTURE_DIR/.."
|
||
|
GREEN='\033[0;32m'
|
||
|
RED='\033[0;31m'
|
||
|
NC='\033[0m'
|
||
|
|
||
|
run_fixture() {
|
||
|
cd "$FIXTURE_DIR/$1" || exit 1
|
||
|
source "test.sh"
|
||
|
NO_COLOR=1 CONFIG=config.toml "$PROJECT_DIR/target/debug/rustypaste" &
|
||
|
SERVER_PID=$!
|
||
|
trap 'kill -9 "$SERVER_PID" && wait "$SERVER_PID" 2> /dev/null' RETURN
|
||
|
sleep 1
|
||
|
setup
|
||
|
run_test
|
||
|
result=$?
|
||
|
teardown
|
||
|
return "$result"
|
||
|
}
|
||
|
|
||
|
main() {
|
||
|
find * -maxdepth 0 -type d -print0 | while IFS= read -r -d '' fixture; do
|
||
|
run_fixture "$fixture"
|
||
|
exit_status=$?
|
||
|
if [ "$exit_status" -eq 0 ]; then
|
||
|
echo -e "[${GREEN}ok${NC}] $fixture"
|
||
|
else
|
||
|
echo -e "[${RED}fail${NC}] $fixture"
|
||
|
exit "$exit_status"
|
||
|
fi
|
||
|
done
|
||
|
}
|
||
|
|
||
|
[ "$DEBUG" == 'true' ] && set -x && export RUST_LOG=debug
|
||
|
main
|