[PATCH i-g-t] tests/kms_color: Move dynamic subtests even further out
Ville Syrjala
ville.syrjala at linux.intel.com
Wed Oct 16 12:43:00 UTC 2024
From: Ville Syrjälä <ville.syrjala at linux.intel.com>
In order to run this on older Intel based laptops we have to
make it work for cases where we have just pipe B driving the
single LVDS output. Currently the test just skips because it
tries pipe A first which won't have a connected output. Move
the output selection further out to remedy this.
I thought I already fixed this once with commit 766edf96979b
("tests/kms_color: Move dynamic subtests up one level") but it
clearly isn't working now. Either I failed there or this has
regreressed again due to some other changes.
Signed-off-by: Ville Syrjälä <ville.syrjala at linux.intel.com>
---
tests/kms_color.c | 78 +++++++++++++++++++++++------------------------
1 file changed, 38 insertions(+), 40 deletions(-)
diff --git a/tests/kms_color.c b/tests/kms_color.c
index 5f0128bcad9e..d642f561df76 100644
--- a/tests/kms_color.c
+++ b/tests/kms_color.c
@@ -787,12 +787,10 @@ run_gamma_degamma_tests_for_pipe(data_t *data, enum pipe p,
data->drm_format = DRM_FORMAT_XRGB8888;
data->mode = igt_output_get_mode(data->output);
- if (!pipe_output_combo_valid(data, p))
- goto out;
+ igt_require(pipe_output_combo_valid(data, p));
+
+ igt_assert(test_t(data, data->primary));
- igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), igt_output_name(data->output))
- igt_assert(test_t(data, data->primary));
-out:
test_cleanup(data);
}
@@ -826,40 +824,36 @@ run_ctm_tests_for_pipe(data_t *data, enum pipe p,
data->drm_format = DRM_FORMAT_XRGB8888;
data->mode = igt_output_get_mode(data->output);
- if (!pipe_output_combo_valid(data, p))
- goto out;
+ igt_require(pipe_output_combo_valid(data, p));
if (!iter)
iter = 1;
- igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(p), igt_output_name(data->output)) {
- /*
- * We tests a few values around the expected result because
- * it depends on the hardware we're dealing with, we can either
- * get clamped or rounded values and we also need to account
- * for odd number of items in the LUTs.
- */
- for (i = 0; i < iter; i++) {
- color_t expected_colors[3] = {
- fb_colors[0],
- fb_colors[1],
- fb_colors[2],
- };
-
- transform_color(&expected_colors[0], ctm, delta * (i - (iter / 2)));
- transform_color(&expected_colors[1], ctm, delta * (i - (iter / 2)));
- transform_color(&expected_colors[2], ctm, delta * (i - (iter / 2)));
-
- if (test_pipe_ctm(data, data->primary, fb_colors,
- expected_colors, ctm)) {
- success = true;
- break;
- }
+ /*
+ * We tests a few values around the expected result because
+ * it depends on the hardware we're dealing with, we can either
+ * get clamped or rounded values and we also need to account
+ * for odd number of items in the LUTs.
+ */
+ for (i = 0; i < iter; i++) {
+ color_t expected_colors[3] = {
+ fb_colors[0],
+ fb_colors[1],
+ fb_colors[2],
+ };
+
+ transform_color(&expected_colors[0], ctm, delta * (i - (iter / 2)));
+ transform_color(&expected_colors[1], ctm, delta * (i - (iter / 2)));
+ transform_color(&expected_colors[2], ctm, delta * (i - (iter / 2)));
+
+ if (test_pipe_ctm(data, data->primary, fb_colors,
+ expected_colors, ctm)) {
+ success = true;
+ break;
}
- igt_assert(success);
}
+ igt_assert(success);
-out:
test_cleanup(data);
}
@@ -1143,9 +1137,11 @@ run_tests_for_pipe(data_t *data)
for (i = 0; i < ARRAY_SIZE(gamma_degamma_tests); i++) {
igt_describe_f("%s", gamma_degamma_tests[i].desc);
igt_subtest_with_dynamic_f("%s", gamma_degamma_tests[i].name) {
- for_each_pipe(&data->display, pipe) {
- run_gamma_degamma_tests_for_pipe(data, pipe,
- gamma_degamma_tests[i].test_t);
+ for_each_pipe_with_valid_output(&data->display, pipe, data->output) {
+ igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe),
+ igt_output_name(data->output))
+ run_gamma_degamma_tests_for_pipe(data, pipe,
+ gamma_degamma_tests[i].test_t);
}
}
}
@@ -1153,11 +1149,13 @@ run_tests_for_pipe(data_t *data)
for (i = 0; i < ARRAY_SIZE(ctm_tests); i++) {
igt_describe_f("%s", ctm_tests[i].desc);
igt_subtest_with_dynamic_f("%s", ctm_tests[i].name) {
- for_each_pipe(&data->display, pipe) {
- run_ctm_tests_for_pipe(data, pipe,
- ctm_tests[i].fb_colors,
- ctm_tests[i].ctm,
- ctm_tests[i].iter);
+ for_each_pipe_with_valid_output(&data->display, pipe, data->output) {
+ igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe),
+ igt_output_name(data->output))
+ run_ctm_tests_for_pipe(data, pipe,
+ ctm_tests[i].fb_colors,
+ ctm_tests[i].ctm,
+ ctm_tests[i].iter);
}
}
}
--
2.45.2
More information about the igt-dev
mailing list