Commit c17b9046 authored by Koichiro Den's avatar Koichiro Den Committed by Bjorn Helgaas
Browse files

selftests: pci_endpoint: Add BAR subrange mapping test case



Add BAR_SUBRANGE_TEST to the pci_endpoint kselftest suite.

The test uses the PCITEST_BAR_SUBRANGE ioctl and will skip when the
chosen BAR is disabled (-ENODATA), when the endpoint/controller does not
support subrange mapping (-EOPNOTSUPP), or when the BAR is reserved for
the test register space (-EBUSY).

Signed-off-by: default avatarKoichiro Den <den@valinux.co.jp>
Signed-off-by: default avatarManivannan Sadhasivam <mani@kernel.org>
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/20260124145012.2794108-9-den@valinux.co.jp
parent 8cf82bb5
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -70,6 +70,23 @@ TEST_F(pci_ep_bar, BAR_TEST)
	EXPECT_FALSE(ret) TH_LOG("Test failed for BAR%d", variant->barno);
}

TEST_F(pci_ep_bar, BAR_SUBRANGE_TEST)
{
	int ret;

	pci_ep_ioctl(PCITEST_SET_IRQTYPE, PCITEST_IRQ_TYPE_AUTO);
	ASSERT_EQ(0, ret) TH_LOG("Can't set AUTO IRQ type");

	pci_ep_ioctl(PCITEST_BAR_SUBRANGE, variant->barno);
	if (ret == -ENODATA)
		SKIP(return, "BAR is disabled");
	if (ret == -EBUSY)
		SKIP(return, "BAR is test register space");
	if (ret == -EOPNOTSUPP)
		SKIP(return, "Subrange map is not supported");
	EXPECT_FALSE(ret) TH_LOG("Test failed for BAR%d", variant->barno);
}

FIXTURE(pci_ep_basic)
{
	int fd;