mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
Use expect to invoke QEMU so that we can terminate the test as soon as we get the right string in the output instead of waiting until the final timeout. For timeout, instead of an hardcoding the value, use a Gitlab CI variable "QEMU_TIMEOUT" that can be changed depending on the latest status of the Gitlab CI runners. Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com> Reviewed-by: Michal Orzel <michal.orzel@amd.com>
93 lines
1.8 KiB
Bash
Executable File
93 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -ex
|
|
|
|
# DomU Busybox
|
|
cd binaries
|
|
mkdir -p initrd
|
|
mkdir -p initrd/bin
|
|
mkdir -p initrd/sbin
|
|
mkdir -p initrd/etc
|
|
mkdir -p initrd/dev
|
|
mkdir -p initrd/proc
|
|
mkdir -p initrd/sys
|
|
mkdir -p initrd/lib
|
|
mkdir -p initrd/var
|
|
mkdir -p initrd/mnt
|
|
cp /bin/busybox initrd/bin/busybox
|
|
initrd/bin/busybox --install initrd/bin
|
|
echo "#!/bin/sh
|
|
|
|
mount -t proc proc /proc
|
|
mount -t sysfs sysfs /sys
|
|
mount -t devtmpfs devtmpfs /dev
|
|
/bin/sh" > initrd/init
|
|
chmod +x initrd/init
|
|
# DomU rootfs
|
|
cd initrd
|
|
find . | cpio --create --format='newc' | gzip > ../initrd.cpio.gz
|
|
cd ..
|
|
|
|
# initrd.tar.gz is Dom0 rootfs
|
|
mkdir -p rootfs
|
|
cd rootfs
|
|
tar xvzf ../initrd.tar.gz
|
|
mkdir proc
|
|
mkdir run
|
|
mkdir srv
|
|
mkdir sys
|
|
rm var/run
|
|
cp -ar ../dist/install/* .
|
|
mv ../initrd.cpio.gz ./root
|
|
cp ../bzImage ./root
|
|
echo "name=\"test\"
|
|
memory=512
|
|
vcpus=1
|
|
kernel=\"/root/bzImage\"
|
|
ramdisk=\"/root/initrd.cpio.gz\"
|
|
extra=\"console=hvc0 root=/dev/ram0 rdinit=/bin/sh\"
|
|
" > root/test.cfg
|
|
echo "#!/bin/bash
|
|
|
|
set -x
|
|
|
|
export LD_LIBRARY_PATH=/usr/local/lib
|
|
bash /etc/init.d/xencommons start
|
|
|
|
xl list
|
|
|
|
xl create -c /root/test.cfg
|
|
|
|
" > etc/local.d/xen.start
|
|
chmod +x etc/local.d/xen.start
|
|
echo "rc_verbose=yes" >> etc/rc.conf
|
|
# rebuild Dom0 rootfs
|
|
find . |cpio -H newc -o|gzip > ../xen-rootfs.cpio.gz
|
|
cd ../..
|
|
|
|
cat >> binaries/pxelinux.0 << EOF
|
|
#!ipxe
|
|
|
|
kernel xen console=com1 console_timestamps=boot
|
|
module bzImage console=hvc0
|
|
module xen-rootfs.cpio.gz
|
|
boot
|
|
EOF
|
|
|
|
# Run the test
|
|
rm -f smoke.serial
|
|
set +e
|
|
export QEMU_CMD="qemu-system-x86_64 \
|
|
-cpu qemu64,+svm \
|
|
-m 2G -smp 2 \
|
|
-monitor none -serial stdio \
|
|
-nographic \
|
|
-device virtio-net-pci,netdev=n0 \
|
|
-netdev user,id=n0,tftp=binaries,bootfile=/pxelinux.0"
|
|
|
|
export QEMU_LOG="smoke.serial"
|
|
export LOG_MSG="Domain-0"
|
|
export PASSED="BusyBox"
|
|
|
|
./automation/scripts/qemu-key.exp
|