public inbox for igt-dev@lists.freedesktop.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 1/7] tests/kms_vblank: Make sure that we have a mode set
@ 2020-04-07 13:16 Arkadiusz Hiler
  2020-04-07 13:16 ` [igt-dev] [PATCH i-g-t 2/7] tests/kms_dp_dsc: Explicitly enable mode before DSC checks Arkadiusz Hiler
                   ` (8 more replies)
  0 siblings, 9 replies; 11+ messages in thread
From: Arkadiusz Hiler @ 2020-04-07 13:16 UTC (permalink / raw)
  To: igt-dev

Subtest 'invalid' was depending on a "leftover" mode set by something
external (usually fbcon) in order to work.

Let's make the test more robust by setting the mode explicitly.

v2: set flag for the pipe we are using (Imre)

Cc: Imre Deak <imre.deak@intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
 tests/kms_vblank.c | 27 ++++++++++++++++++++++-----
 1 file changed, 22 insertions(+), 5 deletions(-)

diff --git a/tests/kms_vblank.c b/tests/kms_vblank.c
index a895ab80..7b5f3426 100644
--- a/tests/kms_vblank.c
+++ b/tests/kms_vblank.c
@@ -472,12 +472,26 @@ static void invalid_subtest(data_t *data, int fd)
 {
 	union drm_wait_vblank vbl;
 	unsigned long valid_flags;
+	enum pipe pipe;
+	igt_output_t* output;
+	bool found = false;
+	int base_flags;
+
+	/* we need to have a mode set, otherwise we will get EINVAL no matter what */
+	for_each_pipe_with_single_output(&data->display, pipe, output) {
+		data->pipe = pipe;
+		found = true;
+		break;
+	}
+
+	igt_require_f(found, "No outputs connected = no vblanks\n");
+	prepare_crtc(data, fd, output);
 
-	igt_display_require_output_on_pipe(&data->display, 0);
+	base_flags = _DRM_VBLANK_RELATIVE | kmstest_get_vbl_flag(data->pipe);
 
 	/* First check all is well with a simple query */
 	memset(&vbl, 0, sizeof(vbl));
-	vbl.request.type = DRM_VBLANK_RELATIVE;
+	vbl.request.type = base_flags;
 	igt_assert_eq(wait_vblank(fd, &vbl), 0);
 
 	valid_flags = (_DRM_VBLANK_TYPES_MASK |
@@ -486,7 +500,9 @@ static void invalid_subtest(data_t *data, int fd)
 
 	/* pick some interesting invalid permutations */
 	memset(&vbl, 0, sizeof(vbl));
-	vbl.request.type = _DRM_VBLANK_RELATIVE | ~valid_flags;
+	vbl.request.type = base_flags;
+	vbl.request.type |= kmstest_get_vbl_flag(data->pipe);
+	vbl.request.type |= ~valid_flags;
 	igt_assert_eq(wait_vblank(fd, &vbl), -EINVAL);
 	for (int bit = 0; bit < 32; bit++) {
 		int err;
@@ -495,7 +511,7 @@ static void invalid_subtest(data_t *data, int fd)
 			continue;
 
 		memset(&vbl, 0, sizeof(vbl));
-		vbl.request.type = _DRM_VBLANK_RELATIVE | (1 << bit);
+		vbl.request.type = base_flags | (1 << bit);
 		err = wait_vblank(fd, &vbl);
 		igt_assert_f(err == -EINVAL,
 			     "vblank wait with invalid request.type bit %d [0x%08x] did not report -EINVAL, got %d\n",
@@ -504,10 +520,11 @@ static void invalid_subtest(data_t *data, int fd)
 
 	/* check the maximum pipe, nobody should have that many pipes! */
 	memset(&vbl, 0, sizeof(vbl));
-	vbl.request.type = _DRM_VBLANK_RELATIVE;
+	vbl.request.type = base_flags;
 	vbl.request.type |= _DRM_VBLANK_SECONDARY;
 	vbl.request.type |= _DRM_VBLANK_FLAGS_MASK;
 	igt_assert_eq(wait_vblank(fd, &vbl), -EINVAL);
+	cleanup_crtc(data, fd, output);
 }
 
 igt_main
-- 
2.24.1

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2020-04-08 14:23 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-04-07 13:16 [igt-dev] [PATCH i-g-t 1/7] tests/kms_vblank: Make sure that we have a mode set Arkadiusz Hiler
2020-04-07 13:16 ` [igt-dev] [PATCH i-g-t 2/7] tests/kms_dp_dsc: Explicitly enable mode before DSC checks Arkadiusz Hiler
2020-04-07 13:16 ` [igt-dev] [PATCH i-g-t 3/7] lib/igt_psr: Set mode before checking if PSR is supported Arkadiusz Hiler
2020-04-07 13:16 ` [igt-dev] [PATCH i-g-t 4/7] lib/kms: Commit reasonable defaults on display init Arkadiusz Hiler
2020-04-07 13:16 ` [igt-dev] [PATCH i-g-t 5/7] lib/kms: Reprobe connector state after disabling modest Arkadiusz Hiler
2020-04-07 13:19 ` [igt-dev] [PATCH i-g-t 6/7] tests/kms_chamelium: Issue disabling modeset when resetting state Arkadiusz Hiler
2020-04-07 13:19 ` [igt-dev] [PATCH i-g-t 7/7] tests/kms_chamelium: Test HPD for different mode handling scenarios Arkadiusz Hiler
2020-04-07 13:44 ` [igt-dev] ✗ GitLab.Pipeline: warning for series starting with [i-g-t,1/7] tests/kms_vblank: Make sure that we have a mode set Patchwork
2020-04-07 14:08 ` [igt-dev] ✗ Fi.CI.BAT: failure " Patchwork
2020-04-08 14:15 ` [igt-dev] [PATCH i-g-t 1/7] " Imre Deak
2020-04-08 14:23   ` Imre Deak

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox