[igt-dev] [PATCH i-g-t v2] tests/kms_content_protection: CP cleanup exit handler
Anshuman Gupta
anshuman.gupta at intel.com
Thu May 28 14:26:52 UTC 2020
Add HDCP content protection cleanup igt exit handler,
earlier it was done through igt_fixture which doesn't
trigger hdcp cleanup on igt abortion due to any signal.
This should avoid any HDCP content protection leak.
v2:
- wrap up exit handler in igt_fixure only when it is
running under sub-test block. [Petri]
Cc: Ramalingam C <ramalingam.c at intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta at intel.com>
---
tests/kms_content_protection.c | 23 ++++++++++++++++++-----
1 file changed, 18 insertions(+), 5 deletions(-)
diff --git a/tests/kms_content_protection.c b/tests/kms_content_protection.c
index 3b9cedcb..0f656bcf 100644
--- a/tests/kms_content_protection.c
+++ b/tests/kms_content_protection.c
@@ -651,12 +651,30 @@ static void test_content_protection_cleanup(void)
}
}
+static void test_content_protection_exit_handler(int sig)
+{
+ /*
+ * FIXME: igt_can_fail() is sometimes incorrect in exit handlers. Wrap
+ * cleanup in igt_fixture if igt_core thinks we're not in a subtest.
+ */
+ if (igt_subtest_name()) {
+ test_content_protection_cleanup();
+ igt_display_fini(&data.display);
+ } else {
+ igt_fixture {
+ test_content_protection_cleanup();
+ igt_display_fini(&data.display);
+ }
+ }
+}
+
igt_main
{
igt_fixture {
data.drm_fd = drm_open_driver_master(DRIVER_ANY);
igt_display_require(&data.display, data.drm_fd);
+ igt_install_exit_handler(test_content_protection_exit_handler);
}
igt_subtest("legacy") {
@@ -723,9 +741,4 @@ igt_main
igt_assert_f(ret, "SRM update failed");
test_content_protection(COMMIT_ATOMIC, HDCP_CONTENT_TYPE_0);
}
-
- igt_fixture {
- test_content_protection_cleanup();
- igt_display_fini(&data.display);
- }
}
--
2.26.2
More information about the igt-dev
mailing list