[igt-dev] [PATCH i-g-t] Added test description for kms tests
Nidhi Gupta
nidhi1.gupta at intel.com
Mon Apr 12 04:31:23 UTC 2021
Added description for following tests:
tests/kms_atomic.c
tests/kms_concurrent.c
tests/kms_content_protection.c
tests/kms_fbcon_fbt.c
tests/kms_getfb.c
tests/kms_lease.c
tests/kms_panel_fitting.c
tests/kms_pipe_b_c_ivb.c
tests/kms_plane_lowres.c
tests/kms_plane_scaling.c
tests/kms_prop_blob.c
tests/kms_rmfb.c
tests/kms_sequence.c
tests/kms_vrr.c
tests/kms_pipe_crc_basic.c
tests/kms_plane_alpha_blend.c
tests/kms_draw_crc.c
tests/kms_tv_load_detect.c
tests/kms_busy.c
tests/kms_force_connector_basic.c
tests/kms_setmode.c
Signed-off-by: Nidhi Gupta <nidhi1.gupta at intel.com>
Reviewed-by: Manasi Navare <manasi.d.navare at intel.com>
---
tests/kms_atomic.c | 15 +++++++++++++++
tests/kms_busy.c | 10 ++++++++++
tests/kms_concurrent.c | 2 ++
tests/kms_content_protection.c | 14 ++++++++++++++
tests/kms_draw_crc.c | 4 ++++
tests/kms_fbcon_fbt.c | 8 ++++++++
tests/kms_force_connector_basic.c | 4 ++++
tests/kms_getfb.c | 14 ++++++++++++++
tests/kms_lease.c | 10 ++++++++++
tests/kms_panel_fitting.c | 2 ++
tests/kms_pipe_b_c_ivb.c | 10 ++++++++++
tests/kms_pipe_crc_basic.c | 7 +++++++
tests/kms_plane_alpha_blend.c | 9 +++++++++
tests/kms_plane_lowres.c | 8 ++++++++
tests/kms_plane_scaling.c | 5 +++++
tests/kms_prop_blob.c | 12 ++++++++++++
tests/kms_rmfb.c | 4 ++++
tests/kms_sequence.c | 2 ++
tests/kms_setmode.c | 1 +
tests/kms_tv_load_detect.c | 1 +
tests/kms_vrr.c | 6 ++++++
21 files changed, 148 insertions(+)
diff --git a/tests/kms_atomic.c b/tests/kms_atomic.c
index 2965b350..df9c9df7 100644
--- a/tests/kms_atomic.c
+++ b/tests/kms_atomic.c
@@ -1104,6 +1104,8 @@ igt_main
LOCAL_DRM_FORMAT_MOD_NONE, &fb);
}
+ igt_describe("Test for KMS atomic modesetting on overlay plane and ensure coherency between "
+ "the legacy and atomic interfaces.");
igt_subtest("plane-overlay-legacy") {
igt_plane_t *overlay =
igt_pipe_get_plane_type(pipe_obj, DRM_PLANE_TYPE_OVERLAY);
@@ -1114,6 +1116,8 @@ igt_main
plane_overlay(pipe_obj, output, overlay);
}
+ igt_describe("Test for KMS atomic modesetting on primary plane and ensure coherency between "
+ "the legacy and atomic interfaces.");
igt_subtest("plane-primary-legacy") {
atomic_setup(&display, pipe, output, primary, &fb);
@@ -1148,12 +1152,16 @@ igt_main
plane_immutable_zpos(&display, pipe_obj, output);
}
+ igt_describe("Test to ensure that DRM_MODE_ATOMIC_TEST_ONLY really only touches "
+ "the free-standing state objects and nothing else.");
igt_subtest("test-only") {
atomic_clear(&display, pipe, primary, output);
test_only(pipe_obj, primary, output);
}
+ igt_describe("Test for KMS atomic modesetting on cursor plane and ensure coherency between "
+ "legacy and atomic interfaces.");
igt_subtest("plane-cursor-legacy") {
igt_plane_t *cursor =
igt_pipe_get_plane_type(pipe_obj, DRM_PLANE_TYPE_CURSOR);
@@ -1164,30 +1172,37 @@ igt_main
plane_cursor(pipe_obj, output, cursor);
}
+ igt_describe("Test error handling when invalid plane parameters are passed");
igt_subtest("plane-invalid-params") {
atomic_setup(&display, pipe, output, primary, &fb);
plane_invalid_params(pipe_obj, output, primary, &fb);
}
+ igt_describe("Test error handling when invalid plane fence parameters are passed");
igt_subtest("plane-invalid-params-fence") {
atomic_setup(&display, pipe, output, primary, &fb);
plane_invalid_params_fence(pipe_obj, output, primary);
}
+ igt_describe("Test error handling when invalid crtc parameters are passed");
igt_subtest("crtc-invalid-params") {
atomic_setup(&display, pipe, output, primary, &fb);
crtc_invalid_params(pipe_obj, output, primary, &fb);
}
+ igt_describe("Test error handling when invalid crtc fence parameters are passed");
igt_subtest("crtc-invalid-params-fence") {
atomic_setup(&display, pipe, output, primary, &fb);
crtc_invalid_params_fence(pipe_obj, output, primary, &fb);
}
+ igt_describe("Test abuse the atomic ioctl directly in order to test "
+ "various invalid conditions which the libdrm wrapper won't "
+ "allow us to create.");
igt_subtest("atomic-invalid-params") {
atomic_setup(&display, pipe, output, primary, &fb);
diff --git a/tests/kms_busy.c b/tests/kms_busy.c
index df1f8e11..0973daf0 100644
--- a/tests/kms_busy.c
+++ b/tests/kms_busy.c
@@ -305,6 +305,7 @@ igt_main
/* XXX Extend to cover atomic rendering tests to all planes + legacy */
+ igt_describe("Test for basic check of KMS ABI with busy framebuffers.");
igt_subtest_with_dynamic("basic") { /* just run on the first pipe */
enum pipe pipe;
igt_output_t *output;
@@ -327,9 +328,11 @@ igt_main
igt_display_require_output_on_pipe(&display, n);
}
+ igt_describe("Tests basic flip on pipe.");
igt_subtest_f("basic-flip-pipe-%s", kmstest_pipe_name(n)) {
test_flip(&display, n, false);
}
+ igt_describe("Tests basic modeset on pipe.");
igt_subtest_f("basic-modeset-pipe-%s", kmstest_pipe_name(n)) {
test_flip(&display, n, true);
@@ -339,6 +342,7 @@ igt_main
hang = igt_allow_hang(display.drm_fd, 0, 0);
}
+ igt_describe("Hang test on pipe with oldfb and extended pageflip modeset.");
igt_subtest_f("extended-pageflip-modeset-hang-oldfb-pipe-%s",
kmstest_pipe_name(n)) {
test_pageflip_modeset_hang(&display, n);
@@ -347,22 +351,27 @@ igt_main
igt_fixture
igt_require(display.is_atomic);
+ igt_describe("Test the results with a single hanging pageflip on pipe with oldfb.");
igt_subtest_f("extended-pageflip-hang-oldfb-pipe-%s",
kmstest_pipe_name(n))
test_hang(&display, n, false, false);
+ igt_describe("Test the results with a single hanging pageflip on pipe with newfb.");
igt_subtest_f("extended-pageflip-hang-newfb-pipe-%s",
kmstest_pipe_name(n))
test_hang(&display, n, false, true);
+ igt_describe("Tests modeset disable/enable with hang on pipe with oldfb.");
igt_subtest_f("extended-modeset-hang-oldfb-pipe-%s",
kmstest_pipe_name(n))
test_hang(&display, n, true, false);
+ igt_describe("Tests modeset disable/enable with hang on pipe with newfb.");
igt_subtest_f("extended-modeset-hang-newfb-pipe-%s",
kmstest_pipe_name(n))
test_hang(&display, n, true, true);
+ igt_describe("Tests modeset disable/enable with hang on reset pipe with oldfb.");
igt_subtest_f("extended-modeset-hang-oldfb-with-reset-pipe-%s",
kmstest_pipe_name(n)) {
igt_set_module_param_int(display.drm_fd, "force_reset_modeset_test", 1);
@@ -372,6 +381,7 @@ igt_main
igt_set_module_param_int(display.drm_fd, "force_reset_modeset_test", 0);
}
+ igt_describe("Tests modeset disable/enable with hang on reset pipe with newfb.");
igt_subtest_f("extended-modeset-hang-newfb-with-reset-pipe-%s",
kmstest_pipe_name(n)) {
igt_set_module_param_int(display.drm_fd, "force_reset_modeset_test", 1);
diff --git a/tests/kms_concurrent.c b/tests/kms_concurrent.c
index 5a269014..c3f29ec7 100644
--- a/tests/kms_concurrent.c
+++ b/tests/kms_concurrent.c
@@ -329,6 +329,8 @@ run_tests_for_pipe(data_t *data, enum pipe pipe)
igt_require_f(valid_tests, "no valid crtc/connector combinations found\n");
}
+ igt_describe("Test atomic mode setting concurrently with multiple planes and screen "
+ "resolution.");
igt_subtest_f("pipe-%s", kmstest_pipe_name(pipe))
for_each_valid_output_on_pipe(&data->display, pipe, output)
run_test(data, pipe, output);
diff --git a/tests/kms_content_protection.c b/tests/kms_content_protection.c
index 0fdbacdd..5a75b871 100644
--- a/tests/kms_content_protection.c
+++ b/tests/kms_content_protection.c
@@ -735,46 +735,58 @@ igt_main
create_fbs();
}
+ igt_describe("Test content protection with legacy style commit.");
igt_subtest("legacy") {
data.cp_tests = 0;
test_content_protection(COMMIT_LEGACY, HDCP_CONTENT_TYPE_0);
}
+ igt_describe("Test content protection with atomic modesetting");
igt_subtest("atomic") {
igt_require(data.display.is_atomic);
data.cp_tests = 0;
test_content_protection(COMMIT_ATOMIC, HDCP_CONTENT_TYPE_0);
}
+ igt_describe("Test content protection with DPMS ON/OFF during atomic modesetting.");
igt_subtest("atomic-dpms") {
igt_require(data.display.is_atomic);
data.cp_tests = CP_DPMS;
test_content_protection(COMMIT_ATOMIC, HDCP_CONTENT_TYPE_0);
}
+ igt_describe("Test for the integrity of link.");
igt_subtest("LIC") {
igt_require(data.display.is_atomic);
data.cp_tests = CP_LIC;
test_content_protection(COMMIT_ATOMIC, HDCP_CONTENT_TYPE_0);
}
+ igt_describe("Test content protection with content type 1 that "
+ "can be handled only through HDCP2.2.");
igt_subtest("type1") {
igt_require(data.display.is_atomic);
test_content_protection(COMMIT_ATOMIC, HDCP_CONTENT_TYPE_1);
}
+ igt_describe("Test the teardown and rebuild of the interface between "
+ "I915 and mei hdcp.");
igt_subtest("mei_interface") {
igt_require(data.display.is_atomic);
data.cp_tests = CP_MEI_RELOAD;
test_content_protection(COMMIT_ATOMIC, HDCP_CONTENT_TYPE_1);
}
+ igt_describe("Test the content type change when the content protection already "
+ "enabled.");
igt_subtest("content_type_change") {
igt_require(data.display.is_atomic);
data.cp_tests = CP_TYPE_CHANGE;
test_content_protection(COMMIT_ATOMIC, HDCP_CONTENT_TYPE_1);
}
+ igt_describe("Test to detect the HDCP status change when we are reading the uevent "
+ "sent with the corresponding connector id and property id.");
igt_subtest("uevent") {
igt_require(data.display.is_atomic);
data.cp_tests = CP_UEVENT;
@@ -792,6 +804,8 @@ igt_main
* either of these options, we test SRM writing from userspace and
* validation of the same at kernel. Something is better than nothing.
*/
+ igt_describe("This test writes the facsimile SRM into the /lib/firmware/ "
+ "and check the kernel parsing of it by invoking the hdcp authentication.");
igt_subtest("srm") {
bool ret;
diff --git a/tests/kms_draw_crc.c b/tests/kms_draw_crc.c
index ffd655b0..e1fdcef6 100644
--- a/tests/kms_draw_crc.c
+++ b/tests/kms_draw_crc.c
@@ -331,6 +331,8 @@ igt_main
for (format_idx = 0; format_idx < N_FORMATS; format_idx++) {
for (method = 0; method < IGT_DRAW_METHOD_COUNT; method++) {
for (tiling_idx = 0; tiling_idx < N_TILING_METHODS; tiling_idx++) {
+ igt_describe("This subtest verfies igt_draw library works "
+ "with different tilings, DRM_FORMATS, DRAW_METHODS.");
igt_subtest_f("draw-method-%s-%s-%s",
format_str(format_idx),
igt_draw_get_method_name(method),
@@ -339,6 +341,8 @@ igt_main
tilings[tiling_idx]);
} } }
+ igt_describe("This subtest verifies CRC after filling fb with x-tiling "
+ "or none.");
igt_subtest("fill-fb")
fill_fb_subtest();
diff --git a/tests/kms_fbcon_fbt.c b/tests/kms_fbcon_fbt.c
index 4df4db52..43a7ace1 100644
--- a/tests/kms_fbcon_fbt.c
+++ b/tests/kms_fbcon_fbt.c
@@ -419,12 +419,20 @@ igt_main
igt_fixture
setup_environment(&drm);
+ igt_describe("Test the relationship between fbcon and the frontbuffer "
+ "tracking infrastructure with fbc enabled.");
igt_subtest("fbc")
subtest(&drm, &fbc, false);
+ igt_describe("Test the relationship between fbcon and the frontbuffer "
+ "tracking infrastructure with psr enabled.");
igt_subtest("psr")
subtest(&drm, &psr, false);
+ igt_describe("Suspend test to validate the relationship between fbcon and the frontbuffer "
+ "tracking infrastructure with fbc enabled.");
igt_subtest("fbc-suspend")
subtest(&drm, &fbc, true);
+ igt_describe("Suspend test to validate the relationship between fbcon and the frontbuffer "
+ "tracking infrastructure with psr enabled.");
igt_subtest("psr-suspend")
subtest(&drm, &psr, true);
diff --git a/tests/kms_force_connector_basic.c b/tests/kms_force_connector_basic.c
index b1a5bac1..a79cad03 100644
--- a/tests/kms_force_connector_basic.c
+++ b/tests/kms_force_connector_basic.c
@@ -139,6 +139,7 @@ igt_main_args("", long_opts, help_str, opt_handler, NULL)
start_connection = connector->connection;
}
+ igt_describe("Test to detect forced load.");
igt_subtest("force-load-detect") {
int i, j, w = 64, h = 64;
drmModePlaneRes *plane_resources;
@@ -225,6 +226,7 @@ igt_main_args("", long_opts, help_str, opt_handler, NULL)
}
}
+ igt_describe("Test to check the forced connector state.");
igt_subtest("force-connector-state") {
igt_display_t display;
@@ -261,6 +263,7 @@ igt_main_args("", long_opts, help_str, opt_handler, NULL)
drmModeFreeConnector(temp);
}
+ igt_describe("Test to check the values after forcing edid.");
igt_subtest("force-edid") {
kmstest_force_connector(drm_fd, connector,
FORCE_CONNECTOR_ON);
@@ -295,6 +298,7 @@ igt_main_args("", long_opts, help_str, opt_handler, NULL)
}
+ igt_describe("Tests pruning of stale modes.");
igt_subtest("prune-stale-modes") {
int i;
diff --git a/tests/kms_getfb.c b/tests/kms_getfb.c
index 8c59b8a9..5f4758c6 100644
--- a/tests/kms_getfb.c
+++ b/tests/kms_getfb.c
@@ -170,11 +170,14 @@ static void test_handle_input(int fd)
do_ioctl(fd, DRM_IOCTL_MODE_ADDFB2, &add);
}
+ igt_describe("Tests error handling for a zero'd input.");
igt_subtest("getfb-handle-zero") {
struct drm_mode_fb_cmd get = { .fb_id = 0 };
do_ioctl_err(fd, DRM_IOCTL_MODE_GETFB, &get, ENOENT);
}
+ igt_describe("Tests error handling when passing an valid "
+ "handle.");
igt_subtest("getfb-handle-valid") {
struct drm_mode_fb_cmd get = { .fb_id = add.fb_id };
do_ioctl(fd, DRM_IOCTL_MODE_GETFB, &get);
@@ -187,12 +190,16 @@ static void test_handle_input(int fd)
gem_close(fd, get.handle);
}
+ igt_describe("Tests error handling when passing a handle that "
+ "has been closed.");
igt_subtest("getfb-handle-closed") {
struct drm_mode_fb_cmd get = { .fb_id = add.fb_id };
do_ioctl(fd, DRM_IOCTL_MODE_RMFB, &add.fb_id);
do_ioctl_err(fd, DRM_IOCTL_MODE_GETFB, &get, ENOENT);
}
+ igt_describe("Tests error handling when passing an invalid "
+ "handle.");
igt_subtest("getfb-handle-not-fb") {
struct drm_mode_fb_cmd get = { .fb_id = get_any_prop_id(fd) };
igt_require(get.fb_id > 0);
@@ -218,6 +225,8 @@ static void test_duplicate_handles(int fd)
do_ioctl(fd, DRM_IOCTL_MODE_ADDFB2, &add);
}
+ igt_describe("Tests error handling while requesting for two different "
+ "handles from same fd.");
igt_subtest("getfb-addfb-different-handles") {
struct drm_mode_fb_cmd get = { .fb_id = add.fb_id };
@@ -226,6 +235,8 @@ static void test_duplicate_handles(int fd)
gem_close(fd, get.handle);
}
+ igt_describe("Tests error handling while requesting for two different "
+ "handles from different fd.");
igt_subtest("getfb-repeated-different-handles") {
struct drm_mode_fb_cmd get1 = { .fb_id = add.fb_id };
struct drm_mode_fb_cmd get2 = { .fb_id = add.fb_id };
@@ -238,6 +249,9 @@ static void test_duplicate_handles(int fd)
gem_close(fd, get2.handle);
}
+ igt_describe("Tests error handling while requesting CCS buffers "
+ "it should refuse because getfb supports returning "
+ "a single buffer handle.");
igt_subtest("getfb-reject-ccs") {
struct drm_mode_fb_cmd2 add_ccs = { };
struct drm_mode_fb_cmd get = { };
diff --git a/tests/kms_lease.c b/tests/kms_lease.c
index e9a47767..6397ef8f 100644
--- a/tests/kms_lease.c
+++ b/tests/kms_lease.c
@@ -1312,21 +1312,31 @@ igt_main
}
}
+ igt_describe("Tests error handling while creating invalid corner-cases for "
+ "create-lease ioctl");
igt_subtest("invalid-create-leases")
invalid_create_leases(&data);
+ igt_describe("Tests that possible_crtcs logically match between master and "
+ "lease, and that the values are correctly renumbered on the lease side.");
igt_subtest("possible-crtcs-filtering")
possible_crtcs_filtering(&data);
+ igt_describe("Tests the drop/set_master interactions.");
igt_subtest("master-vs-lease")
master_vs_lease(&data);
+ igt_describe("Tests that the 2nd master can only create leases while being active "
+ "master, and that leases on the first master don't prevent lease creation "
+ "for the 2nd master.");
igt_subtest("multimaster-lease")
multimaster_lease(&data);
+ igt_describe("Tests the implicitly added planes.");
igt_subtest("implicit-plane-lease")
implicit_plane_lease(&data);
+ igt_describe("Tests all the uevent cases");
igt_subtest("lease-uevent")
lease_uevent(&data);
}
diff --git a/tests/kms_panel_fitting.c b/tests/kms_panel_fitting.c
index 4f4c5608..398addeb 100644
--- a/tests/kms_panel_fitting.c
+++ b/tests/kms_panel_fitting.c
@@ -257,9 +257,11 @@ igt_main
igt_display_require_output(&data.display);
}
+ igt_describe("Tests panel fitting usages with legacy style commit.");
igt_subtest("legacy")
test_panel_fitting(&data);
+ igt_describe("Tests panel fitting usages with atomic fastset.");
igt_subtest("atomic-fastset")
test_atomic_fastset(&data);
diff --git a/tests/kms_pipe_b_c_ivb.c b/tests/kms_pipe_b_c_ivb.c
index 94768eec..5823ae2a 100644
--- a/tests/kms_pipe_b_c_ivb.c
+++ b/tests/kms_pipe_b_c_ivb.c
@@ -264,18 +264,28 @@ igt_main
igt_display_require(&data.display, data.drm_fd);
}
+ igt_describe("Tests pipe-B and pipe-C interactions in IVB by enabling pipe-B with mode "
+ "that requires 3 lanes and then enabling pipe-c with dpms off/on pipe-B.");
igt_subtest("pipe-B-dpms-off-modeset-pipe-C")
test_dpms(&data);
+ igt_describe("Tests pipe-B and pipe-C interactions in IVB by enabling 2 different modes "
+ "on pipe-B and then a single mode on pipe-C.");
igt_subtest("pipe-B-double-modeset-then-modeset-pipe-C")
test_lane_reduction(&data);
+ igt_describe("Tests pipe-B and pipe-C interactions in IVB by disabling pipe-B and then "
+ "setting mode on pipe-C.");
igt_subtest("disable-pipe-B-enable-pipe-C")
test_disable_pipe_B(&data);
+ igt_describe("Tests pipe-B and pipe-C interactions in IVB by enabling pipe-B with 3 lanes "
+ "from pipe-C.");
igt_subtest("from-pipe-C-to-B-with-3-lanes")
test_from_C_to_B_with_3_lanes(&data);
+ igt_describe("Tests pipe-B and pipe-C interactions in IVB by enabling pipe-C while pipe-B "
+ "has 3-lanes");
igt_subtest("enable-pipe-C-while-B-has-3-lanes")
test_fail_enable_pipe_C_while_B_has_3_lanes(&data);
diff --git a/tests/kms_pipe_crc_basic.c b/tests/kms_pipe_crc_basic.c
index db047c4c..67d68ebe 100644
--- a/tests/kms_pipe_crc_basic.c
+++ b/tests/kms_pipe_crc_basic.c
@@ -282,22 +282,28 @@ igt_main
data.debugfs = igt_debugfs_dir(data.drm_fd);
}
+ igt_describe("Tests error handling when the bad source is set.");
igt_subtest("bad-source")
test_bad_source(&data);
for_each_pipe_static(pipe) {
+ igt_describe("Test for pipe CRC reads.");
igt_subtest_f("read-crc-pipe-%s", kmstest_pipe_name(pipe))
test_read_crc(&data, pipe, 0);
+ igt_describe("Tests the pipe CRC read and ensure frame sequence.");
igt_subtest_f("read-crc-pipe-%s-frame-sequence", kmstest_pipe_name(pipe))
test_read_crc(&data, pipe, TEST_SEQUENCE);
+ igt_describe("Test for O_NONBLOCK CRC reads.");
igt_subtest_f("nonblocking-crc-pipe-%s", kmstest_pipe_name(pipe))
test_read_crc(&data, pipe, TEST_NONBLOCK);
+ igt_describe("Test for O_NONBLOCK CRC reads and ensure frame sequence.");
igt_subtest_f("nonblocking-crc-pipe-%s-frame-sequence", kmstest_pipe_name(pipe))
test_read_crc(&data, pipe, TEST_SEQUENCE | TEST_NONBLOCK);
+ igt_describe("Suspend test for pipe CRC reads");
igt_subtest_f("suspend-read-crc-pipe-%s", kmstest_pipe_name(pipe)) {
test_read_crc(&data, pipe, 0);
@@ -312,6 +318,7 @@ igt_main
igt_subtest_f("disable-crc-after-crtc-pipe-%s", kmstest_pipe_name(pipe))
test_disable_crc_after_crtc(&data, pipe);
+ igt_describe("Hang test for pipe CRC read");
igt_subtest_f("hang-read-crc-pipe-%s", kmstest_pipe_name(pipe)) {
igt_hang_t hang = igt_allow_hang(data.drm_fd, 0, 0);
diff --git a/tests/kms_plane_alpha_blend.c b/tests/kms_plane_alpha_blend.c
index dd162546..5e80ae36 100644
--- a/tests/kms_plane_alpha_blend.c
+++ b/tests/kms_plane_alpha_blend.c
@@ -531,30 +531,39 @@ static void run_subtests(data_t *data, enum pipe pipe)
kmstest_pipe_name(pipe));
}
+ igt_describe("Tests basic plane alpha properties.");
igt_subtest_f("pipe-%s-alpha-basic", kmstest_pipe_name(pipe))
run_test_on_pipe_planes(data, pipe, false, true, basic_alpha);
+ igt_describe("Tests plane alpha-7efc properties.");
igt_subtest_f("pipe-%s-alpha-7efc", kmstest_pipe_name(pipe))
run_test_on_pipe_planes(data, pipe, false, true, alpha_7efc);
+ igt_describe("Tests pipe coverage blending properties.");
igt_subtest_f("pipe-%s-coverage-7efc", kmstest_pipe_name(pipe))
run_test_on_pipe_planes(data, pipe, true, true, coverage_7efc);
+ igt_describe("Tests pipe coverage blending properties.");
igt_subtest_f("pipe-%s-coverage-vs-premult-vs-constant", kmstest_pipe_name(pipe))
run_test_on_pipe_planes(data, pipe, true, false, coverage_premult_constant);
+ igt_describe("Tests the alpha property with transparent fb.");
igt_subtest_f("pipe-%s-alpha-transparent-fb", kmstest_pipe_name(pipe))
run_test_on_pipe_planes(data, pipe, false, false, argb_transparent);
+ igt_describe("Tests alpha properties with opaque fb.");
igt_subtest_f("pipe-%s-alpha-opaque-fb", kmstest_pipe_name(pipe))
run_test_on_pipe_planes(data, pipe, false, false, argb_opaque);
+ igt_describe("Tests plane alpha and blending properties with minimum alpha value.");
igt_subtest_f("pipe-%s-constant-alpha-min", kmstest_pipe_name(pipe))
run_test_on_pipe_planes(data, pipe, true, false, constant_alpha_min);
+ igt_describe("Tests plane alpha and blending properties with medium alpha value");
igt_subtest_f("pipe-%s-constant-alpha-mid", kmstest_pipe_name(pipe))
run_test_on_pipe_planes(data, pipe, true, false, constant_alpha_mid);
+ igt_describe("Tests plane alpha and blending properties with maximum alpha value");
igt_subtest_f("pipe-%s-constant-alpha-max", kmstest_pipe_name(pipe))
run_test_on_pipe_planes(data, pipe, true, false, constant_alpha_max);
}
diff --git a/tests/kms_plane_lowres.c b/tests/kms_plane_lowres.c
index a5af1f8a..5cfe53c8 100644
--- a/tests/kms_plane_lowres.c
+++ b/tests/kms_plane_lowres.c
@@ -301,15 +301,23 @@ igt_main
for_each_pipe_static(pipe) {
data.pipe = pipe;
+ igt_describe("Tests the visibility of the planes when switching between "
+ "high and low resolution with tiling as none.");
igt_subtest_f("pipe-%s-tiling-none", kmstest_pipe_name(pipe))
test_planes_on_pipe(&data, LOCAL_DRM_FORMAT_MOD_NONE);
+ igt_describe("Tests the visibility of the planes when switching between "
+ "high and low resolution with x-tiling.");
igt_subtest_f("pipe-%s-tiling-x", kmstest_pipe_name(pipe))
test_planes_on_pipe(&data, LOCAL_I915_FORMAT_MOD_X_TILED);
+ igt_describe("Tests the visibility of the planes when switching between "
+ "high and low resolution with y-tiling.");
igt_subtest_f("pipe-%s-tiling-y", kmstest_pipe_name(pipe))
test_planes_on_pipe(&data, LOCAL_I915_FORMAT_MOD_Y_TILED);
+ igt_describe("Tests the visibility of the planes when switching between "
+ "high and low resolution with yf-tiling.");
igt_subtest_f("pipe-%s-tiling-yf", kmstest_pipe_name(pipe))
test_planes_on_pipe(&data, LOCAL_I915_FORMAT_MOD_Yf_TILED);
}
diff --git a/tests/kms_plane_scaling.c b/tests/kms_plane_scaling.c
index 31f14275..34efc588 100644
--- a/tests/kms_plane_scaling.c
+++ b/tests/kms_plane_scaling.c
@@ -709,24 +709,28 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
igt_subtest_group {
igt_output_t *output;
+ igt_describe("Tests plane scaling per pipe.");
igt_subtest_with_dynamic("plane-scaling") {
for_each_pipe_with_single_output(&data.display, pipe, output)
igt_dynamic_f("pipe-%s-plane-scaling", kmstest_pipe_name(pipe))
test_plane_scaling_on_pipe(&data, pipe, output);
}
+ igt_describe("Tests scaling with pixel formats.");
igt_subtest_with_dynamic("scaler-with-pixel-format") {
for_each_pipe_with_single_output(&data.display, pipe, output)
igt_dynamic_f("pipe-%s-scaler-with-pixel-format", kmstest_pipe_name(pipe))
test_scaler_with_pixel_format_pipe(&data, pipe, output);
}
+ igt_describe("Tests scaling with tiling rotation.");
igt_subtest_with_dynamic("scaler-with-rotation") {
for_each_pipe_with_single_output(&data.display, pipe, output)
igt_dynamic_f("pipe-%s-scaler-with-rotation", kmstest_pipe_name(pipe))
test_scaler_with_rotation_pipe(&data, pipe, output);
}
+ igt_describe("Tests scaling with clipping and clamping.");
igt_subtest_with_dynamic("scaler-with-clipping-clamping") {
for_each_pipe_with_single_output(&data.display, pipe, output)
igt_dynamic_f("pipe-%s-scaler-with-clipping-clamping", kmstest_pipe_name(pipe))
@@ -734,6 +738,7 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
}
}
+ igt_describe("Tests scaling with multi-pipe scenario.");
igt_subtest_f("2x-scaler-multi-pipe")
test_scaler_with_multi_pipe_plane(&data);
diff --git a/tests/kms_prop_blob.c b/tests/kms_prop_blob.c
index 0a2004c3..96aa6d8d 100644
--- a/tests/kms_prop_blob.c
+++ b/tests/kms_prop_blob.c
@@ -262,6 +262,8 @@ static void prop_tests(int fd)
get_props.count_props = 1;
get_props.obj_id = blob_id;
+ igt_describe("Tests error handling when invalid properties are fetched with "
+ "object of any type.");
igt_subtest("invalid-get-prop-any") {
get_props.obj_type = 0; /* DRM_MODE_OBJECT_ANY */
@@ -269,6 +271,8 @@ static void prop_tests(int fd)
&get_props) == -1 && errno == EINVAL);
}
+ igt_describe("Tests error handling when invalid properties are fetched with blob "
+ "object type.");
igt_subtest("invalid-get-prop") {
get_props.obj_type = DRM_MODE_OBJECT_BLOB;
@@ -280,6 +284,8 @@ static void prop_tests(int fd)
set_prop.prop_id = 1;
set_prop.obj_id = blob_id;
+ igt_describe("Tests error handling when invalid properties are set with object "
+ "of any type.");
igt_subtest("invalid-set-prop-any") {
set_prop.obj_type = 0; /* DRM_MODE_OBJECT_ANY */
@@ -287,6 +293,7 @@ static void prop_tests(int fd)
&set_prop) == -1 && errno == EINVAL);
}
+ igt_describe("Tests error handling when invalid properties are set with blob object type.");
igt_subtest("invalid-set-prop") {
set_prop.obj_type = DRM_MODE_OBJECT_BLOB;
@@ -308,18 +315,23 @@ igt_main
igt_require_propblob(fd);
}
+ igt_describe("Test to ensure property support exists.");
igt_subtest("basic")
test_basic(fd);
+ igt_describe("Tests error handling when invalid property IDs are passed.");
igt_subtest("blob-prop-core")
test_core(fd);
+ igt_describe("Tests error handling when incorrect blob size is passed.");
igt_subtest("blob-prop-validate")
test_validate(fd);
+ igt_describe("Tests validates the lifetime of the properties created.");
igt_subtest("blob-prop-lifetime")
test_lifetime(fd);
+ igt_describe("Test validates destroying multiple properties explicitly works as needed.");
igt_subtest("blob-multiple")
test_multiple(fd);
diff --git a/tests/kms_rmfb.c b/tests/kms_rmfb.c
index 2d49be8e..879ea574 100644
--- a/tests/kms_rmfb.c
+++ b/tests/kms_rmfb.c
@@ -168,9 +168,13 @@ igt_main
igt_display_require_output(&data.display);
}
+ igt_describe("RMFB is supposed to free the framebuffers from any and all "
+ "planes so test this and make sure it works.");
igt_subtest_f("rmfb-ioctl")
run_rmfb_test(&data, false);
+ igt_describe("RMFB is supposed to free the framebuffers from any and all planes "
+ "so test this and make sure it works with fd close and reopen.");
igt_subtest_f("close-fd")
run_rmfb_test(&data, true);
diff --git a/tests/kms_sequence.c b/tests/kms_sequence.c
index 081bd9d7..15afb2f1 100644
--- a/tests/kms_sequence.c
+++ b/tests/kms_sequence.c
@@ -305,6 +305,8 @@ igt_main
if (m->flags & ~f->valid)
continue;
+ igt_describe("This is a test of drmCrtcGetSequence and "
+ "drmCrtcQueueSequence");
igt_subtest_f("%s-%s", f->name, m->name) {
data.flags = m->flags;
run_test(&data, fd, f->func);
diff --git a/tests/kms_setmode.c b/tests/kms_setmode.c
index e356bfee..eb9ac189 100644
--- a/tests/kms_setmode.c
+++ b/tests/kms_setmode.c
@@ -888,6 +888,7 @@ igt_main_args("det:", NULL, help_str, opt_handler, NULL)
}
for (i = 0; i < ARRAY_SIZE(tests); i++) {
+ igt_describe("Tests the mode by iterating through all valid/invalid crtc/connector combinations");
igt_subtest(tests[i].name) {
struct test_config tconf = {
.flags = tests[i].flags,
diff --git a/tests/kms_tv_load_detect.c b/tests/kms_tv_load_detect.c
index 89f587d5..caac3aec 100644
--- a/tests/kms_tv_load_detect.c
+++ b/tests/kms_tv_load_detect.c
@@ -63,6 +63,7 @@ igt_main
igt_require(tv_connector);
}
+ igt_describe("Check tv load detection works correctly.");
igt_subtest("load-detect") {
/*
* disable all outputs to make sure we have a
diff --git a/tests/kms_vrr.c b/tests/kms_vrr.c
index 5b854100..e28864f5 100644
--- a/tests/kms_vrr.c
+++ b/tests/kms_vrr.c
@@ -469,12 +469,18 @@ igt_main
igt_display_require_output(&data.display);
}
+ igt_describe("Tests that VRR is enabled and that the difference between flip "
+ "timestamps converges to the requested rate");
igt_subtest("flip-basic")
run_vrr_test(&data, test_basic, 0);
+ igt_describe("Tests with DPMS that VRR is enabled and that the difference between flip "
+ "timestamps converges to the requested rate.");
igt_subtest("flip-dpms")
run_vrr_test(&data, test_basic, TEST_DPMS);
+ igt_describe("Tests that VRR is enabled and that the difference between flip "
+ "timestamps converges to the requested rate in a suspend test");
igt_subtest("flip-suspend")
run_vrr_test(&data, test_basic, TEST_SUSPEND);
--
2.26.2
More information about the igt-dev
mailing list