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 v3 10/12] automation: create an alpine linux arm64 test job
Date: Tue, 24 Nov 2020 20:27:43 -0800 [thread overview]
Message-ID: <20201125042745.31986-10-sstabellini@kernel.org> (raw)
In-Reply-To: <alpine.DEB.2.21.2011241722540.7979@sstabellini-ThinkPad-T480s>
Create a test job that starts Xen and Dom0 on QEMU based on the alpine
linux rootfs. Use the Linux kernel and rootfs from the tests-artifacts
containers. Add the Xen tools binaries from the Alpine Linux build job.
Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com>
---
automation/gitlab-ci/test.yaml | 24 +++++++
automation/scripts/build | 1 +
automation/scripts/qemu-alpine-arm64.sh | 84 +++++++++++++++++++++++++
3 files changed, 109 insertions(+)
create mode 100755 automation/scripts/qemu-alpine-arm64.sh
diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index 35346e3f6e..a291538d68 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -22,6 +22,30 @@ build-each-commit-gcc:
- /^coverity-tested\/.*/
- /^stable-.*/
+qemu-alpine-arm64-gcc:
+ stage: test
+ image: registry.gitlab.com/xen-project/xen/${CONTAINER}
+ variables:
+ CONTAINER: debian:unstable-arm64v8
+ script:
+ - ./automation/scripts/qemu-alpine-arm64.sh 2>&1 | tee qemu-smoke-arm64.log
+ dependencies:
+ - alpine-3.12-gcc-arm64
+ - alpine-3.12-arm64-rootfs-export
+ - kernel-5.9.9-arm64-export
+ artifacts:
+ paths:
+ - smoke.serial
+ - '*.log'
+ when: always
+ tags:
+ - arm64
+ except:
+ - master
+ - smoke
+ - /^coverity-tested\/.*/
+ - /^stable-.*/
+
qemu-smoke-arm64-gcc:
stage: test
image: registry.gitlab.com/xen-project/xen/${CONTAINER}
diff --git a/automation/scripts/build b/automation/scripts/build
index 3fb2fe134c..0e1ebd60f2 100755
--- a/automation/scripts/build
+++ b/automation/scripts/build
@@ -52,6 +52,7 @@ cp xen/.config xen-config
mkdir binaries
if [[ "${XEN_TARGET_ARCH}" != "x86_32" ]]; then
cp xen/xen binaries/xen
+ cp -r dist binaries/
fi
# Build all the configs we care about
diff --git a/automation/scripts/qemu-alpine-arm64.sh b/automation/scripts/qemu-alpine-arm64.sh
new file mode 100755
index 0000000000..7d1eb7d1b6
--- /dev/null
+++ b/automation/scripts/qemu-alpine-arm64.sh
@@ -0,0 +1,84 @@
+#!/bin/bash
+
+set -ex
+
+apt-get -qy update
+apt-get -qy install --no-install-recommends qemu-system-aarch64 \
+ u-boot-qemu \
+ u-boot-tools \
+ device-tree-compiler \
+ cpio \
+ curl
+
+mkdir -p binaries/rootfs
+cd binaries/rootfs
+tar xvzf ../initrd.tar.gz
+mkdir proc
+mkdir run
+mkdir srv
+mkdir sys
+rm var/run
+cp -ar ../dist/install/* .
+echo "#!/bin/bash
+
+export LD_LIBRARY_PATH=/usr/local/lib
+bash /etc/init.d/xencommons start
+
+xl list
+
+" > 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 > ../xen-rootfs.cpio.gz
+cd ../..
+
+# 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 1024 -display none \
+ -machine dumpdtb=binaries/virt-gicv3.dtb
+# XXX disable pl061 to avoid Linux crash
+dtc -I dtb -O dts binaries/virt-gicv3.dtb > binaries/virt-gicv3.dts
+sed 's/compatible = "arm,pl061.*/status = "disabled";/g' binaries/virt-gicv3.dts > binaries/virt-gicv3-edited.dts
+dtc -I dts -O dtb binaries/virt-gicv3-edited.dts > binaries/virt-gicv3.dtb
+
+# ImageBuilder
+echo 'MEMORY_START="0x40000000"
+MEMORY_END="0x80000000"
+
+DEVICE_TREE="virt-gicv3.dtb"
+XEN="xen"
+DOM0_KERNEL="Image"
+DOM0_RAMDISK="xen-rootfs.cpio.gz"
+XEN_CMD="console=dtuart dom0_mem=1024M"
+
+NUM_DOMUS=0
+
+LOAD_CMD="tftpb"
+UBOOT_SOURCE="boot.source"
+UBOOT_SCRIPT="boot.scr"' > binaries/config
+rm -rf imagebuilder
+git clone https://gitlab.com/ViryaOS/imagebuilder
+bash imagebuilder/scripts/uboot-script-gen -t tftp -d binaries/ -c binaries/config
+
+
+# Run the test
+rm -f smoke.serial
+set +e
+echo " virtio scan; dhcp; tftpb 0x40000000 boot.scr; source 0x40000000"| \
+timeout -k 1 480 \
+qemu-system-aarch64 \
+ -machine virtualization=true \
+ -cpu cortex-a57 -machine type=virt \
+ -m 2048 -monitor none -serial stdio \
+ -smp 2 \
+ -no-reboot \
+ -device virtio-net-pci,netdev=n0 \
+ -netdev user,id=n0,tftp=binaries \
+ -bios /usr/lib/u-boot/qemu_arm64/u-boot.bin |& tee smoke.serial
+
+set -e
+grep -q "Domain-0" smoke.serial || exit 1
+exit 0
--
2.17.1
next prev parent reply other threads:[~2020-11-25 4:28 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-25 4:27 [PATCH v3 00/12] automation: improvements (mostly) for arm64 Stefano Stabellini
2020-11-25 4:27 ` [PATCH v3 01/12] automation: add a QEMU aarch64 smoke test Stefano Stabellini
2020-12-04 10:40 ` Wei Liu
2020-12-04 21:40 ` Stefano Stabellini
2020-11-25 4:27 ` [PATCH v3 02/12] automation: add dom0less to the " Stefano Stabellini
2020-11-25 4:27 ` [PATCH v3 03/12] automation: pass --disable-werror for QEMUU builds if libc is musl Stefano Stabellini
2020-11-25 4:27 ` [PATCH v3 04/12] automation: add alpine linux 3.12 arm64 build container Stefano Stabellini
2020-11-25 4:27 ` [PATCH v3 05/12] automation: add alpine linux arm64 build test Stefano Stabellini
2020-11-25 4:27 ` [PATCH v3 06/12] automation: add alpine linux 3.12 x86 build container Stefano Stabellini
2020-11-25 4:27 ` [PATCH v3 07/12] automation: add alpine linux x86 build jobs Stefano Stabellini
2020-11-26 0:26 ` Stefano Stabellini
2020-11-25 4:27 ` [PATCH v3 08/12] automation: add tests artifacts Stefano Stabellini
2020-11-25 4:27 ` [PATCH v3 09/12] automation: make available the tests artifacts to the pipeline Stefano Stabellini
2020-11-25 4:27 ` Stefano Stabellini [this message]
2020-11-25 4:27 ` [PATCH v3 11/12] automation: use the tests-artifacts kernel for qemu-smoke-arm64-gcc Stefano Stabellini
2020-11-25 4:27 ` [PATCH v3 12/12] automation: add domU creation to dom0 alpine linux test Stefano Stabellini
2020-12-04 10:41 ` [PATCH v3 00/12] automation: improvements (mostly) for arm64 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=20201125042745.31986-10-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.