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:
Stefano Stabellini committed 2020-12-17 14:56:43 -08:00
1 parent 641723f78d
commit dbc1e724bb
3 files changed
+58 -3

No files matched your search

+22
View File
@@ -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}
+3 -3
View File
@@ -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
+33
View File
@@ -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
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.