[igt-dev] [i-g-t V6 47/81] tests/kms_flip: Document each subtest for testplan

Karthik B S karthik.b.s at intel.com
Mon Aug 14 04:20:40 UTC 2023


On 8/12/2023 12:16 AM, Bhanuprakash Modem wrote:
> Add documentation for all kms tests which is used by IGT testplan
> documentation.
>
> V2: - Fix test description
>
> Cc: Karthik B S <karthik.b.s at intel.com>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem at intel.com>
Reviewed-by: Karthik B S <karthik.b.s at intel.com>
> ---
>   tests/kms_flip.c | 267 ++++++++++++++++++++++++++++++++++++++++++++++-
>   1 file changed, 264 insertions(+), 3 deletions(-)
>
> diff --git a/tests/kms_flip.c b/tests/kms_flip.c
> index 31e875929..80f051305 100755
> --- a/tests/kms_flip.c
> +++ b/tests/kms_flip.c
> @@ -22,8 +22,9 @@
>    */
>   
>   /**
> - * TEST: Tests for validating modeset, dpms and pageflips
> + * TEST: kms flip
>    * Category: Display
> + * Description: Tests for validating modeset, dpms and pageflips
>    */
>   
>   #include "config.h"
> @@ -39,6 +40,248 @@
>   #include <sys/poll.h>
>   #include <sys/time.h>
>   #include <sys/ioctl.h>
> +
> +/**
> + * SUBTEST: 2x-flip-vs-fences
> + * Description: Test to validate pageflips along with avialable fences on a pair
> + *              of connected displays
> + * Driver requirement: i915
> + * Functionality: gtt, vblank
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * SUBTEST: 2x-flip-vs-fences-interruptible
> + * Description: Interrupt test to validate pageflips along with available fences
> + *              on a pair of connected displays
> + * Driver requirement: any
> + * Functionality: gtt, vblank
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * SUBTEST: flip-vs-fences
> + * Description: Basic test to validate pageflips with avialable fences
> + * Driver requirement: i915
> + * Functionality: gtt, vblank
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * SUBTEST: flip-vs-fences-interruptible
> + * Description: Interrupt test to validate pageflips with available fences
> + * Driver requirement: i915
> + * Functionality: gtt, vblank
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * SUBTEST: dpms-off-confusion
> + * Description: Basic test to validate pageflips by disabling other connectors usng dpms
> + * Driver requirement: any
> + * Functionality: dpms, vblank
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * SUBTEST: dpms-off-confusion-interruptible
> + * Description: Interrupt test to validate pageflips by disabling other connectors using dpms
> + * Driver requirement: any
> + * Functionality: dpms, vblank
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * SUBTEST: bo-too-big
> + * Description: Basic test to validate pageflips with large BO in size
> + * Driver requirement: any
> + * Functionality: kms_gem_interop, vblank
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * SUBTEST: bo-too-big-interruptible
> + * Description: Interrupt test to validate pageflips with large BO in size
> + * Driver requirement: any
> + * Functionality: kms_gem_interop, vblank
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + */
> +
> +/**
> + * SUBTEST: %s
> + * Description: Basic test to validate %arg[1]
> + * Driver requirement: any
> + * Functionality: vblank
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * SUBTEST: 2x-%s
> + * Description: Test to validate %arg[1] on a pair of connected displays
> + * Driver requirement: any
> + * Functionality: vblank
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @wf_vblank-ts-check:           wait for the vblank and check timestamps
> + * @blocking-wf_vblank:           wait for the vblank synchronous
> + * @absolute-wf_vblank:           wait for the absolute vblank
> + * @blocking-absolute-wf_vblank:  wait for the absolute vblank synchronous
> + * @busy-flip:                    pageflip with busy buffers
> + * @plain-flip-ts-check:          pageflip and check timestamps
> + * @plain-flip-fb-recreate:       pageflip by recreating the fb
> + * @flip-vs-rmfb:                 pageflip by recreating the fb (rmfb)
> + * @flip-vs-panning:              pageflip with panning
> + * @flip-vs-expired-vblank:       pageflip by checking the vbalnk sequence
> + * @flip-vs-absolute-wf_vblank:   pageflip and wait for the absolute vblank
> + * @flip-vs-blocking-wf-vblank:   pageflip and wait for the absolute vblank synchronous
> + * @flip-vs-modeset-vs-hang:      pageflip and modeset by hang injection
> + * @flip-vs-panning-vs-hang:      pageflip with panning by hang injection
> + * @nonexisting-fb:               expired framebuffer
> + * @modeset-vs-vblank-race:       modeset and check for vblank
> + */
> +
> +/**
> + * SUBTEST: flip-vs-suspend
> + * Description: Basic test to validate pageflips with suspend cycle
> + * Driver requirement: any
> + * Functionality: suspend, vblank
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * SUBTEST: 2x-flip-vs-suspend
> + * Description: Basic test to validate pageflips with suspend cycle on a pair of
> + *              connected displays
> + * Driver requirement: any
> + * Functionality: suspend, vblank
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * SUBTEST: flip-vs-suspend-interruptible
> + * Description: Interrupt test to validate pageflips with suspend cycle
> + * Driver requirement: any
> + * Functionality: suspend, vblank
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * SUBTEST: 2x-flip-vs-suspend-interruptible
> + * Description: Interrupt test to validate pageflips with suspend cycle on a pair
> + *              of connected displays
> + * Driver requirement: any
> + * Functionality: suspend, vblank
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * SUBTEST: %s
> + * Description: Basic test to validate %arg[1]
> + * Driver requirement: any
> + * Functionality: dpms, vblank
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * SUBTEST: 2x-%s
> + * Description: Basic test to validate %arg[1] on a pair of connected displays
> + * Driver requirement: any
> + * Functionality: dpms, vblank
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * SUBTEST: %s-interruptible
> + * Description: Basic test to validate %arg[1]
> + * Driver requirement: any
> + * Functionality: vblank
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * SUBTEST: 2x-%s-interruptible
> + * Description: Basic test to validate %arg[1] on a pair of connected displays
> + * Driver requirement: any
> + * Functionality: vblank
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @flip-vs-dpms-off-vs-modeset:               pageflips along with modeset and
> + *                                             dpms off.
> + * @single-buffer-flip-vs-dpms-off-vs-modeset: pageflip of same buffer along with
> + *                                             the modeset and dpms off
> + * @dpms-vs-vblank-race:                       vblank along with the dpms & modeset
> + */
> +
> +/**
> + * SUBTEST: 2x-flip-vs-dpms
> + * Description: Basic test to validate pageflip along with dpms on a pair of
> + *              connected displays
> + * Driver requirement: any
> + * Functionality: dpms, vblank
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * SUBTEST: 2x-%s
> + * Description: Basic test to validate %arg[1] on a pair of connected displays
> + * Driver requirement: any
> + * Functionality: vblank
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @plain-flip:          pageflip
> + * @flip-vs-modeset:     pageflip along with modeset
> + * @flip-vs-wf_vblank:   pageflip along with waiting for vblank
> + */
> +
> +/**
> + * SUBTEST: %s-interruptible
> + * Description: Basic test for validating modeset, dpms and pageflips
> + * Driver requirement: any
> + * Functionality: vblank
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * SUBTEST: 2x-%s-interruptible
> + * Description: Test for validating modeset, dpms and pageflips with a pair of
> + *              connected displays
> + * Driver requirement: any
> + * Functionality: vblank
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + *
> + * arg[1]:
> + *
> + * @wf_vblank-ts-check:           wait for the vblank and check timestamps
> + * @absolute-wf_vblank:           wait for the absolute vblank
> + * @blocking-absolute-wf_vblank:  wait for the absolute vblank synchronous
> + * @plain-flip:                   pageflip
> + * @plain-flip-ts-check:          pageflip and check timestamps
> + * @plain-flip-fb-recreate:       pageflip by recreating the fb
> + * @flip-vs-rmfb:                 pageflip by recreating the fb (rmfb)
> + * @flip-vs-panning:              pageflip with panning
> + * @flip-vs-expired-vblank:       pageflip by checking the vbalnk sequence
> + * @flip-vs-absolute-wf_vblank:   pageflip and wait for the absolute vblank
> + * @flip-vs-wf_vblank:            pageflip and wait for vblank
> + * @nonexisting-fb:               expired framebuffer
> + * @modeset-vs-vblank-race:       modeset and check for vblank
> + */
> +
>   #ifdef HAVE_LINUX_KD_H
>   #include <linux/kd.h>
>   #elif HAVE_SYS_KD_H
> @@ -1562,8 +1805,17 @@ static void run_test_on_crtc_set(struct test_output *o, int *crtc_idxs,
>   }
>   
>   /**
> + * SUBTEST: basic-flip-vs-dpms
> + * Description: Basic test to valide pageflip with dpms
> + * Driver requirement: any
> + * Test category: functionality test
> + * Run type: BAT
> + * Functionality: dpms, vblank
> + * Mega feature: General Display Features
> + *
>    * SUBTEST: basic-flip-vs-%s
> - * Description: Basic test to valide %arg[1]
> + * Description: Basic test to valide pageflip with %arg[1]
> + * Driver requirement: any
>    * Test category: functionality test
>    * Run type: BAT
>    * Functionality: vblank
> @@ -1571,12 +1823,12 @@ static void run_test_on_crtc_set(struct test_output *o, int *crtc_idxs,
>    *
>    * arg[1]:
>    *
> - * @dpms:         dpms
>    * @modeset:      modeset
>    * @wf_vblank:    wait for vblank
>    *
>    * SUBTEST: basic-plain-flip
>    * Description: Basic test for validating page flip
> + * Driver requirement: any
>    * Test category: functionality test
>    * Run type: BAT
>    * Functionality: vblank
> @@ -1765,6 +2017,15 @@ static void kms_flip_exit_handler(int sig)
>   		kmstest_set_connector_dpms(drm_fd, last_connector, DRM_MODE_DPMS_ON);
>   }
>   
> +/**
> + * SUBTEST: nonblocking-read
> + * Description: Tests that nonblocking reading fails correctly
> + * Driver requirement: any
> + * Functionality: vblank
> + * Mega feature: General Display Features
> + * Run type: FULL
> + * Test category: functionality test
> + */
>   static void test_nonblocking_read(int in)
>   {
>   	char buffer[1024];


More information about the igt-dev mailing list