[igt-dev] [V5 i-g-t 33/81] tests/kms_async_flips: Document each subtest for testplan

Karthik B S karthik.b.s at intel.com
Tue Aug 8 15:00:37 UTC 2023


On 6/29/2023 8:18 PM, Bhanuprakash Modem wrote:
> Add documentation for all kms tests which is used by IGT testplan
> documentation.
>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem at intel.com>
Reviewed-by: Karthik B S <karthik.b.s at intel.com>
> ---
>   tests/kms_async_flips.c | 62 +++++++++++++++++++++++++++++++++++++++++
>   1 file changed, 62 insertions(+)
>
> diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
> index 0a1199158..73021e800 100644
> --- a/tests/kms_async_flips.c
> +++ b/tests/kms_async_flips.c
> @@ -25,6 +25,11 @@
>    *  Karthik B S <karthik.b.s at intel.com>
>    */
>   
> +/**
> + * TEST: kms async flips
> + * Category: Display
> + * Description: Test asynchronous page flips.
> + */
>   #include "igt.h"
>   #include "igt_aux.h"
>   #include "igt_psr.h"
> @@ -197,6 +202,25 @@ static void test_init_fbs(data_t *data)
>   	igt_display_commit2(&data->display, data->display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
>   }
>   
> +/**
> + * SUBTEST: alternate-sync-async-flip
> + * Description: Verify the async flip functionality and the fps during async flips
> + *              Alternate between sync and async flips
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * SUBTEST: async-flip-with-page-flip-events
> + * Description: Verify the async flip functionality and the fps during async flips
> + *              Wait for page flip events in between successive asynchronous flips
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + */
>   static void test_async_flip(data_t *data)
>   {
>   	int ret, frame;
> @@ -292,6 +316,17 @@ static void wait_for_vblank(data_t *data, unsigned long *vbl_time, unsigned int
>   	*seq = wait_vbl.reply.sequence;
>   }
>   
> +/**
> + * SUBTEST: test-time-stamp
> + * Description: Verify the async flip functionality and the fps during async flips
> + *              Verify that the async flip timestamp does not coincide with either
> + *              previous or next vblank
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + */
>   static void test_timestamp(data_t *data)
>   {
>   	int flags = DRM_MODE_PAGE_FLIP_ASYNC | DRM_MODE_PAGE_FLIP_EVENT;
> @@ -336,6 +371,15 @@ static void test_timestamp(data_t *data)
>   		     "Async flip time stamp is expected to be in between 2 vblank time stamps\n");
>   }
>   
> +/**
> + * SUBTEST: test-cursor
> + * Description: Verify that the DRM_IOCTL_MODE_CURSOR passes after async flip
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + */
>   static void test_cursor(data_t *data)
>   {
>   	int flags = DRM_MODE_PAGE_FLIP_ASYNC | DRM_MODE_PAGE_FLIP_EVENT;
> @@ -488,6 +532,15 @@ static unsigned int clock_ms(void)
>   	return ts.tv_sec * 1000 + ts.tv_nsec / 1000000;
>   }
>   
> +/**
> + * SUBTEST: crc
> + * Description: Use CRC to verify async flip scans out the correct framebuffer
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + */
>   static void test_crc(data_t *data)
>   {
>   	unsigned int frame = 0;
> @@ -550,6 +603,15 @@ static void test_crc(data_t *data)
>   	igt_assert_lt(data->frame_count * 2, data->flip_count);
>   }
>   
> +/**
> + * SUBTEST: invalid-async-flip
> + * Description: Negative case to verify if changes in fb are rejected from kernel as expected
> + * Driver requirement: any
> + * Functionality: kms_core
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + */
>   static void run_test(data_t *data, void (*test)(data_t *))
>   {
>   	igt_display_t *display = &data->display;


More information about the igt-dev mailing list