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