diff options
author | Patnana Venkata Sai <venkata.sai.patnana@intel.com> | 2021-02-19 17:11:08 +0530 |
---|---|---|
committer | Kunal Joshi <kunal1.joshi@intel.com> | 2021-02-22 15:59:23 +0530 |
commit | 8c8499c29dd2aa189c3d687e057ba4df326b1732 (patch) | |
tree | 471bdf33dc6afe9dd0ac0a947351dfe53cc9e060 /tests/kms_setmode.c | |
parent | e8fb87056cc4053dde25fe151df9ed3264adbf5a (diff) |
tests/kms_setmode: Restrict the test execution to two pipes
Restrict execution of all subtests to two pipes(default)
If you want to execute on all pipes need to pass extra argument(-e)
Example: ./build/tests/kms_setmode -e --r basic
V2: Handle when count_crtcs is less than 2 (petri)
V3: Add helper function for limit_crtc_count (petri)
Cc: Juha-Pekka Heikkilä <juha-pekka.heikkila@intel.com>
Cc: Modem Bhanuprakash <bhanuprakash.modem@intel.com>
Cc: Karthik B S <karthik.b.s@intel.com>
Cc: Latvala Petri <petri.latvala@intel.com>
Tested-by: Patnana Venkata Sai <venkata.sai.patnana@intel.com>
Signed-off-by: Patnana Venkata Sai <venkata.sai.patnana@intel.com>
Reviewed-by: Petri Latvala <petri.latvala@intel.com>
Diffstat (limited to 'tests/kms_setmode.c')
-rw-r--r-- | tests/kms_setmode.c | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/tests/kms_setmode.c b/tests/kms_setmode.c index 16648087..e356bfee 100644 --- a/tests/kms_setmode.c +++ b/tests/kms_setmode.c @@ -37,10 +37,14 @@ /* max combinations with repetitions */ #define MAX_COMBINATION_ELEMS MAX_CRTCS +/* restricted pipe count */ +#define CRTC_RESTRICT_CNT 2 + static int drm_fd; static drmModeRes *drm_resources; static int filter_test_id; static bool dry_run; +static bool all_pipes = false; const drmModeModeInfo mode_640_480 = { .name = "640x480", @@ -747,6 +751,14 @@ static void get_combinations(int n, int k, bool allow_repetitions, iterate_combinations(n, k, allow_repetitions, 0, 0, &comb, set); } +static int get_limit_crtc_count(int count_crtcs, bool all_pipe) +{ + if ((count_crtcs <= CRTC_RESTRICT_CNT) || all_pipe) + return count_crtcs; + else + return CRTC_RESTRICT_CNT; +} + static void test_combinations(const struct test_config *tconf, int connector_count) { @@ -754,6 +766,7 @@ static void test_combinations(const struct test_config *tconf, struct combination_set crtc_combs; struct connector_config *cconfs; int i; + int crtc_count = get_limit_crtc_count(tconf->resources->count_crtcs, all_pipes); if (connector_count > 2 && (tconf->flags & TEST_STEALING)) return; @@ -761,20 +774,19 @@ static void test_combinations(const struct test_config *tconf, igt_assert(tconf->resources); connector_combs.capacity = pow(tconf->resources->count_connectors, - tconf->resources->count_crtcs + 1); - crtc_combs.capacity = pow(tconf->resources->count_crtcs, - tconf->resources->count_crtcs + 1); - + crtc_count + 1); + crtc_combs.capacity = pow(crtc_count, + crtc_count + 1); connector_combs.items = malloc(connector_combs.capacity * sizeof(struct combination)); crtc_combs.items = malloc(crtc_combs.capacity * sizeof(struct combination)); get_combinations(tconf->resources->count_connectors, connector_count, false, &connector_combs); - get_combinations(tconf->resources->count_crtcs, connector_count, - true, &crtc_combs); + get_combinations(crtc_count, connector_count, true, &crtc_combs); igt_info("Testing: %s %d connector combinations\n", tconf->name, connector_count); + for (i = 0; i < connector_combs.count; i++) { int *connector_idxs; int ret; @@ -812,9 +824,10 @@ free_cconfs: static void run_test(const struct test_config *tconf) { int connector_num; + int crtc_count = get_limit_crtc_count(tconf->resources->count_crtcs, all_pipes); connector_num = tconf->flags & TEST_CLONE ? 2 : 1; - for (; connector_num <= tconf->resources->count_crtcs; connector_num++) + for (; connector_num <= crtc_count; connector_num++) test_combinations(tconf, connector_num); } @@ -824,6 +837,9 @@ static int opt_handler(int opt, int opt_index, void *data) case 'd': dry_run = true; break; + case 'e': + all_pipes = true; + break; case 't': filter_test_id = atoi(optarg); break; @@ -836,9 +852,10 @@ static int opt_handler(int opt, int opt_index, void *data) const char *help_str = " -d\t\tDon't run any test, only print what would be done. (still needs DRM access)\n" - " -t <test id>\tRun only the test with this id."; + " -t <test id>\tRun only the test with this id\n" + " -e \t\tRun on all pipes. (Default it will Run only two pipes)\n"; -igt_main_args("dt:", NULL, help_str, opt_handler, NULL) +igt_main_args("det:", NULL, help_str, opt_handler, NULL) { const struct { enum test_flags flags; |