1#!/bin/bash
2
3set -ex -o pipefail
4
5serial_log="$(pwd)/smoke.serial"
6
7cd binaries
8
9mkdir rootfs
10cd rootfs
11tar xvf ../xen-image-minimal-qemuarm.rootfs.tar.bz2
12mkdir -p ./root
13echo "name=\"test\"
14memory=400
15vcpus=1
16kernel=\"/root/zImage\"
17ramdisk=\"/root/initrd.cpio.gz\"
18extra=\"console=hvc0 root=/dev/ram0 rdinit=/bin/sh\"
19" > root/test.cfg
20echo "#!/bin/bash
21
22xl list
23
24xl -vvv create -c /root/test.cfg
25
26" > ./root/xen.start
27echo "bash /root/xen.start" >> ./etc/init.d/xen-watchdog
28
29curl --fail --silent --show-error --location --output initrd.tar.gz https://dl-cdn.alpinelinux.org/alpine/v3.15/releases/armhf/alpine-minirootfs-3.15.1-armhf.tar.gz
30mkdir rootfs
31cd rootfs
32tar xvzf ../initrd.tar.gz
33find . | cpio -H newc -o | gzip > ../root/initrd.cpio.gz
34cd ..
35rm -rf rootfs
36rm initrd.tar.gz
37
38cp ../zImage ./root
39find . | cpio -H newc -o | gzip > ../initrd.gz
40cd ..
41
42# XXX QEMU looks for "efi-virtio.rom" even if it is unneeded
43curl -fsSLO https://github.com/qemu/qemu/raw/v5.2.0/pc-bios/efi-virtio.rom
44./qemu-system-arm \
45   -machine virt \
46   -machine virtualization=true \
47   -smp 4 \
48   -m 2048 \
49   -serial stdio \
50   -monitor none \
51   -display none \
52   -machine dumpdtb=virt.dtb
53
54# XXX disable pci to avoid Linux hang
55fdtput virt.dtb -p -t s /pcie@10000000 status disabled
56
57# ImageBuilder
58echo 'MEMORY_START="0x40000000"
59MEMORY_END="0xC0000000"
60
61DEVICE_TREE="virt.dtb"
62XEN="xen-qemuarm"
63DOM0_KERNEL="zImage"
64DOM0_RAMDISK="initrd.gz"
65DOM0_CMD="console=hvc0 earlyprintk clk_ignore_unused root=/dev/ram0 rdinit=/sbin/init"
66XEN_CMD="console=dtuart dom0_mem=1024M bootscrub=0 console_timestamps=boot"
67
68NUM_DOMUS=0
69
70LOAD_CMD="tftpb"
71BOOT_CMD="bootz"
72UBOOT_SOURCE="boot.source"
73UBOOT_SCRIPT="boot.scr"' > config
74
75rm -rf imagebuilder
76git clone --depth 1 https://gitlab.com/xen-project/imagebuilder.git
77bash imagebuilder/scripts/uboot-script-gen -t tftp -d . -c config
78
79rm -f ${serial_log}
80export TEST_CMD="./qemu-system-arm \
81   -machine virt \
82   -machine virtualization=true \
83   -smp 4 \
84   -m 2048 \
85   -serial stdio \
86   -monitor none \
87   -display none \
88   -no-reboot \
89   -device virtio-net-pci,netdev=n0 \
90   -netdev user,id=n0,tftp=./ \
91   -bios /usr/lib/u-boot/qemu_arm/u-boot.bin"
92
93export UBOOT_CMD="virtio scan; dhcp; tftpb 0x40000000 boot.scr; source 0x40000000"
94export TEST_LOG="${serial_log}"
95export BOOT_MSG="Latest ChangeSet: "
96export LOG_MSG="Domain-0"
97export PASSED="/ #"
98
99../automation/scripts/console.exp | sed 's/\r\+$//'
100