On 1/14/2025 16:08, Marcin Bernatowicz wrote:
By default, a dynamic subtest is executed with a random num_vfs to limit
execution time. Add an 'extended' command line option to enable
iteration over all possible num_vfs.

Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
Cc: Adam Miszczak <adam.miszczak@linux.intel.com>
Cc: Jakub Kolakowski <jakub1.kolakowski@intel.com>
Cc: Lukasz Laguna <lukasz.laguna@intel.com>
Cc: Michał Wajdeczko <michal.wajdeczko@intel.com>
Cc: Michał Winiarski <michal.winiarski@intel.com>
Cc: Narasimha C V <narasimha.c.v@intel.com>
Cc: Piotr Piórkowski <piotr.piorkowski@intel.com>
Cc: Satyanarayana K V P <satyanarayana.k.v.p@intel.com>
Cc: Tomasz Lis <tomasz.lis@intel.com>
---
 tests/intel/xe_sriov_auto_provisioning.c | 40 +++++++++++++++++++++++-
 1 file changed, 39 insertions(+), 1 deletion(-)

diff --git a/tests/intel/xe_sriov_auto_provisioning.c b/tests/intel/xe_sriov_auto_provisioning.c
index 1d2aa8624..e13eb3644 100644
--- a/tests/intel/xe_sriov_auto_provisioning.c
+++ b/tests/intel/xe_sriov_auto_provisioning.c
@@ -216,7 +216,30 @@ static void exclusive_ranges(int pf_fd, unsigned int num_vfs)
 	igt_fail_on_f(fails, "exclusive ranges check failed\n");
 }
 
-igt_main
+static bool extended_scope;
+
+static int opts_handler(int opt, int opt_index, void *data)
+{
+	switch (opt) {
+	case 'e':
+		extended_scope = true;
+		break;
+	default:
+		return IGT_OPT_HANDLER_ERROR;
+	}
+
+	return IGT_OPT_HANDLER_SUCCESS;
+}
+
+static const struct option long_opts[] = {
+	{ .name = "extended", .has_arg = false, .val = 'e', },
+	{}
+};
+
+static const char help_str[] =
+	"  --extended\tRun the extended test scope\n";

nit: "   -e, --extended\t ..."

+
+igt_main_args("", long_opts, help_str, opts_handler, NULL)
 {
 	enum xe_sriov_shared_res res;
 	unsigned int gt;
@@ -245,6 +268,11 @@ igt_main
 
 	igt_describe("Verify that auto-provisioned resources are allocated by PF driver in fairly manner");
 	igt_subtest_with_dynamic("fair-allocation") {
+		if (extended_scope)
+			for_each_sriov_num_vfs(pf_fd, num_vfs)
+				igt_dynamic_f("numvfs-%d", num_vfs)
+					fair_allocation(pf_fd, num_vfs);
+
 		for_random_sriov_num_vfs(pf_fd, num_vfs) {
 			igt_dynamic_f("numvfs-random") {
 				igt_debug("numvfs=%u\n", num_vfs);
@@ -255,6 +283,11 @@ igt_main
 
 	igt_describe("Verify that auto-provisioned resources are released once VFs are disabled");
 	igt_subtest_with_dynamic("resources-released-on-vfs-disabling") {
+		if (extended_scope)
+			for_each_sriov_num_vfs(pf_fd, num_vfs)
+				igt_dynamic_f("numvfs-%d", num_vfs)
+					resources_released_on_vfs_disabling(pf_fd, num_vfs);
+
 		for_random_sriov_num_vfs(pf_fd, num_vfs) {
 			igt_dynamic_f("numvfs-random") {
 				igt_debug("numvfs=%u\n", num_vfs);
@@ -269,6 +302,11 @@ igt_main
 
 		igt_skip_on(total_vfs < 2);
 
+		if (extended_scope)
+			for_each_sriov_num_vfs(pf_fd, num_vfs)
+				igt_dynamic_f("numvfs-%d", num_vfs)
+					exclusive_ranges(pf_fd, num_vfs);
+
 		for_random_sriov_vf_in_range(pf_fd, 2, total_vfs, num_vfs) {
 			igt_dynamic_f("numvfs-random") {
 				igt_debug("numvfs=%u\n", num_vfs);

One small nit, but looks good overall:
Reviewed-by: Lukasz Laguna <lukasz.laguna@intel.com>