[PATCH i-g-t] tests/intel/gem_pxp: Fix requirements
Piatkowski, Dominik Karol
dominik.karol.piatkowski at intel.com
Wed Dec 18 10:40:38 UTC 2024
Hi Kamil,
> -----Original Message-----
> From: igt-dev <igt-dev-bounces at lists.freedesktop.org> On Behalf Of Kamil
> Konieczny
> Sent: Monday, December 16, 2024 4:31 PM
> To: igt-dev at lists.freedesktop.org
> Cc: Kamil Konieczny <kamil.konieczny at linux.intel.com>; Ceraolo Spurio,
> Daniele <daniele.ceraolospurio at intel.com>; Teres Alexis, Alan Previn
> <alan.previn.teres.alexis at intel.com>
> Subject: [PATCH i-g-t] tests/intel/gem_pxp: Fix requirements
>
> Requirements should either be global in first igt_fixture or should be placed in
> each subtests. Placing them in later fixtures results in misleading reports like:
>
> sudo ./gem_pxp --r hw-rejects-pxp-context Subtest hw-rejects-pxp-context:
> SUCCESS (0,001s) Test requirement not met in [...]
> ../tests/intel/gem_pxp.c:1317:
> Test requirement: pxp_supported
>
> Created few helpers and used them in each subtest, also fixed closing power
> debugfs fd.
>
> Cc: Daniele Ceraolo Spurio <daniele.ceraolospurio at intel.com>
> Cc: Alan Previn <alan.previn.teres.alexis at intel.com>
> Signed-off-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> ---
> tests/intel/gem_pxp.c | 157 +++++++++++++++++++++++++++---------------
> 1 file changed, 101 insertions(+), 56 deletions(-)
>
> diff --git a/tests/intel/gem_pxp.c b/tests/intel/gem_pxp.c index
> 94544240d..d1562a165 100644
> --- a/tests/intel/gem_pxp.c
> +++ b/tests/intel/gem_pxp.c
> @@ -1282,11 +1282,33 @@ static void test_display_protected_crc(int i915,
> igt_display_t *display)
> igt_remove_fb(i915, &protected_fb);
> }
>
> +static void require_nopxp(bool pxp_supported, uint32_t devid) {
> + igt_require_f(!pxp_supported, "HW supports PXP, devid=%x\n",
> devid); }
> +
> +static void require_pxp(bool pxp_supported, uint32_t devid) {
> + igt_require_f(pxp_supported, "HW do not supports PXP, devid=%x\n",
Nit: consider "HW does not support PXP"
Reviewed-by: Dominik Karol Piątkowski <dominik.karol.piatkowski at intel.com>
> +devid); }
> +
> +static void require_pxp_render(bool pxp_supported, uint32_t devid,
> +igt_render_copyfunc_t rendercopy) {
> + require_pxp(pxp_supported, devid);
> + igt_require_f(rendercopy, "No rendercopy found for devid=%x\n",
> +devid); }
> +
> +static void require_init_powermgt(int i915, struct powermgt_data *pm) {
> + if (pm->debugfsdir == -1)
> + init_powermgt_resources(i915, pm);
> +}
> +
> igt_main
> {
> int i915 = -1;
> bool pxp_supported = false;
> - struct powermgt_data pm = {0};
> + struct powermgt_data pm = {-1};
> igt_render_copyfunc_t rendercopy = NULL;
> uint32_t devid = 0;
> igt_display_t display;
> @@ -1296,110 +1318,133 @@ igt_main
> i915 = drm_open_driver(DRIVER_INTEL);
> igt_require(i915);
> igt_require_gem(i915);
> + devid = intel_get_drm_devid(i915);
> + igt_assert(devid);
> pxp_supported = is_pxp_hw_supported(i915);
> + rendercopy = igt_get_render_copyfunc(devid);
> }
>
> igt_subtest_group {
> - igt_fixture {
> - igt_require((pxp_supported == 0));
> - }
> -
> igt_describe("Verify protected buffer on unsupported hw:");
> - igt_subtest("hw-rejects-pxp-buffer")
> + igt_subtest("hw-rejects-pxp-buffer") {
> + require_nopxp(pxp_supported, devid);
> test_bo_alloc_pxp_nohw(i915);
> + }
> igt_describe("Verify protected context on unsupported hw:");
> - igt_subtest("hw-rejects-pxp-context")
> + igt_subtest("hw-rejects-pxp-context") {
> + require_nopxp(pxp_supported, devid);
> test_ctx_alloc_pxp_nohw(i915);
> + }
> }
>
> igt_subtest_group {
> - igt_fixture {
> - igt_require(pxp_supported);
> - }
> -
> igt_describe("Verify protected buffer on supported hw:");
> - igt_subtest("create-regular-buffer")
> + igt_subtest("create-regular-buffer") {
> + require_pxp(pxp_supported, devid);
> test_bo_alloc_pxp_off(i915);
> - igt_subtest("create-protected-buffer")
> + }
> + igt_subtest("create-protected-buffer") {
> + require_pxp(pxp_supported, devid);
> test_bo_alloc_pxp_on(i915);
> + }
>
> igt_describe("Verify protected context on supported hw:");
> - igt_subtest("create-regular-context-1")
> + igt_subtest("create-regular-context-1") {
> + require_pxp(pxp_supported, devid);
> test_ctx_alloc_recover_off_protect_off(i915);
> - igt_subtest("create-regular-context-2")
> + }
> + igt_subtest("create-regular-context-2") {
> + require_pxp(pxp_supported, devid);
> test_ctx_alloc_recover_on_protect_off(i915);
> - igt_subtest("fail-invalid-protected-context")
> + }
> + igt_subtest("fail-invalid-protected-context") {
> + require_pxp(pxp_supported, devid);
> test_ctx_alloc_recover_on_protect_on(i915);
> - igt_subtest("create-valid-protected-context")
> + }
> + igt_subtest("create-valid-protected-context") {
> + require_pxp(pxp_supported, devid);
> test_ctx_alloc_recover_off_protect_on(i915);
> + }
>
> igt_describe("Verify protected context integrity:");
> - igt_subtest("reject-modify-context-protection-on")
> + igt_subtest("reject-modify-context-protection-on") {
> + require_pxp(pxp_supported, devid);
> test_ctx_mod_regular_to_all_valid(i915);
> - igt_subtest("reject-modify-context-protection-off-1")
> + }
> + igt_subtest("reject-modify-context-protection-off-1") {
> + require_pxp(pxp_supported, devid);
> test_ctx_mod_recover_off_to_on(i915);
> - igt_subtest("reject-modify-context-protection-off-2")
> + }
> + igt_subtest("reject-modify-context-protection-off-2") {
> + require_pxp(pxp_supported, devid);
> test_ctx_mod_protected_on_to_off(i915);
> - igt_subtest("reject-modify-context-protection-off-3")
> + }
> + igt_subtest("reject-modify-context-protection-off-3") {
> + require_pxp(pxp_supported, devid);
> test_ctx_mod_protected_to_all_invalid(i915);
> + }
> }
> igt_subtest_group {
> - igt_fixture {
> - igt_require(pxp_supported);
> - devid = intel_get_drm_devid(i915);
> - igt_assert(devid);
> - rendercopy = igt_get_render_copyfunc(devid);
> - igt_require(rendercopy);
> - }
> -
> igt_describe("Verify protected render operations:");
> - igt_subtest("regular-baseline-src-copy-readible")
> + igt_subtest("regular-baseline-src-copy-readible") {
> + require_pxp_render(pxp_supported, devid,
> rendercopy);
> test_render_baseline(i915);
> - igt_subtest("protected-raw-src-copy-not-readible")
> + }
> + igt_subtest("protected-raw-src-copy-not-readible") {
> + require_pxp_render(pxp_supported, devid,
> rendercopy);
> test_render_pxp_src_to_protdest(i915);
> - igt_subtest("protected-encrypted-src-copy-not-readible")
> + }
> + igt_subtest("protected-encrypted-src-copy-not-readible") {
> + require_pxp_render(pxp_supported, devid,
> rendercopy);
> test_render_pxp_protsrc_to_protdest(i915);
> - igt_subtest("dmabuf-shared-protected-dst-is-context-
> refcounted")
> + }
> + igt_subtest("dmabuf-shared-protected-dst-is-context-
> refcounted") {
> + require_pxp_render(pxp_supported, devid,
> rendercopy);
> test_pxp_dmabuffshare_refcnt(i915);
> + }
> }
> igt_subtest_group {
> - igt_fixture {
> - igt_require(pxp_supported);
> - devid = intel_get_drm_devid(i915);
> - igt_assert(devid);
> - rendercopy = igt_get_render_copyfunc(devid);
> - igt_require(rendercopy);
> - init_powermgt_resources(i915, &pm);
> - }
> igt_describe("Verify suspend-resume teardown
> management:");
> - igt_subtest("verify-pxp-key-change-after-suspend-resume")
> + igt_subtest("verify-pxp-key-change-after-suspend-resume") {
> + require_pxp_render(pxp_supported, devid,
> rendercopy);
> + require_init_powermgt(i915, &pm);
> test_pxp_pwrcycle_teardown_keychange(i915, &pm);
> - igt_subtest("verify-pxp-stale-ctx-execution")
> + }
> + igt_subtest("verify-pxp-stale-ctx-execution") {
> + require_pxp_render(pxp_supported, devid,
> rendercopy);
> + require_init_powermgt(i915, &pm);
> test_pxp_stale_ctx_execution(i915);
> - igt_subtest("verify-pxp-stale-buf-execution")
> + }
> + igt_subtest("verify-pxp-stale-buf-execution") {
> + require_pxp_render(pxp_supported, devid,
> rendercopy);
> + require_init_powermgt(i915, &pm);
> test_pxp_stale_buf_execution(i915);
> - igt_subtest("verify-pxp-stale-buf-optout-execution")
> + }
> + igt_subtest("verify-pxp-stale-buf-optout-execution") {
> + require_pxp_render(pxp_supported, devid,
> rendercopy);
> + require_init_powermgt(i915, &pm);
> test_pxp_stale_buf_optout_execution(i915);
> - igt_subtest("verify-pxp-execution-after-suspend-resume")
> + }
> + igt_subtest("verify-pxp-execution-after-suspend-resume") {
> + require_pxp_render(pxp_supported, devid,
> rendercopy);
> + require_init_powermgt(i915, &pm);
> test_pxp_pwrcycle_staleasset_execution(i915, &pm);
> + }
> }
> igt_subtest_group {
> - igt_fixture {
> - igt_require(pxp_supported);
> - devid = intel_get_drm_devid(i915);
> - igt_assert(devid);
> - rendercopy = igt_get_render_copyfunc(devid);
> - igt_require(rendercopy);
> -
> + igt_describe("Test the display CRC");
> + igt_subtest("display-protected-crc") {
> + require_pxp_render(pxp_supported, devid,
> rendercopy);
> igt_require_pipe_crc(i915);
> igt_display_require(&display, i915);
> - }
> - igt_describe("Test the display CRC");
> - igt_subtest("display-protected-crc")
> test_display_protected_crc(i915, &display);
> + }
> }
>
> igt_fixture {
> + if (pm.debugfsdir != -1)
> + close(pm.debugfsdir);
> +
> drm_close_driver(i915);
> }
> }
> --
> 2.47.1
More information about the igt-dev
mailing list