mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
automation: add a QEMU aarch64 smoke test
Use QEMU to start Xen (just the hypervisor) up until it stops because there is no dom0 kernel to boot. It is based on the existing build job unstable-arm64v8. Also use make -j$(nproc) to build Xen. Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com> Acked-by: Wei Liu <wl@xen.org>
This commit is contained in:
1 parent
641723f78d
commit
dbc1e724bb
3 files changed
+58
-3
No files matched your search
@@ -22,6 +22,28 @@ build-each-commit-gcc:
|
||||
- /^coverity-tested\/.*/
|
||||
- /^stable-.*/
|
||||
|
||||
qemu-smoke-arm64-gcc:
|
||||
stage: test
|
||||
image: registry.gitlab.com/xen-project/xen/${CONTAINER}
|
||||
variables:
|
||||
CONTAINER: debian:unstable-arm64v8
|
||||
script:
|
||||
- ./automation/scripts/qemu-smoke-arm64.sh 2>&1 | tee qemu-smoke-arm64.log
|
||||
dependencies:
|
||||
- debian-unstable-gcc-arm64
|
||||
artifacts:
|
||||
paths:
|
||||
- smoke.serial
|
||||
- '*.log'
|
||||
when: always
|
||||
tags:
|
||||
- arm64
|
||||
except:
|
||||
- master
|
||||
- smoke
|
||||
- /^coverity-tested\/.*/
|
||||
- /^stable-.*/
|
||||
|
||||
qemu-smoke-x86-64-gcc:
|
||||
stage: test
|
||||
image: registry.gitlab.com/xen-project/xen/${CONTAINER}
|
||||
|
||||
@@ -10,9 +10,9 @@ cc-ver()
|
||||
|
||||
# random config or default config
|
||||
if [[ "${RANDCONFIG}" == "y" ]]; then
|
||||
make -C xen KCONFIG_ALLCONFIG=tools/kconfig/allrandom.config randconfig
|
||||
make -j$(nproc) -C xen KCONFIG_ALLCONFIG=tools/kconfig/allrandom.config randconfig
|
||||
else
|
||||
make -C xen defconfig
|
||||
make -j$(nproc) -C xen defconfig
|
||||
fi
|
||||
|
||||
# build up our configure options
|
||||
@@ -45,7 +45,7 @@ make -j$(nproc) dist
|
||||
# Extract artifacts to avoid getting rewritten by customised builds
|
||||
cp xen/.config xen-config
|
||||
mkdir binaries
|
||||
if [[ "${XEN_TARGET_ARCH}" == "x86_64" ]]; then
|
||||
if [[ "${XEN_TARGET_ARCH}" != "x86_32" ]]; then
|
||||
cp xen/xen binaries/xen
|
||||
fi
|
||||
|
||||
|
||||
Executable
+33
@@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -ex
|
||||
|
||||
# Install QEMU
|
||||
export DEBIAN_FRONTENT=noninteractive
|
||||
apt-get -qy update
|
||||
apt-get -qy install --no-install-recommends qemu-system-aarch64 \
|
||||
u-boot-qemu
|
||||
|
||||
# XXX Silly workaround to get the following QEMU command to work
|
||||
# QEMU looks for "efi-virtio.rom" even if it is unneeded
|
||||
cp /usr/share/qemu/pvh.bin /usr/share/qemu/efi-virtio.rom
|
||||
qemu-system-aarch64 \
|
||||
-machine virtualization=true \
|
||||
-cpu cortex-a57 -machine type=virt \
|
||||
-m 512 -display none \
|
||||
-machine dumpdtb=binaries/virt-gicv3.dtb
|
||||
|
||||
rm -f smoke.serial
|
||||
set +e
|
||||
echo " booti 0x49000000 - 0x44000000" | timeout -k 1 30 qemu-system-aarch64 \
|
||||
-machine virtualization=true \
|
||||
-cpu cortex-a57 -machine type=virt \
|
||||
-m 512 -monitor none -serial stdio \
|
||||
-no-reboot \
|
||||
-device loader,file=binaries/virt-gicv3.dtb,force-raw=on,addr=0x44000000 \
|
||||
-device loader,file=binaries/xen,force-raw=on,addr=0x49000000 \
|
||||
-bios /usr/lib/u-boot/qemu_arm64/u-boot.bin |& tee smoke.serial
|
||||
|
||||
set -e
|
||||
grep -q 'LOADING DOMAIN 0' smoke.serial || exit 1
|
||||
exit 0
|
||||