From: Stefano Stabellini <sstabellini@kernel.org>
To: andrew.cooper3@citrix.com, cardoe@cardoe.com, wl@xen.org
Cc: sstabellini@kernel.org, xen-devel@lists.xenproject.org,
Stefano Stabellini <stefano.stabellini@xilinx.com>
Subject: [PATCH v2 1/2] automation: add a QEMU aarch64 smoke test
Date: Mon, 16 Nov 2020 20:21:26 -0800 [thread overview]
Message-ID: <20201117042127.30981-1-sstabellini@kernel.org> (raw)
In-Reply-To: <alpine.DEB.2.21.2011161927120.20906@sstabellini-ThinkPad-T480s>
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>
---
Changes in v2:
- fix x86_32 build
---
automation/gitlab-ci/test.yaml | 22 ++++++++++++++++++
automation/scripts/build | 6 ++---
automation/scripts/qemu-smoke-arm64.sh | 32 ++++++++++++++++++++++++++
3 files changed, 57 insertions(+), 3 deletions(-)
create mode 100755 automation/scripts/qemu-smoke-arm64.sh
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 793feafe8b..35346e3f6e 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -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}
diff --git a/automation/scripts/build b/automation/scripts/build
index 0cd0f3971d..7038e5eb50 100755
--- a/automation/scripts/build
+++ b/automation/scripts/build
@@ -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
diff --git a/automation/scripts/qemu-smoke-arm64.sh b/automation/scripts/qemu-smoke-arm64.sh
new file mode 100755
index 0000000000..a7efbf8b6f
--- /dev/null
+++ b/automation/scripts/qemu-smoke-arm64.sh
@@ -0,0 +1,32 @@
+#!/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
+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
--
2.17.1
next prev parent reply other threads:[~2020-11-17 4:22 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-17 4:21 [PATCH v2 0/2] automation: arm64 dom0less smoke test Stefano Stabellini
2020-11-17 4:21 ` Stefano Stabellini [this message]
2020-11-17 4:21 ` [PATCH v2 2/2] automation: add dom0less to the QEMU aarch64 " Stefano Stabellini
2020-12-07 15:33 ` [PATCH v2 0/2] automation: arm64 dom0less " Wei Liu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201117042127.30981-1-sstabellini@kernel.org \
--to=sstabellini@kernel.org \
--cc=andrew.cooper3@citrix.com \
--cc=cardoe@cardoe.com \
--cc=stefano.stabellini@xilinx.com \
--cc=wl@xen.org \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.