[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [XEN PATCH v1 3/3] automation: add x86_64 test (linux argo)
From: Victor Lira <victorm.lira@xxxxxxx> Add x86_64 hardware test that creates a Xen Argo communication connection between two PVH domains. In the test, dom0 creates a domU and listens for messages sent by the domU through Argo. To accomplish this, add Xen build jobs to export Linux and argo artifacts, and build Xen with CONFIG_ARGO=y. Update the xilinx x86_64 test script to support the new test, and add "sync_console" to command line to avoid an issue with console messages being lost. Signed-off-by: Victor Lira <victorm.lira@xxxxxxx> --- Cc: Doug Goldstein <cardoe@xxxxxxxxxx> Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx> Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx --- automation/gitlab-ci/build.yaml | 34 +++++++++ automation/gitlab-ci/test.yaml | 10 +++ .../scripts/xilinx-smoke-dom0-x86_64.sh | 76 +++++++++++++------ 3 files changed, 95 insertions(+), 25 deletions(-) diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml index c2db69ecf8..827759fb7b 100644 --- a/automation/gitlab-ci/build.yaml +++ b/automation/gitlab-ci/build.yaml @@ -326,6 +326,30 @@ kernel-6.1.19-export: tags: - x86_64 +kernel-6.6.56-export: + extends: .test-jobs-artifact-common + image: registry.gitlab.com/xen-project/xen/tests-artifacts/kernel:6.6.56 + script: + - mkdir binaries && cp /bzImage binaries/bzImage + artifacts: + paths: + - binaries/bzImage + tags: + - x86_64 + +argo-6.6.56-export: + extends: .test-jobs-artifact-common + image: registry.gitlab.com/xen-project/xen/tests-artifacts/argo:6.6.56 + script: + - mkdir binaries && cp -ar /artifacts/* binaries + artifacts: + paths: + - binaries/xen-argo.ko + - binaries/lib/ + - binaries/argo-exec + tags: + - x86_64 + # Jobs below this line # Build jobs needed for tests @@ -341,6 +365,16 @@ alpine-3.18-gcc-debug: CONTAINER: alpine:3.18 BUILD_QEMU_XEN: y +alpine-3.18-gcc-debug-argo: + extends: .gcc-x86-64-build-debug + variables: + CONTAINER: alpine:3.18 + EXTRA_XEN_CONFIG: | + CONFIG_EXPERT=y + CONFIG_UNSUPPORTED=y + CONFIG_ARGO=y + BUILD_QEMU_XEN: n + debian-bookworm-gcc-debug: extends: .gcc-x86-64-build-debug variables: diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml index b27c2be174..849860627d 100644 --- a/automation/gitlab-ci/test.yaml +++ b/automation/gitlab-ci/test.yaml @@ -192,6 +192,16 @@ xilinx-smoke-dom0-x86_64-gcc-debug: - *x86-64-test-needs - alpine-3.18-gcc-debug +xilinx-smoke-dom0-x86_64-gcc-debug-argo: + extends: .xilinx-x86_64 + script: + - ./automation/scripts/xilinx-smoke-dom0-x86_64.sh argo 2>&1 | tee ${LOGFILE} + needs: + - alpine-3.18-gcc-debug-argo + - kernel-6.6.56-export + - alpine-3.18-rootfs-export + - argo-6.6.56-export + adl-smoke-x86-64-gcc-debug: extends: .adl-x86-64 script: diff --git a/automation/scripts/xilinx-smoke-dom0-x86_64.sh b/automation/scripts/xilinx-smoke-dom0-x86_64.sh index 7027f083ba..f70cfdc155 100755 --- a/automation/scripts/xilinx-smoke-dom0-x86_64.sh +++ b/automation/scripts/xilinx-smoke-dom0-x86_64.sh @@ -9,6 +9,8 @@ fatal() { exit 1 } +WORKDIR="${PWD}" + # Test parameter defaults. TEST="$1" PASS_MSG="Test passed: ${TEST}" @@ -24,9 +26,10 @@ kernel = "/boot/vmlinuz" ramdisk = "/boot/initrd-domU" extra = "root=/dev/ram0 console=hvc0" memory = 512 -vif = [ "bridge=xenbr0", ] -disk = [ ] ' +DOMU_CFG_EXTRA="" +copy_domU_files () { :; } +copy_dom0_files () { :; } # Select test variant. if [ "${TEST}" = "ping" ]; then @@ -39,6 +42,14 @@ done echo \"${DOMU_MSG}\" " DOM0_CMD=" +brctl addbr xenbr0 +brctl addif xenbr0 eth0 +ifconfig eth0 up +ifconfig xenbr0 up +ifconfig xenbr0 192.168.0.1 +# get domU console content into test log +tail -F /var/log/xen/console/guest-domU.log 2>/dev/null | sed -e \"s/^/(domU) /\" & +xl create /etc/xen/domU.cfg set +x until grep -q \"${DOMU_MSG}\" /var/log/xen/console/guest-domU.log; do sleep 1 @@ -46,6 +57,34 @@ done set -x echo \"${PASS_MSG}\" " + DOMU_CFG_EXTRA=' +vif = [ "bridge=xenbr0", ] +disk = [ ] +' +elif [ "${TEST}" = "argo" ] +then + PASS_MSG="TEST: Message from DOMU" + XEN_CMD_EXTRA="argo=1,mac-permissive=1" + DOMU_CMD=" +insmod /root/xen-argo.ko +until false +do + echo \"${PASS_MSG}\" + sleep 1 +done | argo-exec -p 28333 -d 0 -- /bin/echo +" + DOM0_CMD=" +insmod /root/xen-argo.ko +xl create /etc/xen/domU.cfg +argo-exec -l -p 28333 -- /bin/echo +" +copy_dom0_files () +{ + cp "${WORKDIR}/binaries/xen-argo.ko" "root/" + cp -ar "${WORKDIR}/binaries/lib/"* "usr/local/lib/" + cp "${WORKDIR}/binaries/argo-exec" "usr/local/bin/" +} +copy_domU_files () { copy_dom0_files; } else fatal "Unknown test: ${TEST}" fi @@ -54,18 +93,18 @@ fi mkdir -p rootfs cd rootfs tar xzf ../binaries/initrd.tar.gz -mkdir proc -mkdir run -mkdir srv -mkdir sys +mkdir proc run srv sys rm var/run echo "#!/bin/sh - +set -x +export LD_LIBRARY_PATH=/usr/local/lib +PATH=/usr/local/bin:/usr/local/sbin:\$PATH ${DOMU_CMD} " > etc/local.d/xen.start chmod +x etc/local.d/xen.start echo "rc_verbose=yes" >> etc/rc.conf sed -i -e 's/^Welcome/domU \0/' etc/issue +copy_domU_files find . | cpio -H newc -o | gzip > ../binaries/domU-rootfs.cpio.gz cd .. rm -rf rootfs @@ -74,37 +113,24 @@ rm -rf rootfs mkdir -p rootfs cd rootfs tar xzf ../binaries/initrd.tar.gz -mkdir boot -mkdir proc -mkdir run -mkdir srv -mkdir sys +mkdir boot proc run srv sys rm var/run cp -ar ../binaries/dist/install/* . echo "#!/bin/bash - +set -x export LD_LIBRARY_PATH=/usr/local/lib bash /etc/init.d/xencommons start - -brctl addbr xenbr0 -brctl addif xenbr0 eth0 -ifconfig eth0 up -ifconfig xenbr0 up -ifconfig xenbr0 192.168.0.1 - -# get domU console content into test log -tail -F /var/log/xen/console/guest-domU.log 2>/dev/null | sed -e \"s/^/(domU) /\" & -xl create /etc/xen/domU.cfg ${DOM0_CMD} " > etc/local.d/xen.start chmod +x etc/local.d/xen.start -echo "${DOMU_CFG}" > etc/xen/domU.cfg +echo "${DOMU_CFG}${DOMU_CFG_EXTRA}" > etc/xen/domU.cfg echo "rc_verbose=yes" >> etc/rc.conf echo "XENCONSOLED_TRACE=all" >> etc/default/xencommons echo "QEMU_XEN=/bin/false" >> etc/default/xencommons mkdir -p var/log/xen/console cp ../binaries/bzImage boot/vmlinuz cp ../binaries/domU-rootfs.cpio.gz boot/initrd-domU +copy_dom0_files find . | cpio -H newc -o | gzip > ../binaries/dom0-rootfs.cpio.gz cd .. @@ -116,7 +142,7 @@ cp -f binaries/bzImage ${TFTP}/${TEST_BOARD}/vmlinuz cp -f binaries/dom0-rootfs.cpio.gz ${TFTP}/${TEST_BOARD}/initrd-dom0 echo " net_default_server=10.0.6.1 -multiboot2 (tftp)/${TEST_BOARD}/xen ${XEN_CMDLINE} +multiboot2 (tftp)/${TEST_BOARD}/xen ${XEN_CMDLINE} sync_console module2 (tftp)/${TEST_BOARD}/vmlinuz console=hvc0 root=/dev/ram0 earlyprintk=xen module2 (tftp)/${TEST_BOARD}/initrd-dom0 boot -- 2.25.1
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |