[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 2/2] automation: qemu-smoke-arm64: Run ping test over a pv network interface



On Sat, 6 Aug 2022, Xenia Ragiadakou wrote:
> This patch modified the test in the following way
> - Dom0 is booted with an alpine linux rootfs with the xen tools.
> - Once Dom0 is booted, it starts xenstored, calls init-dom0less to setup
> the xenstore interface for the dom0less Dom1, setups the bridged network
> and attaches a pv network interface to Dom1.
> - In the meantime, Dom1 in its init script tries to assign an ip to eth0
> and ping Dom0,
> - If Dom1 manages to ping Dom0, it prints 'passed'.
> 
> Signed-off-by: Xenia Ragiadakou <burzalodowa@xxxxxxxxx>
> ---
>  automation/gitlab-ci/test.yaml         |  6 ++--
>  automation/scripts/qemu-smoke-arm64.sh | 43 +++++++++++++++++++++++---
>  2 files changed, 43 insertions(+), 6 deletions(-)
> 
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index aa633fb655..2eb6c3866e 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -69,7 +69,8 @@ qemu-smoke-arm64-gcc:
>    script:
>      - ./automation/scripts/qemu-smoke-arm64.sh 2>&1 | tee 
> qemu-smoke-arm64.log
>    needs:
> -    - debian-unstable-gcc-arm64
> +    - alpine-3.12-gcc-arm64
> +    - alpine-3.12-arm64-rootfs-export
>      - kernel-5.19-arm64-export
>      - qemu-system-aarch64-6.0.0-arm64-export
>    artifacts:
> @@ -87,7 +88,8 @@ qemu-smoke-arm64-gcc-staticmem:
>    script:
>      - ./automation/scripts/qemu-smoke-arm64.sh static-mem 2>&1 | tee 
> qemu-smoke-arm64.log
>    needs:
> -    - debian-unstable-gcc-arm64
> +    - alpine-3.12-gcc-arm64
> +    - alpine-3.12-arm64-rootfs-export
>      - kernel-5.19-arm64-export
>      - qemu-system-aarch64-6.0.0-arm64-export
>    artifacts:
> diff --git a/automation/scripts/qemu-smoke-arm64.sh 
> b/automation/scripts/qemu-smoke-arm64.sh
> index b48a20988f..0d19ad52cc 100755
> --- a/automation/scripts/qemu-smoke-arm64.sh
> +++ b/automation/scripts/qemu-smoke-arm64.sh
> @@ -4,8 +4,13 @@ set -ex
>  
>  test_variant=$1
>  
> -passed="BusyBox"
> -check=""
> +passed="passed"
> +check="
> +until ifconfig eth0 192.168.0.2 && ping -c 10 192.168.0.1; do
> +    sleep 30
> +done
> +echo \"${passed}\"
> +"
>  
>  if [[ "${test_variant}" == "static-mem" ]]; then
>      # Memory range that is statically allocated to DOM1
> @@ -68,6 +73,36 @@ cd initrd
>  find . | cpio --create --format='newc' | gzip > ../binaries/initrd
>  cd ..
>  
> +# DOM0 rootfs
> +mkdir -p rootfs
> +cd rootfs
> +tar xzf ../binaries/initrd.tar.gz
> +mkdir proc
> +mkdir run
> +mkdir srv
> +mkdir sys
> +rm var/run
> +cp -ar ../binaries/dist/install/* .
> +
> +echo "#!/bin/bash
> +
> +export LD_LIBRARY_PATH=/usr/local/lib
> +bash /etc/init.d/xencommons start
> +
> +/usr/local/lib/xen/bin/init-dom0less
> +
> +brctl addbr xenbr0
> +brctl addif xenbr0 eth0
> +ifconfig eth0 up
> +ifconfig xenbr0 up
> +ifconfig xenbr0 192.168.0.1
> +
> +xl network-attach 1 type=vif
> +" > 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 > ../binaries/dom0-rootfs.cpio.gz
> +cd ..
>  
>  # ImageBuilder
>  echo 'MEMORY_START="0x40000000"
> @@ -76,7 +111,7 @@ MEMORY_END="0x80000000"
>  DEVICE_TREE="virt-gicv2.dtb"
>  XEN="xen"
>  DOM0_KERNEL="Image"
> -DOM0_RAMDISK="initrd"
> +DOM0_RAMDISK="dom0-rootfs.cpio.gz"
>  XEN_CMD="console=dtuart dom0_mem=512M"
>  
>  NUM_DOMUS=1
> @@ -113,5 +148,5 @@ timeout -k 1 240 \
>      -bios /usr/lib/u-boot/qemu_arm64/u-boot.bin |& tee smoke.serial
>  
>  set -e
> -(grep -q "^BusyBox" smoke.serial && grep -q "DOM1: ${passed}" smoke.serial) 
> || exit 1
> +(grep -q "^Welcome to Alpine Linux 3.12" smoke.serial && grep -q "DOM1: 
> ${passed}" smoke.serial) || exit 1
>  exit 0

This patch looks great! One minor comment: Should we great only for
"^Welcome to Alpine Linux" without the version (3.12) to make it easier
to upgrade in the future?

If you are OK with it, I can remove "3.12" on commit.



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.