public inbox for passt-dev@passt.top
 help / color / mirror / code / Atom feed
From: David Gibson <david@gibson.dropbear.id.au>
To: Stefano Brivio <sbrivio@redhat.com>, passt-dev@passt.top
Cc: Paul Holzinger <pholzing@redhat.com>,
	David Gibson <david@gibson.dropbear.id.au>
Subject: [PATCH v2 3/5] test: Build and download podman as a test asset
Date: Thu, 21 Mar 2024 15:57:40 +1100	[thread overview]
Message-ID: <20240321045742.2267188-4-david@gibson.dropbear.id.au> (raw)
In-Reply-To: <20240321045742.2267188-1-david@gibson.dropbear.id.au>

The pasta_podman/bats test scrpt downloads and builds podman, then runs its
pasta specific tests.  Downloading from within a test case has some
drawbacks:
 * It can be very tedious if you have poor connectivity to the server
 * It makes a test that's ostensibly for pasta itself dependent on the
   state of the github server
 * It precludes runnning the tests in an isolated network environment

The same concerns largely apply to building podman too, because it's pretty
common for Go builds to download dependencies themselves.  Therefore move
the download and build of podman from the test itself, to the Makefile
where we prepare other test assets.

To avoid cryptic failures if something went wrong with the build, make
running the test dependent on having the built podman binary.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 test/.gitignore        |  1 +
 test/Makefile          | 12 ++++++++++--
 test/pasta_podman/bats |  6 ++----
 3 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/test/.gitignore b/test/.gitignore
index 48374028..6dd4790b 100644
--- a/test/.gitignore
+++ b/test/.gitignore
@@ -1,5 +1,6 @@
 test_logs/
 mbuto/
+podman/
 *.img
 QEMU_EFI.fd
 *.qcow2
diff --git a/test/Makefile b/test/Makefile
index 711c61c1..35a3b559 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -52,10 +52,10 @@ 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 \
+DOWNLOAD_ASSETS = mbuto podman \
 	$(DEBIAN_IMGS) $(FEDORA_IMGS) $(OPENSUSE_IMGS) $(UBUNTU_IMGS)
 TESTDATA_ASSETS = small.bin big.bin medium.bin
-LOCAL_ASSETS = mbuto.img mbuto.mem.img QEMU_EFI.fd \
+LOCAL_ASSETS = mbuto.img mbuto.mem.img podman/bin/podman QEMU_EFI.fd \
 	$(DEBIAN_IMGS:%=prepared-%) $(FEDORA_IMGS:%=prepared-%) \
 	$(UBUNTU_NEW_IMGS:%=prepared-%) \
 	nstool guest-key guest-key.pub \
@@ -76,6 +76,14 @@ mbuto:
 
 mbuto/mbuto: pull-mbuto
 
+podman:
+	git clone https://github.com/containers/podman.git
+
+# To succesfully build podman, you will need gpgme and systemd
+# development packages
+podman/bin/podman: pull-podman
+	$(MAKE) -C podman
+
 guest-key guest-key.pub:
 	ssh-keygen -f guest-key -N ''
 
diff --git a/test/pasta_podman/bats b/test/pasta_podman/bats
index 21446f08..cb88aa41 100644
--- a/test/pasta_podman/bats
+++ b/test/pasta_podman/bats
@@ -11,11 +11,9 @@
 # Copyright (c) 2022 Red Hat GmbH
 # Author: Stefano Brivio <sbrivio@redhat.com>
 
-htools	git make go bats catatonit ip jq socat
+htools	git make go bats catatonit ip jq socat ./test/podman/bin/podman
 
 test	Podman system test with bats
 
-host	git -C __STATEDIR__ clone https://github.com/containers/podman.git
-host	make -C __STATEDIR__/podman
 hout	WD pwd
-host	PODMAN="__STATEDIR__/podman/bin/podman" CONTAINERS_HELPER_BINARY_DIR="__WD__" bats __STATEDIR__/podman/test/system/505-networking-pasta.bats
+host	PODMAN="test/podman/bin/podman" CONTAINERS_HELPER_BINARY_DIR="__WD__" bats test/podman/test/system/505-networking-pasta.bats
-- 
@@ -11,11 +11,9 @@
 # Copyright (c) 2022 Red Hat GmbH
 # Author: Stefano Brivio <sbrivio@redhat.com>
 
-htools	git make go bats catatonit ip jq socat
+htools	git make go bats catatonit ip jq socat ./test/podman/bin/podman
 
 test	Podman system test with bats
 
-host	git -C __STATEDIR__ clone https://github.com/containers/podman.git
-host	make -C __STATEDIR__/podman
 hout	WD pwd
-host	PODMAN="__STATEDIR__/podman/bin/podman" CONTAINERS_HELPER_BINARY_DIR="__WD__" bats __STATEDIR__/podman/test/system/505-networking-pasta.bats
+host	PODMAN="test/podman/bin/podman" CONTAINERS_HELPER_BINARY_DIR="__WD__" bats test/podman/test/system/505-networking-pasta.bats
-- 
2.44.0


  parent reply	other threads:[~2024-03-21  4:57 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-21  4:57 [PATCH v2 0/5] Sandbox test suite and enable podman tests on more hosts David Gibson
2024-03-21  4:57 ` [PATCH v2 1/5] cppcheck: Explicitly give files to check David Gibson
2024-03-21  4:57 ` [PATCH v2 2/5] test: Make sure to update mbuto repository David Gibson
2024-03-21  4:57 ` David Gibson [this message]
2024-03-21  4:57 ` [PATCH v2 4/5] test: catatonit may not be in $PATH David Gibson
2024-03-21  4:57 ` [PATCH v2 5/5] test: Verify that podman tests are using the pasta binary we expect David Gibson
2024-04-05 18:08 ` [PATCH v2 0/5] Sandbox test suite and enable podman tests on more hosts Stefano Brivio

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240321045742.2267188-4-david@gibson.dropbear.id.au \
    --to=david@gibson.dropbear.id.au \
    --cc=passt-dev@passt.top \
    --cc=pholzing@redhat.com \
    --cc=sbrivio@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://passt.top/passt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for IMAP folder(s).