mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
Disable xen,enhanced because we don't use PV drivers in this test and also because the kernel used for testing is old and unpatched and would break if xen,enhanced is passed. This patch unbreaks gitlab-ci. Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com> Reviewed-by: Ayan Kumar Halder <ayankuma@amd.com> Tested-by: Ayan Kumar Halder <ayankuma@amd.com>
119 lines
3.2 KiB
Bash
Executable File
119 lines
3.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -ex
|
|
|
|
test_variant=$1
|
|
|
|
passed="BusyBox"
|
|
check=""
|
|
|
|
if [[ "${test_variant}" == "static-mem" ]]; then
|
|
# Memory range that is statically allocated to DOM1
|
|
domu_base="50000000"
|
|
domu_size="10000000"
|
|
passed="${test_variant} test passed"
|
|
check="
|
|
current=\$(hexdump -e '16/1 \"%02x\"' /proc/device-tree/memory@${domu_base}/reg 2>/dev/null)
|
|
expected=$(printf \"%016x%016x\" 0x${domu_base} 0x${domu_size})
|
|
if [[ \"\${expected}\" == \"\${current}\" ]]; then
|
|
echo \"${passed}\"
|
|
fi
|
|
"
|
|
fi
|
|
|
|
export DEBIAN_FRONTENT=noninteractive
|
|
apt-get -qy update
|
|
apt-get -qy install --no-install-recommends u-boot-qemu \
|
|
u-boot-tools \
|
|
device-tree-compiler \
|
|
busybox-static \
|
|
cpio \
|
|
curl
|
|
|
|
# XXX QEMU looks for "efi-virtio.rom" even if it is unneeded
|
|
curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom
|
|
./binaries/qemu-system-aarch64 \
|
|
-machine virtualization=true \
|
|
-cpu cortex-a57 -machine type=virt \
|
|
-m 1024 -smp 2 -display none \
|
|
-machine dumpdtb=binaries/virt-gicv2.dtb
|
|
# XXX disable pl061 to avoid Linux crash
|
|
dtc -I dtb -O dts binaries/virt-gicv2.dtb > binaries/virt-gicv2.dts
|
|
sed 's/compatible = "arm,pl061.*/status = "disabled";/g' binaries/virt-gicv2.dts > binaries/virt-gicv2-edited.dts
|
|
dtc -I dts -O dtb binaries/virt-gicv2-edited.dts > binaries/virt-gicv2.dtb
|
|
|
|
|
|
# Busybox
|
|
mkdir -p initrd
|
|
mkdir -p initrd/bin
|
|
mkdir -p initrd/sbin
|
|
mkdir -p initrd/etc
|
|
mkdir -p initrd/dev
|
|
mkdir -p initrd/proc
|
|
mkdir -p initrd/sys
|
|
mkdir -p initrd/lib
|
|
mkdir -p initrd/var
|
|
mkdir -p initrd/mnt
|
|
cp /bin/busybox initrd/bin/busybox
|
|
initrd/bin/busybox --install initrd/bin
|
|
echo "#!/bin/sh
|
|
|
|
mount -t proc proc /proc
|
|
mount -t sysfs sysfs /sys
|
|
mount -t devtmpfs devtmpfs /dev
|
|
${check}
|
|
/bin/sh" > initrd/init
|
|
chmod +x initrd/init
|
|
cd initrd
|
|
find . | cpio --create --format='newc' | gzip > ../binaries/initrd
|
|
cd ..
|
|
|
|
|
|
# ImageBuilder
|
|
echo 'MEMORY_START="0x40000000"
|
|
MEMORY_END="0x80000000"
|
|
|
|
DEVICE_TREE="virt-gicv2.dtb"
|
|
XEN="xen"
|
|
DOM0_KERNEL="Image"
|
|
DOM0_RAMDISK="initrd"
|
|
XEN_CMD="console=dtuart dom0_mem=512M"
|
|
|
|
NUM_DOMUS=1
|
|
DOMU_KERNEL[0]="Image"
|
|
DOMU_RAMDISK[0]="initrd"
|
|
DOMU_MEM[0]="256"
|
|
DOMU_ENHANCED[0]=0
|
|
|
|
LOAD_CMD="tftpb"
|
|
UBOOT_SOURCE="boot.source"
|
|
UBOOT_SCRIPT="boot.scr"' > binaries/config
|
|
|
|
if [[ "${test_variant}" == "static-mem" ]]; then
|
|
echo -e "\nDOMU_STATIC_MEM[0]=\"0x${domu_base} 0x${domu_size}\"" >> binaries/config
|
|
fi
|
|
|
|
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 240 \
|
|
./binaries/qemu-system-aarch64 \
|
|
-machine virtualization=true \
|
|
-cpu cortex-a57 -machine type=virt \
|
|
-m 1024 -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 "^BusyBox" smoke.serial && grep -q "DOM1: ${passed}" smoke.serial) || exit 1
|
|
exit 0
|