50 lines
1018 B
Bash
50 lines
1018 B
Bash
|
#!/bin/bash -e
|
||
|
|
||
|
function chrome_pids() {
|
||
|
ps axuwww|grep $D|grep c[h]rome|awk '{print $2}'
|
||
|
}
|
||
|
|
||
|
cd $(dirname $0)
|
||
|
export D=$(mktemp -d)
|
||
|
|
||
|
CHROME_LOG_FILE="${D}/chrome_debug.log"
|
||
|
touch $CHROME_LOG_FILE
|
||
|
|
||
|
XVFB="xvfb-run -a -e $CHROME_LOG_FILE -s '-screen 0 1024x768x24'"
|
||
|
if [ -n "$DISPLAY" ]; then
|
||
|
XVFB=""
|
||
|
fi
|
||
|
|
||
|
# "eval" below is required by $XVFB containing a quoted argument.
|
||
|
eval $XVFB chrome \
|
||
|
--enable-logging=stderr \
|
||
|
--no-first-run \
|
||
|
--disable-web-security \
|
||
|
--user-data-dir=$D \
|
||
|
--vmodule="*media/*=3,*turn*=3" \
|
||
|
"file://${PWD}/turn-prober.html" > $CHROME_LOG_FILE 2>&1 &
|
||
|
CHROME_PID=$!
|
||
|
|
||
|
while ! grep -q DONE $CHROME_LOG_FILE && chrome_pids|grep -q .; do
|
||
|
sleep 0.1
|
||
|
done
|
||
|
|
||
|
# Suppress bash's Killed message for the chrome above.
|
||
|
exec 3>&2
|
||
|
exec 2>/dev/null
|
||
|
while [ ! -z "$(chrome_pids)" ]; do
|
||
|
kill -9 $(chrome_pids)
|
||
|
done
|
||
|
exec 2>&3
|
||
|
exec 3>&-
|
||
|
|
||
|
DONE=$(grep DONE $CHROME_LOG_FILE)
|
||
|
EXIT_CODE=0
|
||
|
if ! grep -q "DONE: PASS" $CHROME_LOG_FILE; then
|
||
|
cat $CHROME_LOG_FILE
|
||
|
EXIT_CODE=1
|
||
|
fi
|
||
|
|
||
|
rm -rf $D
|
||
|
exit $EXIT_CODE
|