Mesa (master): ci: extend expect-output.sh

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Jun 5 11:21:53 UTC 2020


Module: Mesa
Branch: master
Commit: 06d817199454214a942f32d56034aaae87faa50b
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=06d817199454214a942f32d56034aaae87faa50b

Author: Christian Gmeiner <christian.gmeiner at gmail.com>
Date:   Fri May 22 00:05:37 2020 +0200

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 <christian.gmeiner at gmail.com>
Reviewed-by: Eric Anholt <eric at anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5258>

---

 .gitlab-ci/bare-metal/cros-servo.sh    |  4 ++--
 .gitlab-ci/bare-metal/expect-output.sh | 25 +++++++++++++++++++++++--
 .gitlab-ci/bare-metal/fastboot.sh      |  4 ++--
 3 files changed, 27 insertions(+), 6 deletions(-)

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



More information about the mesa-commit mailing list