# This is emitted right when the bootloader pauses to check for input. Emit a
# ^N character to request network boot, because we don't have a
# direct-to-netboot firmware on cheza.
-$BM/expect-output.sh serial-output.txt "load_archive: loading locale_en.bin"
+$BM/expect-output.sh serial-output.txt -f "load_archive: loading locale_en.bin"
$BM/write-serial.py $BM_SERIAL `printf '\016'`
# Wait for the device to complete the deqp run
-$BM/expect-output.sh serial-output.txt "DEQP RESULT"
+$BM/expect-output.sh serial-output.txt -f "DEQP RESULT"
# power down the CPU on the device
$BM/write-serial.py $BM_SERIAL_EC 'power off'
set -e
-echo "Waiting for $1 to say '$2'"
+STRINGS=$(mktemp)
+ERRORS=$(mktemp)
-while ! grep -q "$2" $1; do
+trap "rm $STRINGS; rm $ERRORS;" EXIT
+
+FILE=$1
+shift 1
+
+while getopts "f:e:" opt; do
+ case $opt in
+ f) echo "$OPTARG" >> $STRINGS;;
+ e) echo "$OPTARG" >> $STRINGS ; echo "$OPTARG" >> $ERRORS;;
+ esac
+done
+shift $((OPTIND -1))
+
+echo "Waiting for $FILE to say one of following strings"
+cat $STRINGS
+
+while ! egrep -wf $STRINGS $FILE; do
sleep 2
done
+
+if egrep -wf $ERRORS $FILE; then
+ exit 1
+fi
PATH=$BM:$PATH $BM_POWERUP
# Once fastboot is ready, boot our image.
-$BM/expect-output.sh artifacts/serial-output.txt "fastboot: processing commands"
+$BM/expect-output.sh artifacts/serial-output.txt -f "fastboot: processing commands"
fastboot boot -s $BM_FASTBOOT_SERIAL artifacts/fastboot.img
# Wait for the device to complete the deqp run
-$BM/expect-output.sh artifacts/serial-output.txt "DEQP RESULT"
+$BM/expect-output.sh artifacts/serial-output.txt -f "DEQP RESULT"
# power down the device
PATH=$BM:$PATH $BM_POWERDOWN