automation: use expect utility in xilinx tests

Fixes: 95764a0817 (automation: update xilinx test scripts (tty))
This patch introduced a CI failure due to a timeout in xilinx-x86_64 test.

Change xilinx-x86_64 and xilinx-arm64 scripts to use "expect" utility
to determine test result and allow early exit from tests.
Add "expect" to xilinx container environment (dockerfile).
Rename references to "QEMU" in "qemu-key.exp" expect script to "TEST" to be
used by both QEMU and hardware tests.

Signed-off-by: Victor Lira <victorm.lira@amd.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
This commit is contained in:
Victor Lira authored and Stefano Stabellini committed 2024-08-29 18:43:47 -07:00
1 parent 740c41ca05
commit 5e99a40ea5
14 files changed
+54 -52

No files matched your search

@@ -20,6 +20,7 @@ RUN apt-get update && \
git \
gzip \
file \
expect \
&& \
apt-get autoremove -y && \
apt-get clean && \
+2
View File
@@ -84,6 +84,7 @@
variables:
CONTAINER: ubuntu:xenial-xilinx
LOGFILE: qemu-smoke-xilinx.log
TEST_TIMEOUT: 120
artifacts:
paths:
- smoke.serial
@@ -103,6 +104,7 @@
LOGFILE: xilinx-smoke-x86_64.log
XEN_CMD_CONSOLE: "console=com2 com2=115200,8n1,0x2F8,4"
TEST_BOARD: "crater"
TEST_TIMEOUT: 1000
artifacts:
paths:
- smoke.serial
@@ -1,16 +1,16 @@
#!/usr/bin/expect -f
if {[info exists env(QEMU_TIMEOUT)]} {
set timeout $env(QEMU_TIMEOUT)
if {[info exists env(TEST_TIMEOUT)]} {
set timeout $env(TEST_TIMEOUT)
} else {
set timeout 1500
}
log_file -a $env(QEMU_LOG)
log_file -a $env(TEST_LOG)
match_max 10000
eval spawn $env(QEMU_CMD)
eval spawn $env(TEST_CMD)
expect_after {
-re "(.*)\r" {
+3 -3
View File
@@ -76,7 +76,7 @@ EOF
# Run the test
rm -f smoke.serial
export QEMU_CMD="qemu-system-x86_64 \
export TEST_CMD="qemu-system-x86_64 \
-cpu qemu64,+svm \
-m 2G -smp 2 \
-monitor none -serial stdio \
@@ -84,8 +84,8 @@ export QEMU_CMD="qemu-system-x86_64 \
-device virtio-net-pci,netdev=n0 \
-netdev user,id=n0,tftp=binaries,bootfile=/pxelinux.0"
export QEMU_LOG="smoke.serial"
export TEST_LOG="smoke.serial"
export LOG_MSG="Domain-0"
export PASSED="BusyBox"
./automation/scripts/qemu-key.exp | sed 's/\r\+$//'
./automation/scripts/console.exp | sed 's/\r\+$//'
+3 -3
View File
@@ -77,7 +77,7 @@ git clone --depth 1 https://gitlab.com/xen-project/imagebuilder.git
bash imagebuilder/scripts/uboot-script-gen -t tftp -d . -c config
rm -f ${serial_log}
export QEMU_CMD="./qemu-system-arm \
export TEST_CMD="./qemu-system-arm \
-machine virt \
-machine virtualization=true \
-smp 4 \
@@ -91,8 +91,8 @@ export QEMU_CMD="./qemu-system-arm \
-bios /usr/lib/u-boot/qemu_arm/u-boot.bin"
export UBOOT_CMD="virtio scan; dhcp; tftpb 0x40000000 boot.scr; source 0x40000000"
export QEMU_LOG="${serial_log}"
export TEST_LOG="${serial_log}"
export LOG_MSG="Domain-0"
export PASSED="/ #"
../automation/scripts/qemu-key.exp | sed 's/\r\+$//'
../automation/scripts/console.exp | sed 's/\r\+$//'
+3 -3
View File
@@ -93,7 +93,7 @@ bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binaries/conf
# Run the test
rm -f smoke.serial
export QEMU_CMD="./binaries/qemu-system-aarch64 \
export TEST_CMD="./binaries/qemu-system-aarch64 \
-machine virtualization=true \
-cpu cortex-a57 -machine type=virt \
-m 2048 -monitor none -serial stdio \
@@ -104,8 +104,8 @@ export QEMU_CMD="./binaries/qemu-system-aarch64 \
-bios /usr/lib/u-boot/qemu_arm64/u-boot.bin"
export UBOOT_CMD="virtio scan; dhcp; tftpb 0x40000000 boot.scr; source 0x40000000"
export QEMU_LOG="smoke.serial"
export TEST_LOG="smoke.serial"
export LOG_MSG="Domain-0"
export PASSED="BusyBox"
./automation/scripts/qemu-key.exp | sed 's/\r\+$//'
./automation/scripts/console.exp | sed 's/\r\+$//'
@@ -130,7 +130,7 @@ bash imagebuilder/scripts/uboot-script-gen -t tftp -d . -c config
# Run the test
rm -f ${serial_log}
export QEMU_CMD="./qemu-system-arm \
export TEST_CMD="./qemu-system-arm \
-machine virt \
-machine virtualization=true \
-smp 4 \
@@ -144,8 +144,8 @@ export QEMU_CMD="./qemu-system-arm \
-bios /usr/lib/u-boot/qemu_arm/u-boot.bin"
export UBOOT_CMD="virtio scan; dhcp; tftpb 0x40000000 boot.scr; source 0x40000000"
export QEMU_LOG="${serial_log}"
export TEST_LOG="${serial_log}"
export LOG_MSG="${dom0_prompt}"
export PASSED="${passed}"
../automation/scripts/qemu-key.exp | sed 's/\r\+$//'
../automation/scripts/console.exp | sed 's/\r\+$//'
@@ -204,7 +204,7 @@ bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binaries/conf
# Run the test
rm -f smoke.serial
export QEMU_CMD="./binaries/qemu-system-aarch64 \
export TEST_CMD="./binaries/qemu-system-aarch64 \
-machine virtualization=true \
-cpu cortex-a57 -machine type=virt,gic-version=$gic_version \
-m 2048 -monitor none -serial stdio \
@@ -215,8 +215,8 @@ export QEMU_CMD="./binaries/qemu-system-aarch64 \
-bios /usr/lib/u-boot/qemu_arm64/u-boot.bin"
export UBOOT_CMD="virtio scan; dhcp; tftpb 0x40000000 boot.scr; source 0x40000000"
export QEMU_LOG="smoke.serial"
export TEST_LOG="smoke.serial"
export LOG_MSG="Welcome to Alpine Linux"
export PASSED="${passed}"
./automation/scripts/qemu-key.exp | sed 's/\r\+$//'
./automation/scripts/console.exp | sed 's/\r\+$//'
+3 -3
View File
@@ -10,7 +10,7 @@ machine=$1
# Run the test
rm -f ${serial_log}
export QEMU_CMD="qemu-system-ppc64 \
export TEST_CMD="qemu-system-ppc64 \
-bios skiboot.lid \
-M $machine \
-m 2g \
@@ -21,7 +21,7 @@ export QEMU_CMD="qemu-system-ppc64 \
-serial stdio \
-kernel binaries/xen"
export QEMU_LOG="${serial_log}"
export TEST_LOG="${serial_log}"
export PASSED="Hello, ppc64le!"
./automation/scripts/qemu-key.exp | sed 's/\r\+$//'
./automation/scripts/console.exp | sed 's/\r\+$//'
+3 -3
View File
@@ -5,14 +5,14 @@ set -ex -o pipefail
# Run the test
rm -f smoke.serial
export QEMU_CMD="qemu-system-riscv64 \
export TEST_CMD="qemu-system-riscv64 \
-M virt \
-smp 1 \
-nographic \
-m 2g \
-kernel binaries/xen"
export QEMU_LOG="smoke.serial"
export TEST_LOG="smoke.serial"
export PASSED="All set up"
./automation/scripts/qemu-key.exp | sed 's/\r\+$//'
./automation/scripts/console.exp | sed 's/\r\+$//'
+3 -3
View File
@@ -15,12 +15,12 @@ case $variant in
esac
rm -f smoke.serial
export QEMU_CMD="qemu-system-x86_64 -nographic -kernel binaries/xen \
export TEST_CMD="qemu-system-x86_64 -nographic -kernel binaries/xen \
-initrd xtf/tests/example/$k \
-append \"loglvl=all console=com1 noreboot console_timestamps=boot $extra\" \
-m 512 -monitor none -serial stdio"
export QEMU_LOG="smoke.serial"
export TEST_LOG="smoke.serial"
export PASSED="Test result: SUCCESS"
./automation/scripts/qemu-key.exp | sed 's/\r\+$//'
./automation/scripts/console.exp | sed 's/\r\+$//'
@@ -50,7 +50,7 @@ bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binaries/conf
# Run the test
rm -f smoke.serial
export QEMU_CMD="./binaries/qemu-system-aarch64 \
export TEST_CMD="./binaries/qemu-system-aarch64 \
-machine virtualization=true \
-cpu cortex-a57 -machine type=virt \
-m 2048 -monitor none -serial stdio \
@@ -61,7 +61,7 @@ export QEMU_CMD="./binaries/qemu-system-aarch64 \
-bios /usr/lib/u-boot/qemu_arm64/u-boot.bin"
export UBOOT_CMD="virtio scan; dhcp; tftpb 0x40000000 boot.scr; source 0x40000000"
export QEMU_LOG="smoke.serial"
export TEST_LOG="smoke.serial"
export PASSED="${passed}"
./automation/scripts/qemu-key.exp | sed 's/\r\+$//'
./automation/scripts/console.exp | sed 's/\r\+$//'
+10 -12
View File
@@ -1,8 +1,8 @@
#!/bin/sh
#!/usr/bin/env bash
# Run x86_64 dom0 tests on hardware.
set -ex
set -ex -o pipefail
fatal() {
echo "$(basename "$0") $*" >&2
@@ -27,7 +27,6 @@ memory = 512
vif = [ "bridge=xenbr0", ]
disk = [ ]
'
TIMEOUT_SECONDS=200
# Select test variant.
if [ "${TEST}" = "ping" ]; then
@@ -125,20 +124,19 @@ boot
# Power cycle board and collect serial port output.
SERIAL_DEV="/dev/serial/${TEST_BOARD}"
SERIAL_CMD="cat ${SERIAL_DEV} | tee smoke.serial | sed 's/\r//'"
sh /scratch/gitlab-runner/${TEST_BOARD}.sh 2
sleep 5
sh /scratch/gitlab-runner/${TEST_BOARD}.sh 1
sleep 5
set +e
stty -F ${SERIAL_DEV} 115200
timeout -k 1 ${TIMEOUT_SECONDS} nohup sh -c "${SERIAL_CMD}"
sh /scratch/gitlab-runner/${TEST_BOARD}.sh 2
set -e
# Capture test result and power off board before exiting.
export PASSED="${PASS_MSG}"
export TEST_CMD="cat ${SERIAL_DEV}"
export TEST_LOG="smoke.serial"
if grep -q "${PASS_MSG}" smoke.serial; then
exit 0
fi
fatal "Test failed"
./automation/scripts/console.exp | sed 's/\r\+$//'
TEST_RESULT=$?
sh "/scratch/gitlab-runner/${TEST_BOARD}.sh" 2
exit ${TEST_RESULT}
@@ -1,6 +1,6 @@
#!/bin/bash
set -ex
set -ex -o pipefail
test_variant=$1
@@ -137,13 +137,14 @@ cd $START
SERIAL_DEV="/dev/serial/zynq"
set +e
stty -F ${SERIAL_DEV} 115200
timeout -k 1 120 nohup sh -c "cat ${SERIAL_DEV} | tee smoke.serial | sed 's/\r//'"
# stop the board
cd /scratch/gitlab-runner
bash zcu102.sh 2
cd $START
# Capture test result and power off board before exiting.
export PASSED="${passed}"
export LOG_MSG="Welcome to Alpine Linux"
export TEST_CMD="cat ${SERIAL_DEV}"
export TEST_LOG="smoke.serial"
set -e
(grep -q "^Welcome to Alpine Linux" smoke.serial && grep -q "${passed}" smoke.serial) || exit 1
exit 0
./automation/scripts/console.exp | sed 's/\r\+$//'
TEST_RESULT=$?
sh "/scratch/gitlab-runner/zcu102.sh" 2
exit ${TEST_RESULT}
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.