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

Bhanuprakash Modem bhanuprakash.modem at intel.com
Fri Aug 11 18:46:21 UTC 2023


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>
---
 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];
-- 
2.40.0



More information about the igt-dev mailing list