public inbox for qemu-devel@nongnu.org
 help / color / mirror / Atom feed
* [PATCH v3 0/8] testing/next: gdb-multiarch, check-tcg, docker, vbsa tests (pre-PR)
@ 2026-03-20 15:50 Alex Bennée
  2026-03-20 15:51 ` [PATCH v3 1/8] tests/tcg: allow filtering of TCG tests Alex Bennée
                   ` (7 more replies)
  0 siblings, 8 replies; 11+ messages in thread
From: Alex Bennée @ 2026-03-20 15:50 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kyle Evans, Peter Maydell, Pierrick Bouvier, Warner Losh,
	qemu-arm, Thomas Huth, Peter Xu, Fabiano Rosas, Brad Smith,
	Thomas Huth, Daniel P. Berrangé, Philippe Mathieu-Daudé,
	Alex Bennée, Paolo Bonzini

This is the current status of my testing tree. The gdb-multiarch and
filtering changes should be pretty uncontroversial. I've also picked
up some stray testing patches that where hanging around on the list.

I'll roll the PR on Monday.

v3
  - gdb-multiarch tests should work now Phillipe's stuff is merged
  - grabbed Thomas' ncat and opensuse patches

v2

  - mostly tweaks to the vbsa test (see inline comments on commit)
  - dropped the zip and send_key patches

Alex.

Alex Bennée (3):
  tests/tcg: allow filtering of TCG tests
  tests/functional: allow tests to define decompression target
  tests/functional: add VBSA linux tests

Matheus Tavares Bernardino (1):
  tests/tcg/multiarch/linux-test: use portable alternative for dirent64

Thomas Huth (4):
  tests/lcitool: Remove python3-sqlite3 from the list of needed packages
  tests/lcitool: Update openSUSE to version 16
  tests/docker: Update the opensuse-leap container file to version 16
  tests: Replace ncat with socat in migration test and drop ncat from
    containers

 configure                                     |   1 -
 tests/tcg/multiarch/linux/linux-test.c        |   5 +-
 .../ci/setup/debian/debian-13-ppc64le.yaml    |   1 -
 .../ci/setup/ubuntu/ubuntu-2404-aarch64.yaml  |   1 -
 .../ci/setup/ubuntu/ubuntu-2404-s390x.yaml    |   1 -
 tests/Makefile.include                        |   8 +-
 tests/docker/dockerfiles/alpine.docker        |   1 -
 tests/docker/dockerfiles/centos9.docker       |   1 -
 .../dockerfiles/debian-amd64-cross.docker     |   1 -
 .../dockerfiles/debian-arm64-cross.docker     |   1 -
 .../dockerfiles/debian-armhf-cross.docker     |   1 -
 .../dockerfiles/debian-i686-cross.docker      |   1 -
 .../dockerfiles/debian-mips64el-cross.docker  |   1 -
 .../dockerfiles/debian-mipsel-cross.docker    |   1 -
 .../dockerfiles/debian-ppc64el-cross.docker   |   1 -
 .../dockerfiles/debian-riscv64-cross.docker   |   1 -
 .../dockerfiles/debian-s390x-cross.docker     |   1 -
 tests/docker/dockerfiles/debian.docker        |   1 -
 .../dockerfiles/fedora-rust-nightly.docker    |   1 -
 .../dockerfiles/fedora-win64-cross.docker     |   1 -
 tests/docker/dockerfiles/fedora.docker        |   1 -
 tests/docker/dockerfiles/opensuse-leap.docker |  35 +++--
 tests/docker/dockerfiles/ubuntu2204.docker    |   1 -
 tests/functional/aarch64/test_virt_vbsa.py    | 122 ++++++++++++++++--
 tests/functional/migration.py                 |   4 +-
 tests/functional/qemu_test/testcase.py        |   9 +-
 tests/lcitool/mappings.yml                    |  58 ---------
 tests/lcitool/projects/qemu.yml               |   2 -
 tests/lcitool/refresh                         |   2 +-
 tests/tcg/Makefile.target                     |  12 +-
 30 files changed, 156 insertions(+), 121 deletions(-)

-- 
2.47.3



^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v3 1/8] tests/tcg: allow filtering of TCG tests
  2026-03-20 15:50 [PATCH v3 0/8] testing/next: gdb-multiarch, check-tcg, docker, vbsa tests (pre-PR) Alex Bennée
@ 2026-03-20 15:51 ` Alex Bennée
  2026-03-20 15:51 ` [PATCH v3 2/8] tests/tcg/multiarch/linux-test: use portable alternative for dirent64 Alex Bennée
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Alex Bennée @ 2026-03-20 15:51 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kyle Evans, Peter Maydell, Pierrick Bouvier, Warner Losh,
	qemu-arm, Thomas Huth, Peter Xu, Fabiano Rosas, Brad Smith,
	Thomas Huth, Daniel P. Berrangé, Philippe Mathieu-Daudé,
	Alex Bennée, Paolo Bonzini

We have a lot of TCG tests now which can be fiddly if we just want to
check one particular test type across the targets. Introduce
TCG_TEST_FILTER to allow this:

  make check-tcg TCG_TEST_FILTER=gdb

to run all the gdb tests across the suites.

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/Makefile.include    |  8 +++++---
 tests/tcg/Makefile.target | 12 +++++++++++-
 2 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/tests/Makefile.include b/tests/Makefile.include
index 59b9a4b9220..f257288194d 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -16,9 +16,11 @@ check-help:
 	@echo " $(MAKE) check-tracetool               Run tracetool generator tests"
 	@echo " $(MAKE) check-block                   Run block tests"
 ifneq ($(filter $(all-check-targets), check-softfloat),)
-	@echo " $(MAKE) check-tcg                     Run TCG tests"
 	@echo " $(MAKE) check-softfloat               Run FPU emulation tests"
-	@echo " $(MAKE) run-tcg-tests-TARGET-softmmu  Run TCG tests for a given target"
+	@echo " $(MAKE) check-tcg                     Run TCG tests"
+	@echo " $(MAKE) run-tcg-tests-TARGET          Run TCG tests for a given target"
+	@echo
+	@echo "The variable TCG_TEST_FILTER will select the subset of matching tests."
 endif
 	@echo
 	@echo " $(MAKE) check-report.junit.xml        Generates an aggregated XML test report"
@@ -64,7 +66,7 @@ $(TCG_TESTS_TARGETS:%=build-tcg-tests-%): build-tcg-tests-%: $(BUILD_DIR)/tests/
 .PHONY: $(TCG_TESTS_TARGETS:%=run-tcg-tests-%)
 $(TCG_TESTS_TARGETS:%=run-tcg-tests-%): run-tcg-tests-%: build-tcg-tests-%
 	$(call quiet-command, \
-           $(MAKE) -C tests/tcg/$* $(SUBDIR_MAKEFLAGS) SPEED=$(SPEED) run, \
+           $(MAKE) -C tests/tcg/$* $(SUBDIR_MAKEFLAGS) SPEED=$(SPEED) TCG_TEST_FILTER=$(TCG_TEST_FILTER) run, \
         "RUN", "$* guest-tests")
 
 .PHONY: $(TCG_TESTS_TARGETS:%=clean-tcg-tests-%)
diff --git a/tests/tcg/Makefile.target b/tests/tcg/Makefile.target
index af72903f898..1b83824ff4e 100644
--- a/tests/tcg/Makefile.target
+++ b/tests/tcg/Makefile.target
@@ -254,8 +254,15 @@ endif
 gdb-%: %
 	gdb --args $(QEMU) $(QEMU_OPTS) $<
 
+# Filter tests based on TCG_TEST_FILTER if set
+ifdef TCG_TEST_FILTER
+FILTERED_RUN_TESTS=$(foreach test,$(RUN_TESTS),$(if $(findstring $(TCG_TEST_FILTER),$(test)),$(test)))
+else
+FILTERED_RUN_TESTS=$(RUN_TESTS)
+endif
+
 .PHONY: run
-run: $(RUN_TESTS)
+run: $(FILTERED_RUN_TESTS)
 
 clean:
 	rm -f $(TESTS) *.o $(CLEANFILES)
@@ -269,3 +276,6 @@ help:
 	@echo "Built with $(CC)"
 	@echo "Available tests:"
 	@$(foreach t,$(RUN_TESTS),echo "  $t";)
+	@echo ""
+	@echo "Environment variables:"
+	@echo "  TCG_TEST_FILTER=<pattern>  Filter tests matching pattern"
-- 
2.47.3



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v3 2/8] tests/tcg/multiarch/linux-test: use portable alternative for dirent64
  2026-03-20 15:50 [PATCH v3 0/8] testing/next: gdb-multiarch, check-tcg, docker, vbsa tests (pre-PR) Alex Bennée
  2026-03-20 15:51 ` [PATCH v3 1/8] tests/tcg: allow filtering of TCG tests Alex Bennée
@ 2026-03-20 15:51 ` Alex Bennée
  2026-03-24 13:15   ` Michael Tokarev
  2026-03-20 15:51 ` [PATCH v3 3/8] tests/functional: allow tests to define decompression target Alex Bennée
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 11+ messages in thread
From: Alex Bennée @ 2026-03-20 15:51 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kyle Evans, Peter Maydell, Pierrick Bouvier, Warner Losh,
	qemu-arm, Thomas Huth, Peter Xu, Fabiano Rosas, Brad Smith,
	Thomas Huth, Daniel P. Berrangé, Philippe Mathieu-Daudé,
	Alex Bennée, Paolo Bonzini, Matheus Tavares Bernardino,
	Brian Cain

From: Matheus Tavares Bernardino <matheus.bernardino@oss.qualcomm.com>

dirent64 and readdir64 are glibc-specific and not portable to other
C libraries such as musl. Define _FILE_OFFSET_BITS=64 instead, which
portably instructs all libc implementations to use 64-bit file offsets,
making readdir() and struct dirent equivalent to their 64-bit variants.

Signed-off-by: Matheus Tavares Bernardino <matheus.bernardino@oss.qualcomm.com>
Reviewed-by: Brian Cain <brian.cain@oss.qualcomm.com>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Message-ID: <af31d21c4d668cfb940ba4159f584fa6454c3d82.1772107448.git.matheus.bernardino@oss.qualcomm.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/tcg/multiarch/linux/linux-test.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/tests/tcg/multiarch/linux/linux-test.c b/tests/tcg/multiarch/linux/linux-test.c
index bf6e0fda262..0fa3165602f 100644
--- a/tests/tcg/multiarch/linux/linux-test.c
+++ b/tests/tcg/multiarch/linux/linux-test.c
@@ -16,6 +16,7 @@
  *  You should have received a copy of the GNU General Public License
  *  along with this program; if not, see <http://www.gnu.org/licenses/>.
  */
+#define _FILE_OFFSET_BITS 64
 #define _GNU_SOURCE
 #include <stdarg.h>
 #include <stdlib.h>
@@ -83,7 +84,7 @@ static void test_file(void)
     struct utimbuf tbuf;
     struct iovec vecs[2];
     DIR *dir;
-    struct dirent64 *de;
+    struct dirent *de;
     /* TODO: make common tempdir creation for tcg tests */
     char template[] = "/tmp/linux-test-XXXXXX";
     char *tmpdir = mkdtemp(template);
@@ -191,7 +192,7 @@ static void test_file(void)
         error("opendir");
     len = 0;
     for(;;) {
-        de = readdir64(dir);
+        de = readdir(dir);
         if (!de)
             break;
         if (strcmp(de->d_name, ".") != 0 &&
-- 
2.47.3



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v3 3/8] tests/functional: allow tests to define decompression target
  2026-03-20 15:50 [PATCH v3 0/8] testing/next: gdb-multiarch, check-tcg, docker, vbsa tests (pre-PR) Alex Bennée
  2026-03-20 15:51 ` [PATCH v3 1/8] tests/tcg: allow filtering of TCG tests Alex Bennée
  2026-03-20 15:51 ` [PATCH v3 2/8] tests/tcg/multiarch/linux-test: use portable alternative for dirent64 Alex Bennée
@ 2026-03-20 15:51 ` Alex Bennée
  2026-03-20 15:51 ` [PATCH v3 4/8] tests/functional: add VBSA linux tests Alex Bennée
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Alex Bennée @ 2026-03-20 15:51 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kyle Evans, Peter Maydell, Pierrick Bouvier, Warner Losh,
	qemu-arm, Thomas Huth, Peter Xu, Fabiano Rosas, Brad Smith,
	Thomas Huth, Daniel P. Berrangé, Philippe Mathieu-Daudé,
	Alex Bennée, Paolo Bonzini

When dealing with multi-stage decompression we want to specify the
target file name lest we just overload the cache name. It also allows
for something is little more friendly than the cache hash.

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/functional/qemu_test/testcase.py | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/tests/functional/qemu_test/testcase.py b/tests/functional/qemu_test/testcase.py
index c2c916f6077..eaec1bea138 100644
--- a/tests/functional/qemu_test/testcase.py
+++ b/tests/functional/qemu_test/testcase.py
@@ -35,7 +35,7 @@
 
 class QemuBaseTest(unittest.TestCase):
 
-    def uncompress(self, compressed, format=None):
+    def uncompress(self, compressed, target=None, format=None):
         '''
         @params compressed: filename, Asset, or file-like object to uncompress
         @params format: optional compression format (gzip, lzma)
@@ -52,8 +52,11 @@ def uncompress(self, compressed, format=None):
         if isinstance(compressed, Asset):
             compressed.fetch()
 
-        (name, _ext) = os.path.splitext(str(compressed))
-        uncompressed = self.scratch_file(os.path.basename(name))
+        if target is not None:
+            uncompressed = self.scratch_file(target)
+        else:
+            (name, _ext) = os.path.splitext(str(compressed))
+            uncompressed = self.scratch_file(os.path.basename(name))
 
         uncompress(compressed, uncompressed, format)
 
-- 
2.47.3



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v3 4/8] tests/functional: add VBSA linux tests
  2026-03-20 15:50 [PATCH v3 0/8] testing/next: gdb-multiarch, check-tcg, docker, vbsa tests (pre-PR) Alex Bennée
                   ` (2 preceding siblings ...)
  2026-03-20 15:51 ` [PATCH v3 3/8] tests/functional: allow tests to define decompression target Alex Bennée
@ 2026-03-20 15:51 ` Alex Bennée
  2026-03-20 15:51 ` [PATCH v3 5/8] tests/lcitool: Remove python3-sqlite3 from the list of needed packages Alex Bennée
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Alex Bennée @ 2026-03-20 15:51 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kyle Evans, Peter Maydell, Pierrick Bouvier, Warner Losh,
	qemu-arm, Thomas Huth, Peter Xu, Fabiano Rosas, Brad Smith,
	Thomas Huth, Daniel P. Berrangé, Philippe Mathieu-Daudé,
	Alex Bennée, Paolo Bonzini

This extends the VBSA test to run the linux tests. The sysarch-acs
test suite does provide some pre-built images which is good because
the tests require a patched kernel. However due to the structure of
the image we need to jump one or two hoops to get something useful:

  - download and double decompress (zip then xz) the image
  - navigate grub to launch the Linux Execution Environment
  - shutdown the system once tests are done
  - extract the logs from the MSDOS file system and parse them

It does make the code a bit ugly but it works for me at least. So far
the subset of tests run is limited but that might be solved by adding
some more devices to the PCIe bus to exercise the SMMU behaviour.

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

---
v2
  - dropped unused imports
  - use archive_extract for the zip step
  - drop virtuilization=on and smmu=max lines from config
  - use utf8 encodings for file access
  - don't use f"" strings when not needed
  - hack grub.cfg rather than using key presses
---
 tests/functional/aarch64/test_virt_vbsa.py | 122 +++++++++++++++++++--
 1 file changed, 111 insertions(+), 11 deletions(-)

diff --git a/tests/functional/aarch64/test_virt_vbsa.py b/tests/functional/aarch64/test_virt_vbsa.py
index 1dd4cecde1e..57bfe5d7af2 100755
--- a/tests/functional/aarch64/test_virt_vbsa.py
+++ b/tests/functional/aarch64/test_virt_vbsa.py
@@ -10,7 +10,8 @@
 # SPDX-License-Identifier: GPL-2.0-or-later
 
 import shutil
-from subprocess import check_call, DEVNULL
+import re
+from subprocess import check_call, check_output, DEVNULL
 
 from qemu_test import QemuSystemTest, Asset
 from qemu_test import get_qemu_img, skipIfMissingCommands
@@ -28,6 +29,20 @@ def wait_for_console_pattern(self, success_message, vm=None):
                                  failure_message='FAILED',
                                  vm=vm)
 
+    def append_firmware_blobs(self):
+        """
+        Setup QEMU firmware blobs for boot.
+        """
+        code_path = self.build_file('pc-bios', 'edk2-aarch64-code.fd')
+        vars_source = self.build_file('pc-bios', 'edk2-arm-vars.fd')
+        vars_path = self.scratch_file('vars.fd')
+        shutil.copy(vars_source, vars_path)
+
+        self.vm.add_args('-drive',
+                         f'if=pflash,format=raw,readonly=on,file={code_path}')
+        self.vm.add_args('-drive', f'if=pflash,format=raw,file={vars_path}')
+
+
     ASSET_VBSA_EFI = Asset(
         'https://github.com/ARM-software/sysarch-acs/raw/refs/heads/main'
         '/prebuilt_images/VBSA/v25.12_VBSA_0.7.0/Vbsa.efi',
@@ -45,20 +60,12 @@ def test_aarch64_vbsa_uefi_tests(self):
 
         self.vm.set_console()
 
-        # virt machine wi
+        # virt machine
         self.set_machine('virt')
         self.vm.add_args('-M', 'virt,gic-version=max,virtualization=on')
         self.vm.add_args('-cpu', 'max', '-m', '1024')
 
-        # We will use the QEMU firmware blobs to boot
-        code_path = self.build_file('pc-bios', 'edk2-aarch64-code.fd')
-        vars_source = self.build_file('pc-bios', 'edk2-arm-vars.fd')
-        vars_path = self.scratch_file('vars.fd')
-        shutil.copy(vars_source, vars_path)
-
-        self.vm.add_args('-drive',
-                         f'if=pflash,format=raw,readonly=on,file={code_path}')
-        self.vm.add_args('-drive', f'if=pflash,format=raw,file={vars_path}')
+        self.append_firmware_blobs()
 
         # Build an EFI FAT32 file-system for the UEFI tests
         vbsa_efi = self.ASSET_VBSA_EFI.fetch()
@@ -102,5 +109,98 @@ def test_aarch64_vbsa_uefi_tests(self):
         self.wait_for_console_pattern('VBSA tests complete. Reset the system.')
 
 
+    ASSET_SYSREADY_IMAGE = Asset(
+        'https://github.com/ARM-software/arm-systemready/'
+        'releases/download/v25.10_SR_3.1.0/systemready_acs_live_image.img.xz.zip',
+        'df2c359de15784b1da6a8e6f3c98a053ee38ac0b3f241ccea62e17db092eb03a')
+
+    ROOT_PROMPT = '/ # '
+
+    @skipIfMissingCommands("sfdisk", "jq", "sed")
+    def test_aarch64_vbsa_linux_tests(self):
+        """
+        Launch the Linux based VBSA test from the ACS prebuilt images.
+
+        We can use the pre-built images and then trigger the Linux
+        build and run the tests. We then need to slurp the results
+        from the partition.
+        """
+
+        self.vm.set_console()
+
+        # Plain virt machine
+        self.set_machine('virt')
+        self.vm.add_args('-M', 'virt,gic-version=max')
+        self.vm.add_args('-cpu', 'max', '-m', '1024', '-smp', '4')
+
+        self.append_firmware_blobs()
+
+        # First fetch, decompress (twice) and prepare the disk image
+        # on an NVME device (the kernel only has drivers for that).
+        self.archive_extract(self.ASSET_SYSREADY_IMAGE, format="zip")
+        disk_image_xz = self.scratch_file("systemready_acs_live_image.img.xz")
+        disk_image = self.uncompress(disk_image_xz)
+
+        self.vm.add_args('-device',
+                         'nvme,drive=hd,serial=QEMU_ROOT_SSD')
+        self.vm.add_args('-blockdev',
+                         f'driver=raw,node-name=hd,file.driver=file,file.filename={disk_image}')
+
+        # Tweak grub.cfg default to avoid manually navigating grub
+        grub_cfg = self.scratch_file("grub.cfg")
+        offset = int(check_output(f"sfdisk --json {disk_image} |"
+                                  "jq '.partitiontable.partitions[0].start * 512'",
+                                  shell=True))
+        check_call(["mcopy", "-i", f"{disk_image}@@{offset}",
+                    "::/EFI/BOOT/grub.cfg", grub_cfg])
+
+        with open(grub_cfg, 'a', encoding="utf8") as f:
+            f.write("set default='Linux Execution Enviroment'")
+
+        check_call(["mcopy", "-D", "o",  "-i", f"{disk_image}@@{offset}",
+                    grub_cfg, "::/EFI/BOOT/grub.cfg"])
+
+        # Launch QEMU and wait for grub and select the "Linux
+        # Execution Environment" so we can launch the test.
+
+        self.vm.launch()
+        self.wait_for_console_pattern(self.ROOT_PROMPT)
+        ec_and_wait(self, "/usr/bin/bsa.sh --skip "
+                    "B_REP_1,B_IEP_1,B_PCIe_11,B_MEM_06",
+                    self.ROOT_PROMPT)
+
+        # Now we can shutdown
+        ec_and_wait(self, "halt -f", "reboot: System halted")
+        self.vm.shutdown()
+
+        # and extract the test logs
+        bsa_app_res = self.scratch_file("BsaResultsApp.log")
+        bsa_kern_res = self.scratch_file("BsaResultsKernel.log")
+
+        check_call(["mcopy", "-i", f"{disk_image}@@{offset}",
+                    "::acs_results/Linux/BsaResultsApp.log", bsa_app_res])
+        check_call(["mcopy", "-i", f"{disk_image}@@{offset}",
+                    "::acs_results/Linux/BsaResultsKernel.log", bsa_kern_res])
+
+        # for now just check the kernel log for the result summary
+        test_result_re = re.compile(r"\[.*\]\s+(.+): Result:\s+(\w+)")
+        summary_re = re.compile(r"Total Tests Run =\s*(\d+), Tests Passed =\s*(\d+), Tests Failed =\s*(\d+)")
+
+        with open(bsa_kern_res, 'r', encoding="utf8") as f:
+            for line in f:
+                test_match = test_result_re.search(line)
+                if test_match:
+                    desc = test_match.group(1)
+                    status = test_match.group(2)
+                    self.log.info(f"Test: {desc} status: {status}")
+
+                match = summary_re.search(line)
+                if match:
+                    total, passed, failed = match.groups()
+
+                    if int(failed) > 0:
+                        self.fail(f"{failed} tests failed ({total})")
+
+
 if __name__ == '__main__':
     QemuSystemTest.main()
-- 
2.47.3



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v3 5/8] tests/lcitool: Remove python3-sqlite3 from the list of needed packages
  2026-03-20 15:50 [PATCH v3 0/8] testing/next: gdb-multiarch, check-tcg, docker, vbsa tests (pre-PR) Alex Bennée
                   ` (3 preceding siblings ...)
  2026-03-20 15:51 ` [PATCH v3 4/8] tests/functional: add VBSA linux tests Alex Bennée
@ 2026-03-20 15:51 ` Alex Bennée
  2026-03-20 15:51 ` [PATCH v3 6/8] tests/lcitool: Update openSUSE to version 16 Alex Bennée
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 11+ messages in thread
From: Alex Bennée @ 2026-03-20 15:51 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kyle Evans, Peter Maydell, Pierrick Bouvier, Warner Losh,
	qemu-arm, Thomas Huth, Peter Xu, Fabiano Rosas, Brad Smith,
	Thomas Huth, Daniel P. Berrangé, Philippe Mathieu-Daudé,
	Alex Bennée, Paolo Bonzini

From: Thomas Huth <thuth@redhat.com>

According to commit 7485508341f4 ("tests/docker: Add sqlite3 module to
openSUSE Leap container") that introduced this line, the sqlite3 package
was only required for Avocado. We don't use Avocado in QEMU anymore since
a while, so we can drop this package now from our list again.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-ID: <20260316135407.209072-2-thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/lcitool/projects/qemu.yml | 1 -
 1 file changed, 1 deletion(-)

diff --git a/tests/lcitool/projects/qemu.yml b/tests/lcitool/projects/qemu.yml
index 5e34e953514..b78a1d7f2e0 100644
--- a/tests/lcitool/projects/qemu.yml
+++ b/tests/lcitool/projects/qemu.yml
@@ -101,7 +101,6 @@ packages:
  - python3-setuptools
  - python3-sphinx
  - python3-sphinx-rtd-theme
- - python3-sqlite3
  - python3-tomli
  - python3-venv
  - python3-wheel
-- 
2.47.3



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v3 6/8] tests/lcitool: Update openSUSE to version 16
  2026-03-20 15:50 [PATCH v3 0/8] testing/next: gdb-multiarch, check-tcg, docker, vbsa tests (pre-PR) Alex Bennée
                   ` (4 preceding siblings ...)
  2026-03-20 15:51 ` [PATCH v3 5/8] tests/lcitool: Remove python3-sqlite3 from the list of needed packages Alex Bennée
@ 2026-03-20 15:51 ` Alex Bennée
  2026-03-20 15:51 ` [PATCH v3 7/8] tests/docker: Update the opensuse-leap container file " Alex Bennée
  2026-03-20 15:51 ` [PATCH v3 8/8] tests: Replace ncat with socat in migration test and drop ncat from containers Alex Bennée
  7 siblings, 0 replies; 11+ messages in thread
From: Alex Bennée @ 2026-03-20 15:51 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kyle Evans, Peter Maydell, Pierrick Bouvier, Warner Losh,
	qemu-arm, Thomas Huth, Peter Xu, Fabiano Rosas, Brad Smith,
	Thomas Huth, Daniel P. Berrangé, Philippe Mathieu-Daudé,
	Alex Bennée, Paolo Bonzini

From: Thomas Huth <thuth@redhat.com>

The first version of openSUSE 15 has been released in 2018, and
according to our support policy, we "support the most recent major
version at all times for up to five years after its initial release."

Since openSUSE 16 has been released a while ago, and openSUSE is
clearly older than 5 years already, it's time to update to version 16
now.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-ID: <20260316135407.209072-3-thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 configure                  |  1 -
 tests/lcitool/mappings.yml | 58 --------------------------------------
 tests/lcitool/refresh      |  2 +-
 3 files changed, 1 insertion(+), 60 deletions(-)

diff --git a/configure b/configure
index cd1dadd8bb2..f3603fd9160 100755
--- a/configure
+++ b/configure
@@ -929,7 +929,6 @@ if ! check_py_version "$python"; then
   error_exit "Cannot use '$python', Python >= 3.9 is required." \
              "Use --python=/path/to/python to specify a supported Python." \
              "Maybe try:" \
-             "  openSUSE Leap 15.3+: zypper install python39" \
              "  CentOS: dnf install python3.12"
 fi
 
diff --git a/tests/lcitool/mappings.yml b/tests/lcitool/mappings.yml
index 60618971584..62fe60d047f 100644
--- a/tests/lcitool/mappings.yml
+++ b/tests/lcitool/mappings.yml
@@ -3,70 +3,17 @@ mappings:
   bindgen:
     Ubuntu2204:
 
-  flake8:
-    OpenSUSELeap15:
-
   meson:
-    OpenSUSELeap15:
     # Use Meson from PyPI wherever Rust is enabled
     Debian:
     Fedora:
     Ubuntu:
 
-  python3:
-    OpenSUSELeap15: python311-base
-
-  python3-PyYAML:
-    OpenSUSELeap15:
-
-  python3-devel:
-    OpenSUSELeap15: python311-devel
-
-  python3-docutils:
-    OpenSUSELeap15:
-
-  python3-numpy:
-    OpenSUSELeap15:
-
-  python3-opencv:
-    OpenSUSELeap15:
-
-  python3-pillow:
-    OpenSUSELeap15:
-
-  python3-pip:
-    OpenSUSELeap15: python311-pip
-
-  python3-pillow:
-    OpenSUSELeap15:
-
-  python3-selinux:
-    OpenSUSELeap15:
-
-  python3-setuptools:
-    OpenSUSELeap15: python311-setuptools
-
-  python3-sphinx:
-    OpenSUSELeap15:
-
-  python3-sphinx-rtd-theme:
-    OpenSUSELeap15:
-
-  python3-sqlite3:
-    OpenSUSELeap15: python311
-
   python3-tomli:
     # test using tomllib
     apk:
     Fedora:
     Debian12:
-    OpenSUSELeap15:
-
-  python3-venv:
-    OpenSUSELeap15: python311-base
-
-  python3-wheel:
-    OpenSUSELeap15: python311-wheel
 
   rust:
     Debian12: rustc-web
@@ -79,12 +26,7 @@ pypi_mappings:
     default: meson==1.8.1
 
   # Drop packages that need devel headers
-  python3-numpy:
-    OpenSUSELeap15:
-
-  # see above
   python3-tomli:
     apk:
     Fedora:
     Debian12:
-    OpenSUSELeap15:
diff --git a/tests/lcitool/refresh b/tests/lcitool/refresh
index 79a280feab4..e4d01d792b7 100755
--- a/tests/lcitool/refresh
+++ b/tests/lcitool/refresh
@@ -226,7 +226,7 @@ try:
     generate_dockerfile("debian", "debian-13",
                         trailer="".join(debian13_extras))
     generate_dockerfile("fedora", "fedora-43")
-    generate_dockerfile("opensuse-leap", "opensuse-leap-15")
+    generate_dockerfile("opensuse-leap", "opensuse-leap-16")
     generate_dockerfile("ubuntu2204", "ubuntu-2204",
                         trailer="".join(ubuntu2204_rust_extras),
                         # https://bugs.launchpad.net/ubuntu/+source/rustc-1.83/+bug/2120318
-- 
2.47.3



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v3 7/8] tests/docker: Update the opensuse-leap container file to version 16
  2026-03-20 15:50 [PATCH v3 0/8] testing/next: gdb-multiarch, check-tcg, docker, vbsa tests (pre-PR) Alex Bennée
                   ` (5 preceding siblings ...)
  2026-03-20 15:51 ` [PATCH v3 6/8] tests/lcitool: Update openSUSE to version 16 Alex Bennée
@ 2026-03-20 15:51 ` Alex Bennée
  2026-03-20 15:51 ` [PATCH v3 8/8] tests: Replace ncat with socat in migration test and drop ncat from containers Alex Bennée
  7 siblings, 0 replies; 11+ messages in thread
From: Alex Bennée @ 2026-03-20 15:51 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kyle Evans, Peter Maydell, Pierrick Bouvier, Warner Losh,
	qemu-arm, Thomas Huth, Peter Xu, Fabiano Rosas, Brad Smith,
	Thomas Huth, Daniel P. Berrangé, Philippe Mathieu-Daudé,
	Alex Bennée, Paolo Bonzini

From: Thomas Huth <thuth@redhat.com>

Run "make lcitool-refresh" to update the container file to the latest
version of openSUSE.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Message-ID: <20260316135407.209072-4-thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/docker/dockerfiles/opensuse-leap.docker | 35 +++++++++----------
 1 file changed, 17 insertions(+), 18 deletions(-)

diff --git a/tests/docker/dockerfiles/opensuse-leap.docker b/tests/docker/dockerfiles/opensuse-leap.docker
index d693f2c6f85..66e90fa3634 100644
--- a/tests/docker/dockerfiles/opensuse-leap.docker
+++ b/tests/docker/dockerfiles/opensuse-leap.docker
@@ -1,13 +1,12 @@
 # THIS FILE WAS AUTO-GENERATED
 #
-#  $ lcitool dockerfile --layers all opensuse-leap-15 qemu
+#  $ lcitool dockerfile --layers all opensuse-leap-16 qemu
 #
 # https://gitlab.com/libvirt/libvirt-ci
 
-FROM registry.opensuse.org/opensuse/leap:15.6
+FROM registry.opensuse.org/opensuse/leap:16.0
 
 RUN zypper update -y && \
-    zypper addrepo -fc https://download.opensuse.org/update/leap/15.6/backports/openSUSE:Backports:SLE-15-SP6:Update.repo && \
     zypper install -y \
            Mesa-devel \
            alsa-lib-devel \
@@ -80,13 +79,14 @@ RUN zypper update -y && \
            libudev-devel \
            liburing-devel \
            libusb-1_0-devel \
+           libxdp-devel \
            libzstd-devel \
            llvm \
            lttng-ust-devel \
            lzo-devel \
            make \
+           meson \
            mtools \
-           ncat \
            ncurses-devel \
            ninja \
            openssh \
@@ -94,11 +94,17 @@ RUN zypper update -y && \
            pcre2-devel-static \
            pipewire-devel \
            pkgconfig \
-           python311 \
-           python311-base \
-           python311-pip \
-           python311-setuptools \
-           python311-wheel \
+           python3-Pillow \
+           python3-PyYAML \
+           python3-Sphinx \
+           python3-base \
+           python3-numpy \
+           python3-opencv \
+           python3-pip \
+           python3-setuptools \
+           python3-sphinx_rtd_theme \
+           python3-tomli \
+           python3-wheel \
            rdma-core-devel \
            rust \
            rust-bindgen \
@@ -110,7 +116,7 @@ RUN zypper update -y && \
            spice-protocol-devel \
            swtpm \
            systemd-devel \
-           systemtap-sdt-devel \
+           systemtap-dtrace \
            tar \
            tesseract-ocr \
            tesseract-ocr-traineddata-english \
@@ -133,18 +139,11 @@ RUN zypper update -y && \
     ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
     ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
 
-RUN /usr/bin/pip3.11 install \
-                     PyYAML \
-                     meson==1.8.1 \
-                     pillow \
-                     sphinx \
-                     sphinx-rtd-theme
-
 ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
 ENV LANG="en_US.UTF-8"
 ENV MAKE="/usr/bin/make"
 ENV NINJA="/usr/bin/ninja"
-ENV PYTHON="/usr/bin/python3.11"
+ENV PYTHON="/usr/bin/python3"
 # As a final step configure the user (if env is defined)
 ARG USER
 ARG UID
-- 
2.47.3



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v3 8/8] tests: Replace ncat with socat in migration test and drop ncat from containers
  2026-03-20 15:50 [PATCH v3 0/8] testing/next: gdb-multiarch, check-tcg, docker, vbsa tests (pre-PR) Alex Bennée
                   ` (6 preceding siblings ...)
  2026-03-20 15:51 ` [PATCH v3 7/8] tests/docker: Update the opensuse-leap container file " Alex Bennée
@ 2026-03-20 15:51 ` Alex Bennée
  7 siblings, 0 replies; 11+ messages in thread
From: Alex Bennée @ 2026-03-20 15:51 UTC (permalink / raw)
  To: qemu-devel
  Cc: Kyle Evans, Peter Maydell, Pierrick Bouvier, Warner Losh,
	qemu-arm, Thomas Huth, Peter Xu, Fabiano Rosas, Brad Smith,
	Thomas Huth, Daniel P. Berrangé, Philippe Mathieu-Daudé,
	Alex Bennée, Paolo Bonzini

From: Thomas Huth <thuth@redhat.com>

nmap / ncat has a somewhat problematic license (e.g. saying claiming
that derived work is also considered for software that "is designed
specifically to execute Covered Software and parse the results", e.g.
by executing ncat from your own program, you might already fall into
this category) - so for example in openSUSE 16, you can only find it
in the "non-OSS" repository.

We are currently only using it in the migration functional test, and
that likely does not fall into this "derived work" category yet (since
it is also doing some other stuff), but still, to be safe, we should
move away from using it now.

Unfortunately, switching to one of the other flavors of netcat is
also not a real option (see commit f700abbbeb6ab68a3446d1fb168a934d),
but socat should be a solid replacement here instead.

To avoid that someone else easily uses ncat again, let's also remove
it from our container files now.

Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Acked-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20260316183016.239526-1-thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 scripts/ci/setup/debian/debian-13-ppc64le.yaml        | 1 -
 scripts/ci/setup/ubuntu/ubuntu-2404-aarch64.yaml      | 1 -
 scripts/ci/setup/ubuntu/ubuntu-2404-s390x.yaml        | 1 -
 tests/docker/dockerfiles/alpine.docker                | 1 -
 tests/docker/dockerfiles/centos9.docker               | 1 -
 tests/docker/dockerfiles/debian-amd64-cross.docker    | 1 -
 tests/docker/dockerfiles/debian-arm64-cross.docker    | 1 -
 tests/docker/dockerfiles/debian-armhf-cross.docker    | 1 -
 tests/docker/dockerfiles/debian-i686-cross.docker     | 1 -
 tests/docker/dockerfiles/debian-mips64el-cross.docker | 1 -
 tests/docker/dockerfiles/debian-mipsel-cross.docker   | 1 -
 tests/docker/dockerfiles/debian-ppc64el-cross.docker  | 1 -
 tests/docker/dockerfiles/debian-riscv64-cross.docker  | 1 -
 tests/docker/dockerfiles/debian-s390x-cross.docker    | 1 -
 tests/docker/dockerfiles/debian.docker                | 1 -
 tests/docker/dockerfiles/fedora-rust-nightly.docker   | 1 -
 tests/docker/dockerfiles/fedora-win64-cross.docker    | 1 -
 tests/docker/dockerfiles/fedora.docker                | 1 -
 tests/docker/dockerfiles/ubuntu2204.docker            | 1 -
 tests/functional/migration.py                         | 4 ++--
 tests/lcitool/projects/qemu.yml                       | 1 -
 21 files changed, 2 insertions(+), 22 deletions(-)

diff --git a/scripts/ci/setup/debian/debian-13-ppc64le.yaml b/scripts/ci/setup/debian/debian-13-ppc64le.yaml
index 25d96cea460..b16d6d58f8e 100644
--- a/scripts/ci/setup/debian/debian-13-ppc64le.yaml
+++ b/scripts/ci/setup/debian/debian-13-ppc64le.yaml
@@ -101,7 +101,6 @@ packages:
   - make
   - mtools
   - multipath-tools
-  - ncat
   - nettle-dev
   - ninja-build
   - openssh-client
diff --git a/scripts/ci/setup/ubuntu/ubuntu-2404-aarch64.yaml b/scripts/ci/setup/ubuntu/ubuntu-2404-aarch64.yaml
index 6a72eabca9e..b58fcda0fa3 100644
--- a/scripts/ci/setup/ubuntu/ubuntu-2404-aarch64.yaml
+++ b/scripts/ci/setup/ubuntu/ubuntu-2404-aarch64.yaml
@@ -102,7 +102,6 @@ packages:
   - make
   - mtools
   - multipath-tools
-  - ncat
   - nettle-dev
   - ninja-build
   - openssh-client
diff --git a/scripts/ci/setup/ubuntu/ubuntu-2404-s390x.yaml b/scripts/ci/setup/ubuntu/ubuntu-2404-s390x.yaml
index 6001da12504..fa439db4ca1 100644
--- a/scripts/ci/setup/ubuntu/ubuntu-2404-s390x.yaml
+++ b/scripts/ci/setup/ubuntu/ubuntu-2404-s390x.yaml
@@ -100,7 +100,6 @@ packages:
   - make
   - mtools
   - multipath-tools
-  - ncat
   - nettle-dev
   - ninja-build
   - openssh-client
diff --git a/tests/docker/dockerfiles/alpine.docker b/tests/docker/dockerfiles/alpine.docker
index c0303feb48a..a7ee85fcda7 100644
--- a/tests/docker/dockerfiles/alpine.docker
+++ b/tests/docker/dockerfiles/alpine.docker
@@ -76,7 +76,6 @@ RUN apk update && \
         ndctl-dev \
         net-tools \
         nettle-dev \
-        nmap-ncat \
         numactl-dev \
         openssh-client \
         pcre2-dev \
diff --git a/tests/docker/dockerfiles/centos9.docker b/tests/docker/dockerfiles/centos9.docker
index 6b1aa6dc0de..41a1225856e 100644
--- a/tests/docker/dockerfiles/centos9.docker
+++ b/tests/docker/dockerfiles/centos9.docker
@@ -87,7 +87,6 @@ RUN dnf --quiet distro-sync -y && \
                 ncurses-devel \
                 nettle-devel \
                 ninja-build \
-                nmap-ncat \
                 numactl-devel \
                 openssh-clients \
                 pam-devel \
diff --git a/tests/docker/dockerfiles/debian-amd64-cross.docker b/tests/docker/dockerfiles/debian-amd64-cross.docker
index c386b658b04..6fad808e1b6 100644
--- a/tests/docker/dockerfiles/debian-amd64-cross.docker
+++ b/tests/docker/dockerfiles/debian-amd64-cross.docker
@@ -37,7 +37,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       locales \
                       make \
                       mtools \
-                      ncat \
                       ninja-build \
                       openssh-client \
                       pkgconf \
diff --git a/tests/docker/dockerfiles/debian-arm64-cross.docker b/tests/docker/dockerfiles/debian-arm64-cross.docker
index 9d83ab7a32e..889d8a1a755 100644
--- a/tests/docker/dockerfiles/debian-arm64-cross.docker
+++ b/tests/docker/dockerfiles/debian-arm64-cross.docker
@@ -37,7 +37,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       locales \
                       make \
                       mtools \
-                      ncat \
                       ninja-build \
                       openssh-client \
                       pkgconf \
diff --git a/tests/docker/dockerfiles/debian-armhf-cross.docker b/tests/docker/dockerfiles/debian-armhf-cross.docker
index c2077ec7a2c..988c87075f6 100644
--- a/tests/docker/dockerfiles/debian-armhf-cross.docker
+++ b/tests/docker/dockerfiles/debian-armhf-cross.docker
@@ -37,7 +37,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       locales \
                       make \
                       mtools \
-                      ncat \
                       ninja-build \
                       openssh-client \
                       pkgconf \
diff --git a/tests/docker/dockerfiles/debian-i686-cross.docker b/tests/docker/dockerfiles/debian-i686-cross.docker
index db9f04ee93d..d720ebb0bca 100644
--- a/tests/docker/dockerfiles/debian-i686-cross.docker
+++ b/tests/docker/dockerfiles/debian-i686-cross.docker
@@ -37,7 +37,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       locales \
                       make \
                       mtools \
-                      ncat \
                       ninja-build \
                       openssh-client \
                       pkgconf \
diff --git a/tests/docker/dockerfiles/debian-mips64el-cross.docker b/tests/docker/dockerfiles/debian-mips64el-cross.docker
index 7758afd80aa..90a2ef15574 100644
--- a/tests/docker/dockerfiles/debian-mips64el-cross.docker
+++ b/tests/docker/dockerfiles/debian-mips64el-cross.docker
@@ -37,7 +37,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       locales \
                       make \
                       mtools \
-                      ncat \
                       ninja-build \
                       openssh-client \
                       pkgconf \
diff --git a/tests/docker/dockerfiles/debian-mipsel-cross.docker b/tests/docker/dockerfiles/debian-mipsel-cross.docker
index cba7f43870f..b7e36b3d974 100644
--- a/tests/docker/dockerfiles/debian-mipsel-cross.docker
+++ b/tests/docker/dockerfiles/debian-mipsel-cross.docker
@@ -37,7 +37,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       locales \
                       make \
                       mtools \
-                      ncat \
                       ninja-build \
                       openssh-client \
                       pkgconf \
diff --git a/tests/docker/dockerfiles/debian-ppc64el-cross.docker b/tests/docker/dockerfiles/debian-ppc64el-cross.docker
index 24f946d1441..a70fbee0c1d 100644
--- a/tests/docker/dockerfiles/debian-ppc64el-cross.docker
+++ b/tests/docker/dockerfiles/debian-ppc64el-cross.docker
@@ -37,7 +37,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       locales \
                       make \
                       mtools \
-                      ncat \
                       ninja-build \
                       openssh-client \
                       pkgconf \
diff --git a/tests/docker/dockerfiles/debian-riscv64-cross.docker b/tests/docker/dockerfiles/debian-riscv64-cross.docker
index f476cf65eaa..9ada5ecce0d 100644
--- a/tests/docker/dockerfiles/debian-riscv64-cross.docker
+++ b/tests/docker/dockerfiles/debian-riscv64-cross.docker
@@ -37,7 +37,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       locales \
                       make \
                       mtools \
-                      ncat \
                       ninja-build \
                       openssh-client \
                       pkgconf \
diff --git a/tests/docker/dockerfiles/debian-s390x-cross.docker b/tests/docker/dockerfiles/debian-s390x-cross.docker
index a60b4ab01d1..a1de94ff9aa 100644
--- a/tests/docker/dockerfiles/debian-s390x-cross.docker
+++ b/tests/docker/dockerfiles/debian-s390x-cross.docker
@@ -37,7 +37,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       locales \
                       make \
                       mtools \
-                      ncat \
                       ninja-build \
                       openssh-client \
                       pkgconf \
diff --git a/tests/docker/dockerfiles/debian.docker b/tests/docker/dockerfiles/debian.docker
index 6c6ab0256ea..c34923b253d 100644
--- a/tests/docker/dockerfiles/debian.docker
+++ b/tests/docker/dockerfiles/debian.docker
@@ -109,7 +109,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       make \
                       mtools \
                       multipath-tools \
-                      ncat \
                       nettle-dev \
                       ninja-build \
                       openssh-client \
diff --git a/tests/docker/dockerfiles/fedora-rust-nightly.docker b/tests/docker/dockerfiles/fedora-rust-nightly.docker
index 38381ef8f59..8766f952ac8 100644
--- a/tests/docker/dockerfiles/fedora-rust-nightly.docker
+++ b/tests/docker/dockerfiles/fedora-rust-nightly.docker
@@ -96,7 +96,6 @@ exec "$@"\n' > /usr/bin/nosync && \
                        ncurses-devel \
                        nettle-devel \
                        ninja-build \
-                       nmap-ncat \
                        numactl-devel \
                        openssh-clients \
                        pam-devel \
diff --git a/tests/docker/dockerfiles/fedora-win64-cross.docker b/tests/docker/dockerfiles/fedora-win64-cross.docker
index 818485c4ba2..751789e849b 100644
--- a/tests/docker/dockerfiles/fedora-win64-cross.docker
+++ b/tests/docker/dockerfiles/fedora-win64-cross.docker
@@ -42,7 +42,6 @@ exec "$@"\n' > /usr/bin/nosync && \
                        make \
                        mtools \
                        ninja-build \
-                       nmap-ncat \
                        openssh-clients \
                        python3 \
                        python3-PyYAML \
diff --git a/tests/docker/dockerfiles/fedora.docker b/tests/docker/dockerfiles/fedora.docker
index 32aaf01aff4..ec787aa7027 100644
--- a/tests/docker/dockerfiles/fedora.docker
+++ b/tests/docker/dockerfiles/fedora.docker
@@ -96,7 +96,6 @@ exec "$@"\n' > /usr/bin/nosync && \
                        ncurses-devel \
                        nettle-devel \
                        ninja-build \
-                       nmap-ncat \
                        numactl-devel \
                        openssh-clients \
                        pam-devel \
diff --git a/tests/docker/dockerfiles/ubuntu2204.docker b/tests/docker/dockerfiles/ubuntu2204.docker
index 44e763f571a..fb5b03e7a1b 100644
--- a/tests/docker/dockerfiles/ubuntu2204.docker
+++ b/tests/docker/dockerfiles/ubuntu2204.docker
@@ -107,7 +107,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
                       make \
                       mtools \
                       multipath-tools \
-                      ncat \
                       nettle-dev \
                       ninja-build \
                       openssh-client \
diff --git a/tests/functional/migration.py b/tests/functional/migration.py
index e995328e833..2395119d6c6 100644
--- a/tests/functional/migration.py
+++ b/tests/functional/migration.py
@@ -84,6 +84,6 @@ def migration_with_exec(self):
             self.skipTest('ncat is not available')
         with Ports() as ports:
             free_port = self._get_free_port(ports)
-            dst_uri = 'exec:ncat -l localhost %u' % free_port
-            src_uri = 'exec:ncat localhost %u' % free_port
+            dst_uri = 'exec:socat TCP-LISTEN:%u -' % free_port
+            src_uri = 'exec:socat - TCP:localhost:%u' % free_port
             self.migrate(dst_uri, src_uri)
diff --git a/tests/lcitool/projects/qemu.yml b/tests/lcitool/projects/qemu.yml
index b78a1d7f2e0..131d9c4ec81 100644
--- a/tests/lcitool/projects/qemu.yml
+++ b/tests/lcitool/projects/qemu.yml
@@ -83,7 +83,6 @@ packages:
  - meson
  - mtools
  - ncursesw
- - netcat
  - nettle
  - ninja
  - nsis
-- 
2.47.3



^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH v3 2/8] tests/tcg/multiarch/linux-test: use portable alternative for dirent64
  2026-03-20 15:51 ` [PATCH v3 2/8] tests/tcg/multiarch/linux-test: use portable alternative for dirent64 Alex Bennée
@ 2026-03-24 13:15   ` Michael Tokarev
  2026-03-24 13:27     ` Peter Maydell
  0 siblings, 1 reply; 11+ messages in thread
From: Michael Tokarev @ 2026-03-24 13:15 UTC (permalink / raw)
  To: Alex Bennée, qemu-devel
  Cc: Kyle Evans, Peter Maydell, Pierrick Bouvier, Warner Losh,
	qemu-arm, Thomas Huth, Peter Xu, Fabiano Rosas, Brad Smith,
	Thomas Huth, Daniel P. Berrangé, Philippe Mathieu-Daudé,
	Paolo Bonzini, Matheus Tavares Bernardino, Brian Cain

On 20.03.2026 18:51, Alex Bennée wrote:
> From: Matheus Tavares Bernardino <matheus.bernardino@oss.qualcomm.com>
> 
> dirent64 and readdir64 are glibc-specific and not portable to other
> C libraries such as musl. Define _FILE_OFFSET_BITS=64 instead, which
> portably instructs all libc implementations to use 64-bit file offsets,
> making readdir() and struct dirent equivalent to their 64-bit variants.


> --- a/tests/tcg/multiarch/linux/linux-test.c
> +++ b/tests/tcg/multiarch/linux/linux-test.c
> @@ -16,6 +16,7 @@
>    *  You should have received a copy of the GNU General Public License
>    *  along with this program; if not, see <http://www.gnu.org/licenses/>.
>    */
> +#define _FILE_OFFSET_BITS 64

Afiacs, qemu has always been built with file_offset_bits=64, one way
or another:

meson.build:
   '-D_GNU_SOURCE', '-D_FILE_OFFSET_BITS=64', '-D_LARGEFILE_SOURCE',


Now, with only 64bit host support, defining _FILE_OFFSET_BITS to 64
makes no difference, since it is already 64 by default.  So it looks
like this change is unnecessary.  The only change needed there was
to drop 64 from readdir/dirent.

FWIW.

/mjt


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH v3 2/8] tests/tcg/multiarch/linux-test: use portable alternative for dirent64
  2026-03-24 13:15   ` Michael Tokarev
@ 2026-03-24 13:27     ` Peter Maydell
  0 siblings, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2026-03-24 13:27 UTC (permalink / raw)
  To: Michael Tokarev
  Cc: Alex Bennée, qemu-devel, Kyle Evans, Pierrick Bouvier,
	Warner Losh, qemu-arm, Thomas Huth, Peter Xu, Fabiano Rosas,
	Brad Smith, Thomas Huth, Daniel P. Berrangé,
	Philippe Mathieu-Daudé, Paolo Bonzini,
	Matheus Tavares Bernardino, Brian Cain

On Tue, 24 Mar 2026 at 13:15, Michael Tokarev <mjt@tls.msk.ru> wrote:
>
> On 20.03.2026 18:51, Alex Bennée wrote:
> > From: Matheus Tavares Bernardino <matheus.bernardino@oss.qualcomm.com>
> >
> > dirent64 and readdir64 are glibc-specific and not portable to other
> > C libraries such as musl. Define _FILE_OFFSET_BITS=64 instead, which
> > portably instructs all libc implementations to use 64-bit file offsets,
> > making readdir() and struct dirent equivalent to their 64-bit variants.
>
>
> > --- a/tests/tcg/multiarch/linux/linux-test.c
> > +++ b/tests/tcg/multiarch/linux/linux-test.c
> > @@ -16,6 +16,7 @@
> >    *  You should have received a copy of the GNU General Public License
> >    *  along with this program; if not, see <http://www.gnu.org/licenses/>.
> >    */
> > +#define _FILE_OFFSET_BITS 64
>
> Afiacs, qemu has always been built with file_offset_bits=64, one way
> or another:
>
> meson.build:
>    '-D_GNU_SOURCE', '-D_FILE_OFFSET_BITS=64', '-D_LARGEFILE_SOURCE',

Those control the compiler flags for QEMU itself. This is
a standalone test program built for the guest, and it isn't
built directly by meson.

> Now, with only 64bit host support, defining _FILE_OFFSET_BITS to 64
> makes no difference, since it is already 64 by default.

We still support 32-bit guests, though, and this is being built
for the guest architecture.

thanks
-- PMM


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2026-03-24 13:28 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-20 15:50 [PATCH v3 0/8] testing/next: gdb-multiarch, check-tcg, docker, vbsa tests (pre-PR) Alex Bennée
2026-03-20 15:51 ` [PATCH v3 1/8] tests/tcg: allow filtering of TCG tests Alex Bennée
2026-03-20 15:51 ` [PATCH v3 2/8] tests/tcg/multiarch/linux-test: use portable alternative for dirent64 Alex Bennée
2026-03-24 13:15   ` Michael Tokarev
2026-03-24 13:27     ` Peter Maydell
2026-03-20 15:51 ` [PATCH v3 3/8] tests/functional: allow tests to define decompression target Alex Bennée
2026-03-20 15:51 ` [PATCH v3 4/8] tests/functional: add VBSA linux tests Alex Bennée
2026-03-20 15:51 ` [PATCH v3 5/8] tests/lcitool: Remove python3-sqlite3 from the list of needed packages Alex Bennée
2026-03-20 15:51 ` [PATCH v3 6/8] tests/lcitool: Update openSUSE to version 16 Alex Bennée
2026-03-20 15:51 ` [PATCH v3 7/8] tests/docker: Update the opensuse-leap container file " Alex Bennée
2026-03-20 15:51 ` [PATCH v3 8/8] tests: Replace ncat with socat in migration test and drop ncat from containers Alex Bennée

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox