From: Christian Gmeiner Date: Thu, 21 May 2020 22:05:37 +0000 (+0200) Subject: ci: extend expect-output.sh X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=06d817199454214a942f32d56034aaae87faa50b;p=mesa.git ci: extend expect-output.sh We need to support different fastboot fetch strings for different bootloader solutions. Lets extend expect-output.sh to support multiple fetch strings (-f) and add support for error catch strings (-e) to stop the CI run early. Signed-off-by: Christian Gmeiner Reviewed-by: Eric Anholt Part-of: --- diff --git a/.gitlab-ci/bare-metal/cros-servo.sh b/.gitlab-ci/bare-metal/cros-servo.sh index b67c1f2ad65..6caff73bb93 100755 --- a/.gitlab-ci/bare-metal/cros-servo.sh +++ b/.gitlab-ci/bare-metal/cros-servo.sh @@ -72,11 +72,11 @@ $BM/write-serial.py $BM_SERIAL_EC reboot # 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' diff --git a/.gitlab-ci/bare-metal/expect-output.sh b/.gitlab-ci/bare-metal/expect-output.sh index a7e62a1ec8c..db82ea097e3 100755 --- a/.gitlab-ci/bare-metal/expect-output.sh +++ b/.gitlab-ci/bare-metal/expect-output.sh @@ -2,8 +2,29 @@ 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 diff --git a/.gitlab-ci/bare-metal/fastboot.sh b/.gitlab-ci/bare-metal/fastboot.sh index 572fd9dc9c4..2bf4ac2a5c1 100755 --- a/.gitlab-ci/bare-metal/fastboot.sh +++ b/.gitlab-ci/bare-metal/fastboot.sh @@ -78,11 +78,11 @@ done 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