[Devel] [PATCH vz10 v2] selftests: pci_endpoint: skip when the test device is absent
Konstantin Khorenko
khorenko at virtuozzo.com
Wed Sep 23 21:03:05 MSK 2026
changelog v1-> v2?
--
Best regards,
Konstantin Khorenko,
Virtuozzo Linux Kernel Team
On 9/10/26 05:21, Eva Kurchatova wrote:
> Every fixture opens /dev/pci-endpoint-test.0 and asserts on the result,
> so on a machine that has no PCI endpoint test device all 17 cases fail
> in fixture setup rather than saying the hardware is not there.
>
> Fix by checking the device once before handing over to the harness.
> Doing it that way returns one SKIP line from the kselftest.
>
> https://virtuozzo.atlassian.net/browse/VSTOR-142446
> Feature: fix selftests
>
> Signed-off-by: Eva Kurchatova <eva.kurchatova at virtuozzo.com>
> ---
> .../selftests/pci_endpoint/pci_endpoint_test.c | 18 +++++++++++++++++-
> 1 file changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/pci_endpoint/pci_endpoint_test.c b/tools/testing/selftests/pci_endpoint/pci_endpoint_test.c
> index da0db0e7c969..a6106b6c52e3 100644
> --- a/tools/testing/selftests/pci_endpoint/pci_endpoint_test.c
> +++ b/tools/testing/selftests/pci_endpoint/pci_endpoint_test.c
> @@ -257,4 +257,20 @@ TEST_F(pcie_ep_doorbell, DOORBELL_TEST)
> pci_ep_ioctl(PCITEST_DOORBELL, 0);
> EXPECT_FALSE(ret) TH_LOG("Test failed for Doorbell\n");
> }
> -TEST_HARNESS_MAIN
> +
> +static bool test_device_available(void)
> +{
> + return access(test_device, F_OK) == 0;
> +}
> +
> +int main(int argc, char **argv)
> +{
> + /*
> + * Only the plain invocation, which is the one kselftest uses, turns
> + * into a skip, so that -l and -h keep working without the hardware.
> + */
> + if (argc == 1 && !test_device_available())
> + ksft_exit_skip("no PCI endpoint test device %s\n", test_device);
> +
> + return test_harness_run(argc, argv);
> +}
More information about the Devel
mailing list