[PATCH i-g-t v2 2/2] tests/intel/xe_configfs: Test engines_allowed

Riana Tauro riana.tauro at intel.com
Fri Jun 6 11:16:46 UTC 2025


Hi Lucas

On 6/2/2025 9:54 PM, Lucas De Marchi wrote:
> Add tests for the parsing of engines_allowed configfs. This doesn't try
> to bind the driver and ensure only those engines are available. That's
> because the engine uapi instance doesn't necessarily match what is used
> for configfs configuration. Maybe we will need an engine map in debugfs
> for covering that.
> 
> Signed-off-by: Lucas De Marchi <lucas.demarchi at intel.com>
> ---
>   tests/intel/xe_configfs.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++
>   1 file changed, 56 insertions(+)
> 
> diff --git a/tests/intel/xe_configfs.c b/tests/intel/xe_configfs.c
> index 074cd04d9..e4fffd0b9 100644
> --- a/tests/intel/xe_configfs.c
> +++ b/tests/intel/xe_configfs.c
> @@ -10,6 +10,7 @@
>   #include "igt_fs.h"
>   #include "igt_kmod.h"
>   #include "igt_sysfs.h"
> +#include "xe/xe_query.h"
>   
>   /**
>    * TEST: Check configfs userspace API
> @@ -54,6 +55,49 @@ static void test_survivability_mode(int configfs_device_fd)
>   	close(fd);
>   }
>   
> +/**
> + * SUBTEST: engines-allowed-invalid
> + * Description: Validate engines_allowed attribute for invalid values
> + */
> +static void test_engines_allowed_invalid(int configfs_device_fd)
> +{
> +	static const char *values[] = {
> +		"xcs0",
> +		"abcsdcs0",
> +		"rcs0,abcsdcs0",
> +		"rcs9",
> +		"rcs10",
> +		"rcs0asdf",
> +	};
> +
> +	for (size_t i = 0; i < ARRAY_SIZE(values); i++) {
> +		const char *v = values[i];
> +
> +		igt_debug("Writing '%s' to engines_allowed\n", v);
> +		igt_assert(!igt_sysfs_set(configfs_device_fd, "engines_allowed", v));
> +	}
> +}
> +
> +/**
> + * SUBTEST: engines-allowed
> + * Description: Validate engines_allowed attribute
> + */
> +static void test_engines_allowed(int configfs_device_fd)
> +{
> +	static const char *values[] = {
> +		"rcs0", "rcs*", "rcs0,bcs0", "bcs0,rcs0",
> +		"bcs0\nrcs0", "bcs0\nrcs0\n",
> +		"rcs000",
> +	};
> +
> +	for (size_t i = 0; i < ARRAY_SIZE(values); i++) {
> +		const char *v = values[i];
> +
> +		igt_debug("Writing '%s' to engines_allowed\n", v);
> +		igt_assert(igt_sysfs_set(configfs_device_fd, "engines_allowed", v));
> +	}
> +}
> +
>   static int create_device_configfs_group(int configfs_fd, int fd)
>   {
>   	int configfs_device_fd;
> @@ -88,6 +132,18 @@ igt_main
>   		test_survivability_mode(configfs_device_fd);
>   	}
>   
> +	igt_describe("Validate engines_allowed with invalid options");
> +	igt_subtest("engines-allowed-invalid") {
> +		igt_install_exit_handler(restore);

Exit handler can be common in the fixture if it's needed by all tests

Otherwise, Looks good to me
Reviewed-by: Riana Tauro <riana.tauro at intel.com>
> +		test_engines_allowed_invalid(configfs_device_fd);
> +	}
> +
> +	igt_describe("Validate engines_allowed");
> +	igt_subtest("engines-allowed") {
> +		igt_install_exit_handler(restore);
> +		test_engines_allowed(configfs_device_fd);
> +	}
> +
>   	igt_fixture {
>   		igt_fs_remove_dir(configfs_fd, bus_addr);
>   		close(configfs_device_fd);
> 



More information about the igt-dev mailing list