Merge pull request #937 from blueyed/travis-kill-stale-awesome

Travis: kill awesome after max. 60s per test file
This commit is contained in:
Daniel Hahler 2016-06-05 17:32:09 +02:00
commit 809111eb67
1 changed files with 12 additions and 3 deletions

View File

@ -103,7 +103,7 @@ wait_until_success() {
if [ "$CI" = true ]; then if [ "$CI" = true ]; then
set +x set +x
fi fi
max_wait=60 wait_count=60 # 60*0.05s => 3s.
while true; do while true; do
set +e set +e
eval reply="\$($2)" eval reply="\$($2)"
@ -112,8 +112,8 @@ wait_until_success() {
if [ $ret = 0 ]; then if [ $ret = 0 ]; then
break break
fi fi
max_wait=$(expr $max_wait - 1 || true) wait_count=$(expr $wait_count - 1 || true)
if [ "$max_wait" -lt 0 ]; then if [ "$wait_count" -lt 0 ]; then
echo "Error: failed to $1!" echo "Error: failed to $1!"
echo "Last reply: $reply." echo "Last reply: $reply."
if [ -f "$awesome_log" ]; then if [ -f "$awesome_log" ]; then
@ -189,6 +189,8 @@ start_awesome() {
# Count errors. # Count errors.
errors=0 errors=0
# Seconds after when awesome gets killed.
timeout_stale=60
for f in $tests; do for f in $tests; do
echo "== Running $f ==" echo "== Running $f =="
@ -204,6 +206,13 @@ for f in $tests; do
# Send the test file to awesome. # Send the test file to awesome.
cat $f | DISPLAY=$D "$AWESOME_CLIENT" 2>&1 cat $f | DISPLAY=$D "$AWESOME_CLIENT" 2>&1
# Kill awesome after 1 minute (e.g. with errors during test setup).
(sleep $timeout_stale
if [ "$(ps -o comm= $awesome_pid)" = "${AWESOME##*/}" ]; then
echo "Killing (stale?!) awesome (PID $awesome_pid) after $timeout_stale seconds."
kill $awesome_pid
fi) &
# Tail the log and quit, when awesome quits. # Tail the log and quit, when awesome quits.
tail -n 100000 -f --pid $awesome_pid $awesome_log tail -n 100000 -f --pid $awesome_pid $awesome_log