1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
#!/bin/bash
port=4567
start_server() {
mkdir -p log
bundle exec ruby test/server.rb > log/test.log 2>&1 &
}
run_tests() {
jshint src/*.js && phantomjs script/runner.js http://localhost:$port/
}
server_started() {
lsof -i :${1?} >/dev/null
}
timestamp() {
date +%s
}
wait_for_server() {
timeout=$(( `timestamp` + $1 ))
while true; do
if server_started "$2"; then
break
elif [ `timestamp` -gt "$timeout" ]; then
echo "timed out after $1 seconds" >&2
exit 1
fi
done
}
start_server
server_pid=$!
wait_for_server 5 $port
run_tests
result=$?
kill $server_pid
exit $result
|