[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