[PATCH i-g-t v3 17/17] tests/kms_hdr: run on 3 outputs when testing suspend
Michał Grzelak <[email protected]>
| Newsgroups | org.freedesktop.lists.igt-dev |
|---|---|
| Organization | Intel Technology Poland sp. z o.o. - ul. Slowackiego 173, 80-298 Gdansk - KRS 101882 - NIP 957-07-52-316 |
| Message-ID | <[email protected]> |
Each suspend test is executed per output. Limit number of outputs tested to 3 by default. Add command-line option enabling execution on every output. v2->v3 - add patch Signed-off-by: Michał Grzelak <[email protected]> --- tests/kms_hdr.c | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/tests/kms_hdr.c b/tests/kms_hdr.c index e23d5e4691..95a7344ceb 100644 --- a/tests/kms_hdr.c +++ b/tests/kms_hdr.c @@ -74,6 +74,8 @@ IGT_TEST_DESCRIPTION("Test HDR metadata interfaces and bpc switch"); #define BACKLIGHT_PATH "/sys/class/backlight" +#define OUTPUT_LIMIT 2 + /* HDR test formats: 10bpc + FP16 */ static const uint32_t hdr_test_formats[] = { DRM_FORMAT_XRGB2101010, @@ -110,6 +112,7 @@ typedef struct data { int w; int h; igt_fb_t afb; + bool all_outputs; } data_t; /* Common test cleanup. */ @@ -250,6 +253,7 @@ static void test_bpc_switch(data_t *data, uint32_t flags) { igt_display_t *display = &data->display; igt_output_t *output; + int output_count = 0; igt_display_reset(display); @@ -273,6 +277,11 @@ static void test_bpc_switch(data_t *data, uint32_t flags) continue; } + if (!data->all_outputs && flags & TEST_SUSPEND && output_count > OUTPUT_LIMIT) + continue; + + output_count++; + for_each_crtc(display, crtc) { igt_output_set_crtc(output, crtc); @@ -674,10 +683,27 @@ static void test_hdr(data_t *data, uint32_t flags) } } -int igt_main() +static int opt_handler(int opt, int opt_index, void *opt_data) { - data_t data = {}; + data_t *data = opt_data; + + switch (opt) { + case 'o': + data->all_outputs = true; + break; + default: + return IGT_OPT_HANDLER_ERROR; + } + + return IGT_OPT_HANDLER_SUCCESS; +} +static const char help_str[] = " -o \tRun on all outputs instead of 3 when testing suspend.\n"; + +data_t data = {}; + +int igt_main_args("o", NULL, help_str, opt_handler, &data) +{ igt_fixture() { data.fd = drm_open_driver_master(DRIVER_ANY); -- 2.45.2