All Virtuozzo development lists (kernel + QEMU)
 help / color / mirror / Atom feed
From: Konstantin Khorenko <khorenko@virtuozzo.com>
Subject: [Devel] [PATCH RHEL10 COMMIT] selftests/iommu: skip when the mock device is not there
Date: Tue, 25 Aug 2026 16:50:24 +0200	[thread overview]
Message-ID: <202608251450.67PEoOCW809722@f0.sw.ru> (raw)
In-Reply-To: <20260825115029.1074947-1-eva.kurchatova@virtuozzo.com>

The commit is pushed to "branch-rh10-6.12.0-211.39.1.16.x.vz10-ovz" and will appear at git at bitbucket.org:openvz/vzkernel.git
after rh10-6.12.0-211.39.1.16.9.vz10
------>
commit 1e648e17487b16486de22cefcd27672a454a1c3e
Author: Eva Kurchatova <eva.kurchatova@virtuozzo.com>
Date:   Tue Aug 25 14:50:17 2026 +0300

    selftests/iommu: skip when the mock device is not there
    
    Both iommufd tests need the mock device the iommufd module registers
    under CONFIG_IOMMUFD_TEST, and they open /dev/iommu in every fixture
    without checking, so on a kernel that does not provide it every case
    fails on the open.
    
    Checking the open is not enough on its own. /dev/iommu appears as soon
    as the iommufd module is loaded, which says nothing about the mock
    device: the release config here is CONFIG_IOMMUFD=m with
    CONFIG_IOMMUFD_TEST unset, so the open succeeds and the tests fail later
    in the ioctls that drive the mock device instead. Only the debug config
    sets CONFIG_IOMMUFD_TEST.
    
    /sys/bus/iommufd_mock covers both, it exists only once the module is
    loaded and the kernel was built with CONFIG_IOMMUFD_TEST. Check for it
    once before handing over to the harness, rather than in each of the
    fixtures, and report a skip. test_harness_run() is what TEST_HARNESS_MAIN
    calls anyway, so the tests still run exactly as they did.
    
    https://virtuozzo.atlassian.net/browse/VSTOR-142443
    Feature: fix selftests
    Signed-off-by: Eva Kurchatova <eva.kurchatova@virtuozzo.com>
    Reviewed-by: Konstantin Khorenko <khorenko@virtuozzo.com>
---
 tools/testing/selftests/iommu/iommufd.c          | 15 ++++++++++++++-
 tools/testing/selftests/iommu/iommufd_fail_nth.c | 15 ++++++++++++++-
 2 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/iommu/iommufd.c b/tools/testing/selftests/iommu/iommufd.c
index de348d6412791..5e0309a7ec675 100644
--- a/tools/testing/selftests/iommu/iommufd.c
+++ b/tools/testing/selftests/iommu/iommufd.c
@@ -3523,4 +3523,17 @@ TEST_F(iommufd_device_pasid, pasid_attach)
 	test_cmd_mock_domain_replace(self->stdev_id, self->ioas_id);
 }
 
-TEST_HARNESS_MAIN
+static bool iommufd_mock_available(void)
+{
+	return access("/sys/bus/iommufd_mock", F_OK) == 0;
+}
+
+int main(int argc, char **argv)
+{
+	if (!iommufd_mock_available())
+		ksft_exit_skip("no iommufd mock device, the tests need "
+			       "CONFIG_IOMMUFD_TEST=y and the iommufd "
+			       "module loaded\n");
+
+	return test_harness_run(argc, argv);
+}
diff --git a/tools/testing/selftests/iommu/iommufd_fail_nth.c b/tools/testing/selftests/iommu/iommufd_fail_nth.c
index 45c14323a6183..a76cd19970c01 100644
--- a/tools/testing/selftests/iommu/iommufd_fail_nth.c
+++ b/tools/testing/selftests/iommu/iommufd_fail_nth.c
@@ -745,4 +745,17 @@ TEST_FAIL_NTH(basic_fail_nth, device)
 	return 0;
 }
 
-TEST_HARNESS_MAIN
+static bool iommufd_mock_available(void)
+{
+	return access("/sys/bus/iommufd_mock", F_OK) == 0;
+}
+
+int main(int argc, char **argv)
+{
+	if (!iommufd_mock_available())
+		ksft_exit_skip("no iommufd mock device, the tests need "
+			       "CONFIG_IOMMUFD_TEST=y and the iommufd "
+			       "module loaded\n");
+
+	return test_harness_run(argc, argv);
+}

  reply	other threads:[~2026-08-25 14:50 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-25 11:50 [Devel] [PATCH vz10 v2] " Eva Kurchatova
2026-08-25 14:50 ` Konstantin Khorenko [this message]
2026-08-25 14:50 ` Konstantin Khorenko

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=202608251450.67PEoOCW809722@f0.sw.ru \
    --to=khorenko@virtuozzo.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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.