Files
xen/automation/scripts/xilinx-smoke-dom0less-arm64.sh
T
Roger Pau Monne b576497e3b automation: remove CR characters from serial output
The gitlab CI webpage seems to have issues displaying the \CR\CR\LF "\r\r\n"
sequence on the web interface used as line returns by the Linux kernel serial
output.  This leads to the QEMU tests output looking like:

(XEN) Guest Loglevel: Nothing (Rate-limited: Errors and warnings)
(XEN) *** Serial input to DOM0 (type 'CTRL-a' three times to switch input)
(XEN) Freed 664kB init memory
mapping kernel into physical memory
about to get started...
qemu-system-x86_64: terminating on signal 15 from pid 52 (timeout)

This not helpful, so strip the CR characters from the output that goes to
stdout, leaving the output in the serial output file untouched.

All usages of `tee` are adjusted to strip CR from the output.

Fixes: 3030a73bf8 ('automation: add a QEMU based x86_64 Dom0/DomU test')
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
2023-11-22 13:37:17 +00:00

149 lines
3.0 KiB
Bash
Executable File

#!/bin/bash
set -ex
test_variant=$1
if [ -z "${test_variant}" ]; then
passed="ping test passed"
dom0_check="
brctl addbr xenbr0
brctl addif xenbr0 eth0
ifconfig eth0 up
ifconfig xenbr0 up
ifconfig xenbr0 192.168.0.1
xl network-attach 1 type=vif
"
domU_check="
until ifconfig eth0 192.168.0.2 &> /dev/null && ping -c 10 192.168.0.1; do
sleep 30
done
echo \"${passed}\"
"
fi
if [[ "${test_variant}" == "gem-passthrough" ]]; then
passed="${test_variant} test passed"
# For a passthroughed GEM:
# - bring up the network interface
# - dynamically assign IP
# - ping the default gateway
domU_check="
set -ex
ifconfig eth0 up
udhcpc -i eth0 -n
ping -c 10 \$(ip route | awk '/^default/ {print \$3}')
echo \"${passed}\"
"
fi
# DomU
mkdir -p rootfs
cd rootfs
tar xzf ../binaries/initrd.tar.gz
mkdir proc
mkdir run
mkdir srv
mkdir sys
rm var/run
echo "#!/bin/sh
${domU_check}
/bin/sh" > etc/local.d/xen.start
chmod +x etc/local.d/xen.start
echo "rc_verbose=yes" >> etc/rc.conf
find . | cpio -H newc -o | gzip > ../binaries/domU-rootfs.cpio.gz
cd ..
rm -rf rootfs
# DOM0 rootfs
mkdir -p rootfs
cd rootfs
tar xzf ../binaries/initrd.tar.gz
mkdir proc
mkdir run
mkdir srv
mkdir sys
rm var/run
cp -ar ../binaries/dist/install/* .
echo "#!/bin/bash
export LD_LIBRARY_PATH=/usr/local/lib
bash /etc/init.d/xencommons start
/usr/local/lib/xen/bin/init-dom0less
${dom0_check}
" > etc/local.d/xen.start
chmod +x etc/local.d/xen.start
echo "rc_verbose=yes" >> etc/rc.conf
find . | cpio -H newc -o | gzip > ../binaries/dom0-rootfs.cpio.gz
cd ..
TFTP=/scratch/gitlab-runner/tftp
START=`pwd`
# ImageBuilder
echo 'MEMORY_START="0"
MEMORY_END="0x7ff00000"
DEVICE_TREE="mpsoc_smmu.dtb"
XEN="xen"
DOM0_KERNEL="Image"
DOM0_RAMDISK="dom0-rootfs.cpio.gz"
XEN_CMD="console=dtuart dtuart=serial0 dom0_mem=1024M"
NUM_DOMUS=1
DOMU_KERNEL[0]="Image"
DOMU_RAMDISK[0]="domU-rootfs.cpio.gz"
DOMU_MEM[0]="1024"
LOAD_CMD="tftpb"
UBOOT_SOURCE="boot.source"
UBOOT_SCRIPT="boot.scr"' > $TFTP/config
cp -f binaries/xen $TFTP/
cp -f binaries/Image $TFTP/
cp -f binaries/dom0-rootfs.cpio.gz $TFTP/
cp -f binaries/domU-rootfs.cpio.gz $TFTP/
# export dtb to artifacts
cp $TFTP/mpsoc_smmu.dtb .
if [[ "${test_variant}" == "gem-passthrough" ]]; then
echo "
DOMU_PASSTHROUGH_DTB[0]=\"eth0.dtb\"
DOMU_PASSTHROUGH_PATHS[0]=\"/amba/ethernet@ff0e0000\"" >> $TFTP/config
# export passthrough dtb to artifacts
cp $TFTP/eth0.dtb .
fi
rm -rf imagebuilder
git clone https://gitlab.com/ViryaOS/imagebuilder
bash imagebuilder/scripts/uboot-script-gen -t tftp -d $TFTP/ -c $TFTP/config
# restart the board
cd /scratch/gitlab-runner
bash zcu102.sh 2
sleep 5
bash zcu102.sh 1
sleep 5
cd $START
# connect to serial
set +e
stty -F /dev/ttyUSB0 115200
timeout -k 1 120 nohup sh -c "cat /dev/ttyUSB0 | tee smoke.serial | sed 's/\r//'"
# stop the board
cd /scratch/gitlab-runner
bash zcu102.sh 2
cd $START
set -e
(grep -q "^Welcome to Alpine Linux" smoke.serial && grep -q "${passed}" smoke.serial) || exit 1
exit 0