summaryrefslogtreecommitdiff
path: root/tests/kms_pipe_crc_basic.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2020-11-19 09:41:30 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2020-11-19 13:41:30 +0000
commit23657a09849c99ecec6d292dfa30947b5b7e25b8 (patch)
tree35af24006e68fdd7ae8e408a8f400414d5a02e56 /tests/kms_pipe_crc_basic.c
parent55500abe99273049b0650f1a0d81a4f20f34da3b (diff)
tests/kms_pipe_crc_basic: Handle absent pipes for disable-crc-after-crtc
Check that the output exists prior to use, and in doing so prevent the test from exploding (without leaving an intelligible trace) when the connector is randomly lost. v2: Convert test_compare_crc to follow the same output requirements Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/2402 Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Reviewed-by: Petri Latvala <petri.latvala@intel.com>
Diffstat (limited to 'tests/kms_pipe_crc_basic.c')
-rw-r--r--tests/kms_pipe_crc_basic.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/tests/kms_pipe_crc_basic.c b/tests/kms_pipe_crc_basic.c
index e584dca9..db047c4c 100644
--- a/tests/kms_pipe_crc_basic.c
+++ b/tests/kms_pipe_crc_basic.c
@@ -71,6 +71,7 @@ static void test_read_crc(data_t *data, enum pipe pipe, unsigned flags)
igt_crc_t *crcs = NULL;
int c, j;
+ igt_require_pipe(display, pipe);
igt_display_require_output_on_pipe(display, pipe);
output = igt_get_single_output_for_pipe(display, pipe);
@@ -171,10 +172,11 @@ static void test_compare_crc(data_t *data, enum pipe pipe)
igt_crc_t ref_crc, crc;
igt_pipe_crc_t *pipe_crc = NULL;
struct igt_fb fb0, fb1;
- igt_output_t *output = igt_get_single_output_for_pipe(display, pipe);
+ igt_output_t *output;
- igt_require_f(output, "No connector found for pipe %s\n",
- kmstest_pipe_name(pipe));
+ igt_require_pipe(display, pipe);
+ igt_display_require_output_on_pipe(display, pipe);
+ output = igt_get_single_output_for_pipe(display, pipe);
igt_display_reset(display);
igt_output_set_pipe(output, pipe);
@@ -224,14 +226,21 @@ static void test_compare_crc(data_t *data, enum pipe pipe)
static void test_disable_crc_after_crtc(data_t *data, enum pipe pipe)
{
igt_display_t *display = &data->display;
- igt_output_t *output = igt_get_single_output_for_pipe(&data->display, pipe);
- igt_pipe_crc_t *pipe_crc = igt_pipe_crc_new(data->drm_fd, pipe, "auto");
- drmModeModeInfo *mode = igt_output_get_mode(output);
+ igt_pipe_crc_t *pipe_crc;
+ drmModeModeInfo *mode;
+ igt_output_t *output;
igt_crc_t crc[2];
+ igt_require_pipe(display, pipe);
+ igt_display_require_output_on_pipe(display, pipe);
+ output = igt_get_single_output_for_pipe(display, pipe);
+
+ pipe_crc = igt_pipe_crc_new(data->drm_fd, pipe, "auto");
+
igt_display_reset(display);
igt_output_set_pipe(output, pipe);
+ mode = igt_output_get_mode(output);
igt_create_color_fb(data->drm_fd,
mode->hdisplay, mode->vdisplay,
DRM_FORMAT_XRGB8888,
@@ -290,8 +299,6 @@ igt_main
test_read_crc(&data, pipe, TEST_SEQUENCE | TEST_NONBLOCK);
igt_subtest_f("suspend-read-crc-pipe-%s", kmstest_pipe_name(pipe)) {
- igt_require_pipe(&data.display, pipe);
-
test_read_crc(&data, pipe, 0);
igt_system_suspend_autoresume(SUSPEND_STATE_MEM,