[igt-dev] [PATCH v5] core_getversion: Test for desired device

Helen Koike helen.koike at collabora.com
Sun Oct 8 22:21:55 UTC 2023



On 04/10/2023 14:21, Rob Clark wrote:
> From: Rob Clark <robdclark at chromium.org>
> 
> We discovered in drm/ci that if the drm device fails to probe, all the
> tests come back as "Skip" and the job is considered successful. Fix
> the getversion test to fail if there is no drm device or if the drm
> device does not match the expected device as specified by the optional
> IGT_FORCE_DRIVER environment variable.
> 
> Signed-off-by: Rob Clark <robdclark at chromium.org>
> Acked-by: Helen Koike <helen.koike at collabora.com>
> Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
> Tested-by: Helen Koike <helen.koike at collabora.com>
> ---
>   tests/core_getversion.c | 9 ++++++++-
>   1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/core_getversion.c b/tests/core_getversion.c
> index 32cb976e4923..8c8e0c9a3e5e 100644
> --- a/tests/core_getversion.c
> +++ b/tests/core_getversion.c
> @@ -48,14 +48,21 @@ igt_simple_main
>   {
>   	int fd;
>   	drmVersionPtr v;
> +	const char *name = getenv("IGT_FORCE_DRIVER");

I just realized we already use this env var here 
https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/blob/master/lib/igt_core.c?ref_type=heads#L1059


>   
> -	fd = drm_open_driver(DRIVER_ANY);
> +	fd = __drm_open_driver(DRIVER_ANY);
> +	igt_assert_fd(fd);

Which makes this assert to fail if the driver name doesn't match.

See here 
https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/blob/master/lib/drmtest.c#L263


>   	v = drmGetVersion(fd);
>   	igt_assert_neq(strlen(v->name), 0);
>   	igt_assert_neq(strlen(v->date), 0);
>   	igt_assert_neq(strlen(v->desc), 0);
>   	if (is_i915_device(fd))
>   		igt_assert_lte(1, v->version_major);
> +	if (name) {
> +		igt_assert_f(!strcmp(name, v->name),
> +			     "Expected driver \"%s\" but got \"%s\"\n",
> +			     name, v->name);
> +	}

Which means it won't reach this part, so I guess we can drop this.

What would be nice is to print the name of forced and dev_name in 
open_device() function (seeing the names was very handy in the logs, I 
was expecting this print if the env var wasn't matching and I didn't get 
it, I lost some life time debugging this heh).

Thanks,
Helen

>   
>   	drmFree(v);
>   	drm_close_driver(fd);


More information about the igt-dev mailing list