ci: extend expect-output.sh
authorChristian Gmeiner <christian.gmeiner@gmail.com>
Thu, 21 May 2020 22:05:37 +0000 (00:05 +0200)
committerMarge Bot <eric+marge@anholt.net>
Fri, 5 Jun 2020 11:02:35 +0000 (11:02 +0000)
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 <christian.gmeiner@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5258>

.gitlab-ci/bare-metal/cros-servo.sh
.gitlab-ci/bare-metal/expect-output.sh
.gitlab-ci/bare-metal/fastboot.sh

index b67c1f2..6caff73 100755 (executable)
@@ -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'
index a7e62a1..db82ea0 100755 (executable)
@@ -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
index 572fd9d..2bf4ac2 100755 (executable)
@@ -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