[igt-dev] [PATCH i-g-t 2/2] tests/kms_chamelium: Don't fail random palnes tests on invalid config
Petri Latvala
petri.latvala at intel.com
Thu Mar 12 10:12:42 UTC 2020
On Thu, Mar 12, 2020 at 11:51:37AM +0200, Arkadiusz Hiler wrote:
> It is possible to generate a configuration that the driver rejects
> because it cannot be handled (e.g. exceeding the number of available
> scalers). Until now the test was failing in such cases with:
>
> igt_kms-CRITICAL: Test assertion failure function igt_display_commit_atomic, file ../lib/igt_kms.c:3490:
> igt_kms-CRITICAL: Failed assertion: ret == 0
> igt_kms-CRITICAL: Last errno: 22, Invalid argument
> igt_kms-CRITICAL: error: -22 != 0
>
> With this change we will just note that the atomic commit is invalid and
> pass the test without causing random noise.
>
> Cc: Petri Latvala <petri.latvala at intel.com>
> Cc: Martin Peres <martin.peres at intel.com>
> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler at intel.com>
> ---
> tests/kms_chamelium.c | 13 ++++++++++++-
> 1 file changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/tests/kms_chamelium.c b/tests/kms_chamelium.c
> index 8046ac65..b563cce4 100644
> --- a/tests/kms_chamelium.c
> +++ b/tests/kms_chamelium.c
> @@ -2402,6 +2402,7 @@ static void test_display_planes_random(data_t *data,
> bool allow_yuv;
> unsigned int i;
> unsigned int fb_id;
> + int ret;
>
> switch (check) {
> case CHAMELIUM_CHECK_CRC:
> @@ -2478,7 +2479,15 @@ static void test_display_planes_random(data_t *data,
> fb_crc = chamelium_calculate_fb_crc_async_start(data->drm_fd,
> &result_fb);
>
> - igt_display_commit2(&data->display, COMMIT_ATOMIC);
> + ret = igt_display_try_commit2(&data->display, COMMIT_ATOMIC);
> +
> + /* we have invalid configuration, noting we can do */
I'm noting that there's nothing we can do.
--
Petri Latvala
> + if (ret == -EINVAL) {
> + igt_info("The random plane configuration is invalid, "
> + "passing the test without testing anything.\n");
> + goto cleanup;
> + }
> +
>
> if (check == CHAMELIUM_CHECK_CRC) {
> chamelium_capture(data->chamelium, port, 0, 0, 0, 0, 1);
> @@ -2505,6 +2514,8 @@ static void test_display_planes_random(data_t *data,
> chamelium_destroy_frame_dump(dump);
> }
>
> +cleanup:
> +
> for (i = 0; i < overlay_planes_count; i++)
> igt_remove_fb(data->drm_fd, &overlay_fbs[i]);
>
> --
> 2.24.1
>
More information about the igt-dev
mailing list