[igt-dev] [PATCH i-g-t] tests/kms_flip: Don't use igt_fixture in an exit handler

Petri Latvala petri.latvala at intel.com
Tue May 19 09:48:21 UTC 2020


kms_flip's exit handler was wrapped in an igt_fixture some 7 years ago
because "it can fail". That's not a problem anymore, as igt_fail()
will explicitly handle failing in an exit handler.

Rather, using igt_fixture in an exit handler is harmful because on a
subtest failure, we don't always keep track of the currently running
context (whether we're inside a subtest anymore) and we forcefully
assert correct nesting of IGT magic control blocks now.

We already know the state is cleanable because we only install the
handler on a successful init. Unconditional cleanup in an exit handler
is the correct thing to do in general.

Signed-off-by: Petri Latvala <petri.latvala at intel.com>
---
 tests/kms_flip.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/tests/kms_flip.c b/tests/kms_flip.c
index 46bfc585..4b6affe1 100755
--- a/tests/kms_flip.c
+++ b/tests/kms_flip.c
@@ -1536,10 +1536,8 @@ static void get_timestamp_format(void)
 
 static void kms_flip_exit_handler(int sig)
 {
-	igt_fixture {
-		if (last_connector)
-			kmstest_set_connector_dpms(drm_fd, last_connector, DRM_MODE_DPMS_ON);
-	}
+	if (last_connector)
+		kmstest_set_connector_dpms(drm_fd, last_connector, DRM_MODE_DPMS_ON);
 }
 
 static void test_nonblocking_read(int in)
-- 
2.20.1



More information about the igt-dev mailing list