mirror of
https://passt.top/passt
synced 2024-11-05 20:31:11 +00:00
56e755ba11
Extends the context system in the test scripts to allow executing commands within a guest. Do this without requiring an existing network in the guest by using socat to run ssh via a vsock connection. We do need some additional "sleep"s in the tests, because the new faster dispatch means that sometimes we attempt to connect before socat has managed to listen. For now, only use this for the plain "passt" tests. The "passt_in_ns" and other tests have additional complications we still need to deal with. Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
187 lines
7.0 KiB
Makefile
187 lines
7.0 KiB
Makefile
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
#
|
|
# Tests makefile
|
|
#
|
|
# Copyright Red Hat
|
|
# Author: David Gibson <david@gibson.dropbear.id.au>
|
|
|
|
WGET = wget -c
|
|
|
|
DEBIAN_IMGS = debian-8.11.0-openstack-amd64.qcow2 \
|
|
debian-9-nocloud-amd64-daily-20200210-166.qcow2 \
|
|
debian-10-nocloud-amd64.qcow2 \
|
|
debian-10-generic-arm64.qcow2 \
|
|
debian-10-generic-ppc64el.qcow2 \
|
|
debian-11-nocloud-amd64.qcow2 \
|
|
debian-11-generic-arm64.qcow2 \
|
|
debian-11-generic-ppc64el.qcow2 \
|
|
debian-sid-nocloud-amd64-daily.qcow2 \
|
|
debian-sid-nocloud-arm64-daily.qcow2 \
|
|
debian-sid-nocloud-ppc64el-daily.qcow2
|
|
|
|
FEDORA_IMGS = Fedora-Cloud-Base-26-1.5.x86_64.qcow2 \
|
|
Fedora-Cloud-Base-27-1.6.x86_64.qcow2 \
|
|
Fedora-Cloud-Base-28-1.1.x86_64.qcow2 \
|
|
Fedora-Cloud-Base-28-1.1.aarch64.qcow2 \
|
|
Fedora-Cloud-Base-29-1.2.x86_64.qcow2 \
|
|
Fedora-Cloud-Base-29-1.2.aarch64.qcow2 \
|
|
Fedora-Cloud-Base-30-1.2.x86_64.qcow2 \
|
|
Fedora-Cloud-Base-30-1.2.aarch64.qcow2 \
|
|
Fedora-Cloud-Base-31-1.9.x86_64.qcow2 \
|
|
Fedora-Cloud-Base-31-1.9.aarch64.qcow2 \
|
|
Fedora-Cloud-Base-32-1.6.x86_64.qcow2 \
|
|
Fedora-Cloud-Base-32-1.6.aarch64.qcow2 \
|
|
Fedora-Cloud-Base-33-1.2.x86_64.qcow2 \
|
|
Fedora-Cloud-Base-33-1.2.aarch64.qcow2 \
|
|
Fedora-Cloud-Base-34-1.2.x86_64.qcow2 \
|
|
Fedora-Cloud-Base-34-1.2.aarch64.qcow2 \
|
|
Fedora-Cloud-Base-35-1.2.x86_64.qcow2 \
|
|
Fedora-Cloud-Base-35-1.2.aarch64.qcow2
|
|
|
|
OPENSUSE_IMGS = openSUSE-Leap-15.1-JeOS.x86_64-kvm-and-xen.qcow2 \
|
|
openSUSE-Leap-15.2-JeOS.x86_64-kvm-and-xen.qcow2 \
|
|
openSUSE-Leap-15.3-JeOS.x86_64-kvm-and-xen.qcow2 \
|
|
openSUSE-Tumbleweed-ARM-JeOS-efi.aarch64.raw.xz \
|
|
openSUSE-Tumbleweed-ARM-JeOS-efi.armv7l.raw.xz \
|
|
openSUSE-Tumbleweed-JeOS.x86_64-kvm-and-xen.qcow2
|
|
|
|
UBUNTU_OLD_IMGS = trusty-server-cloudimg-amd64-disk1.img \
|
|
trusty-server-cloudimg-i386-disk1.img \
|
|
trusty-server-cloudimg-ppc64el-disk1.img
|
|
UBUNTU_NEW_IMGS = xenial-server-cloudimg-powerpc-disk1.img \
|
|
jammy-server-cloudimg-s390x.img
|
|
UBUNTU_IMGS = $(UBUNTU_OLD_IMGS) $(UBUNTU_NEW_IMGS)
|
|
|
|
DOWNLOAD_ASSETS = mbuto \
|
|
$(DEBIAN_IMGS) $(FEDORA_IMGS) $(OPENSUSE_IMGS) $(UBUNTU_IMGS)
|
|
LOCAL_ASSETS = mbuto.img QEMU_EFI.fd \
|
|
$(DEBIAN_IMGS:%=prepared-%) $(FEDORA_IMGS:%=prepared-%) \
|
|
$(UBUNTU_NEW_IMGS:%=prepared-%) \
|
|
nsholder guest-key guest-key.pub
|
|
|
|
ASSETS = $(DOWNLOAD_ASSETS) $(LOCAL_ASSETS)
|
|
|
|
CFLAGS = -Wall -Werror
|
|
|
|
assets: $(ASSETS)
|
|
|
|
mbuto:
|
|
git clone git://mbuto.sh/mbuto
|
|
|
|
guest-key guest-key.pub:
|
|
ssh-keygen -f guest-key -N ''
|
|
|
|
mbuto.img: passt.mbuto mbuto guest-key.pub
|
|
./mbuto/mbuto -p ./$< -c lz4 -f $@
|
|
|
|
nsholder: nsholder.c
|
|
$(CC) $(CFLAGS) -o $@ $^
|
|
|
|
QEMU_EFI.fd:
|
|
./find-arm64-firmware.sh $@
|
|
|
|
prepared-%.qcow2: %.qcow2 ./prepare-distro-img.sh
|
|
qemu-img create -f qcow2 -F qcow2 -b $< $@
|
|
./prepare-distro-img.sh $@
|
|
|
|
prepared-%.img: %.img ./prepare-distro-img.sh
|
|
qemu-img create -f qcow2 -F qcow2 -b $< $@
|
|
./prepare-distro-img.sh $(IMGTYPE) $@
|
|
|
|
check: assets
|
|
./run
|
|
|
|
debug: assets
|
|
DEBUG=1 ./run
|
|
|
|
clean:
|
|
rm -f perf.js *~
|
|
rm -f $(LOCAL_ASSETS)
|
|
rm -rf test_logs
|
|
rm -f prepared-*.qcow2 prepared-*.img
|
|
|
|
realclean: clean
|
|
rm -rf $(DOWNLOAD_ASSETS)
|
|
|
|
# Debian downloads
|
|
debian-8.11.0-openstack-%.qcow2:
|
|
$(WGET) -O $@ https://cloud.debian.org/images/cloud/OpenStack/archive/8.11.0/debian-8.11.0-openstack-$*.qcow2
|
|
|
|
debian-9-nocloud-%-daily-20200210-166.qcow2:
|
|
$(WGET) -O $@ https://cloud.debian.org/images/cloud/stretch/daily/20200210-166/debian-9-nocloud-$*-daily-20200210-166.qcow2
|
|
|
|
debian-10-nocloud-%.qcow2:
|
|
$(WGET) -O $@ https://cloud.debian.org/images/cloud/buster/latest/debian-10-nocloud-$*.qcow2
|
|
|
|
debian-10-generic-%.qcow2:
|
|
$(WGET) -O $@ https://cloud.debian.org/images/cloud/buster/latest/debian-10-generic-$*.qcow2
|
|
|
|
debian-11-nocloud-%.qcow2:
|
|
$(WGET) -O $@ https://cloud.debian.org/images/cloud/bullseye/latest/debian-11-nocloud-$*.qcow2
|
|
|
|
debian-11-generic-%.qcow2:
|
|
$(WGET) -O $@ https://cloud.debian.org/images/cloud/bullseye/latest/debian-11-generic-$*.qcow2
|
|
|
|
debian-sid-nocloud-%-daily.qcow2:
|
|
$(WGET) -O $@ https://cloud.debian.org/images/cloud/sid/daily/latest/debian-sid-nocloud-$*-daily.qcow2
|
|
|
|
# Fedora downloads
|
|
Fedora-Cloud-Base-26-1.5.%.qcow2:
|
|
$(WGET) -O $@ http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/26/CloudImages/$*/images/Fedora-Cloud-Base-26-1.5.$*.qcow2
|
|
|
|
Fedora-Cloud-Base-27-1.6.%.qcow2:
|
|
$(WGET) -O $@ http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/27/CloudImages/$*/images/Fedora-Cloud-Base-27-1.6.$*.qcow2
|
|
|
|
Fedora-Cloud-Base-28-1.1.%.qcow2:
|
|
$(WGET) -O $@ http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/28/Cloud/$*/images/Fedora-Cloud-Base-28-1.1.$*.qcow2
|
|
|
|
Fedora-Cloud-Base-29-1.2.%.qcow2:
|
|
$(WGET) -O $@ http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/29/Cloud/$*/images/Fedora-Cloud-Base-29-1.2.$*.qcow2
|
|
|
|
Fedora-Cloud-Base-30-1.2.%.qcow2:
|
|
$(WGET) -O $@ http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/30/Cloud/$*/images/Fedora-Cloud-Base-30-1.2.$*.qcow2
|
|
|
|
Fedora-Cloud-Base-31-1.9.%.qcow2:
|
|
$(WGET) -O $@ http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/31/Cloud/$*/images/Fedora-Cloud-Base-31-1.9.$*.qcow2
|
|
|
|
Fedora-Cloud-Base-32-1.6.%.qcow2:
|
|
$(WGET) -O $@ https://download.fedoraproject.org/pub/fedora/linux/releases/32/Cloud/$*/images/Fedora-Cloud-Base-32-1.6.$*.qcow2
|
|
|
|
Fedora-Cloud-Base-33-1.2.%.qcow2:
|
|
$(WGET) -O $@ https://download.fedoraproject.org/pub/fedora/linux/releases/33/Cloud/$*/images/Fedora-Cloud-Base-33-1.2.$*.qcow2
|
|
|
|
Fedora-Cloud-Base-34-1.2.%.qcow2:
|
|
$(WGET) -O $@ https://download.fedoraproject.org/pub/fedora/linux//releases/34/Cloud/$*/images/Fedora-Cloud-Base-34-1.2.$*.qcow2
|
|
|
|
Fedora-Cloud-Base-35-1.2.%.qcow2:
|
|
$(WGET) -O $@ https://download.fedoraproject.org/pub/fedora/linux/releases/35/Cloud/$*/images/Fedora-Cloud-Base-35-1.2.$*.qcow2
|
|
|
|
# OpenSuSE downloads
|
|
openSUSE-Leap-15.1-JeOS.x86_64-kvm-and-xen.qcow2:
|
|
$(WGET) -O $@ https://download.opensuse.org/distribution/leap/15.1/jeos/openSUSE-Leap-15.1-JeOS.x86_64-kvm-and-xen.qcow2
|
|
|
|
openSUSE-Leap-15.2-JeOS.x86_64-kvm-and-xen.qcow2:
|
|
$(WGET) -O $@ https://download.opensuse.org/distribution/leap/15.2/appliances/openSUSE-Leap-15.2-JeOS.x86_64-kvm-and-xen.qcow2
|
|
|
|
openSUSE-Leap-15.3-JeOS.x86_64-kvm-and-xen.qcow2:
|
|
$(WGET) -O $@ https://download.opensuse.org/distribution/leap/15.3/appliances/openSUSE-Leap-15.3-JeOS.x86_64-kvm-and-xen.qcow2
|
|
|
|
openSUSE-Tumbleweed-ARM-JeOS-efi.aarch64.raw.xz:
|
|
$(WGET) -O $@ http://download.opensuse.org/ports/aarch64/tumbleweed/appliances/openSUSE-Tumbleweed-ARM-JeOS-efi.aarch64.raw.xz
|
|
|
|
openSUSE-Tumbleweed-ARM-JeOS-efi.armv7l.raw.xz:
|
|
$(WGET) -O $@ http://download.opensuse.org/ports/armv7hl/tumbleweed/appliances/openSUSE-Tumbleweed-ARM-JeOS-efi.armv7l.raw.xz
|
|
|
|
openSUSE-Tumbleweed-JeOS.x86_64-kvm-and-xen.qcow2:
|
|
$(WGET) -O $@ https://download.opensuse.org/tumbleweed/appliances/openSUSE-Tumbleweed-JeOS.x86_64-kvm-and-xen.qcow2
|
|
|
|
# Ubuntu downloads
|
|
trusty-server-cloudimg-%-disk1.img:
|
|
$(WGET) -O $@ https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-$*-disk1.img
|
|
|
|
xenial-server-cloudimg-powerpc-disk1.img:
|
|
$(WGET) -O $@ https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-powerpc-disk1.img
|
|
|
|
jammy-server-cloudimg-s390x.img:
|
|
$(WGET) -O $@ https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-s390x.img
|