[Intel-gfx] [PATCH i-g-t 2/4] lib/kms: Add for_each_pipe_static
Daniel Vetter
daniel.vetter at ffwll.ch
Mon Aug 14 09:32:05 UTC 2017
for_each_pipe cannot be used for enumerating testcases, so provide
something that can.
Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
---
lib/igt_kms.h | 16 ++++++++++++++++
tests/kms_busy.c | 3 ++-
tests/kms_concurrent.c | 3 ++-
tests/kms_cursor_legacy.c | 3 ++-
tests/kms_pipe_color.c | 3 ++-
tests/kms_plane.c | 3 ++-
tests/kms_plane_lowres.c | 4 +++-
tests/kms_plane_multiple.c | 3 ++-
tests/kms_universal_plane.c | 4 +++-
9 files changed, 34 insertions(+), 8 deletions(-)
diff --git a/lib/igt_kms.h b/lib/igt_kms.h
index 35428f3e9675..b28fe8c564c5 100644
--- a/lib/igt_kms.h
+++ b/lib/igt_kms.h
@@ -463,10 +463,26 @@ static inline bool igt_output_is_connected(igt_output_t *output)
/**
* for_each_pipe:
+ * @pipe: The pipe to iterate.
+ *
+ * This for loop iterates over all pipes supported by IGT libraries.
+ *
+ * This should be used to enumerate per-pipe subtests since it has no runtime
+ * depencies.
+ */
+#define for_each_pipe_static(pipe) \
+ for (pipe = 0; pipe < IGT_MAX_PIPES; pipe++)
+
+/**
+ * for_each_pipe:
* @display: a pointer to an #igt_display_t structure
* @pipe: The pipe to iterate.
*
* This for loop iterates over all pipes.
+ *
+ * Note that this cannot be used to enumerate per-pipe subtest names since it
+ * depends upon runtime probing of the actual kms driver that is being tested.
+ * Used #for_each_pipe_static instead.
*/
#define for_each_pipe(display, pipe) \
for (pipe = 0; pipe < igt_display_get_n_pipes(display); pipe++)
diff --git a/tests/kms_busy.c b/tests/kms_busy.c
index dc0021405a06..ecf0b2eb3fd3 100644
--- a/tests/kms_busy.c
+++ b/tests/kms_busy.c
@@ -311,6 +311,7 @@ igt_main
igt_display_t display = { .drm_fd = -1, .n_pipes = IGT_MAX_PIPES };
/* we only test on render */
const struct intel_execution_engine *e = &intel_execution_engines[1];
+ enum pipe n;
igt_skip_on_simulation();
@@ -327,7 +328,7 @@ igt_main
/* XXX Extend to cover atomic rendering tests to all planes + legacy */
- for (int n = 0; n < IGT_MAX_PIPES; n++) {
+ for_each_pipe_static(n) {
errno = 0;
igt_fixture {
diff --git a/tests/kms_concurrent.c b/tests/kms_concurrent.c
index e2cde4ee8745..5d1e0bc5ad19 100644
--- a/tests/kms_concurrent.c
+++ b/tests/kms_concurrent.c
@@ -401,6 +401,7 @@ int main(int argc, char *argv[])
{ "seed", required_argument, NULL, 's'},
{ 0, 0, 0, 0 }
};
+ enum pipe pipe;
igt_subtest_init_parse_opts(&argc, argv, "", long_options, help_str,
opt_handler, NULL);
@@ -415,7 +416,7 @@ int main(int argc, char *argv[])
igt_require(data.display.is_atomic);
}
- for (int pipe = 0; pipe < IGT_MAX_PIPES; pipe++) {
+ for_each_pipe_static(pipe) {
igt_subtest_group
run_tests_for_pipe(&data, pipe);
}
diff --git a/tests/kms_cursor_legacy.c b/tests/kms_cursor_legacy.c
index 15208f8b0e4f..bdb66f3b51b7 100644
--- a/tests/kms_cursor_legacy.c
+++ b/tests/kms_cursor_legacy.c
@@ -1425,7 +1425,8 @@ igt_main
}
igt_subtest_group {
- for (int n = 0; n < IGT_MAX_PIPES; n++) {
+ enum pipe n;
+ for_each_pipe_static(n) {
errno = 0;
igt_fixture {
diff --git a/tests/kms_pipe_color.c b/tests/kms_pipe_color.c
index 12400686075c..ccfc08e6be15 100644
--- a/tests/kms_pipe_color.c
+++ b/tests/kms_pipe_color.c
@@ -1189,6 +1189,7 @@ invalid_ctm_matrix_sizes(data_t *data)
igt_main
{
data_t data = {};
+ enum pipe pipe;
igt_skip_on_simulation();
@@ -1200,7 +1201,7 @@ igt_main
igt_display_init(&data.display, data.drm_fd);
}
- for (int pipe = 0; pipe < IGT_MAX_PIPES; pipe++)
+ for_each_pipe_static(pipe)
igt_subtest_group
run_tests_for_pipe(&data, pipe);
diff --git a/tests/kms_plane.c b/tests/kms_plane.c
index 1d92a62bd51c..927d5d37fece 100644
--- a/tests/kms_plane.c
+++ b/tests/kms_plane.c
@@ -424,6 +424,7 @@ static data_t data;
igt_main
{
+ enum pipe pipe;
igt_skip_on_simulation();
@@ -436,7 +437,7 @@ igt_main
igt_display_init(&data.display, data.drm_fd);
}
- for (int pipe = 0; pipe < IGT_MAX_PIPES; pipe++)
+ for_each_pipe_static(pipe)
run_tests_for_pipe_plane(&data, pipe);
igt_fixture {
diff --git a/tests/kms_plane_lowres.c b/tests/kms_plane_lowres.c
index ee39759cb0bc..b16c8cd433b2 100644
--- a/tests/kms_plane_lowres.c
+++ b/tests/kms_plane_lowres.c
@@ -339,6 +339,8 @@ static data_t data;
igt_main
{
+ enum pipe pipe;
+
igt_skip_on_simulation();
igt_fixture {
@@ -350,7 +352,7 @@ igt_main
igt_display_init(&data.display, data.drm_fd);
}
- for (int pipe = 0; pipe < IGT_MAX_PIPES; pipe++)
+ for_each_pipe_static(pipe)
run_tests_for_pipe(&data, pipe);
igt_fixture {
diff --git a/tests/kms_plane_multiple.c b/tests/kms_plane_multiple.c
index 4bc26b73de97..aea59df84d76 100644
--- a/tests/kms_plane_multiple.c
+++ b/tests/kms_plane_multiple.c
@@ -492,6 +492,7 @@ int main(int argc, char *argv[])
{ "seed", required_argument, NULL, 's'},
{ 0, 0, 0, 0 }
};
+ enum pipe pipe;
igt_subtest_init_parse_opts(&argc, argv, "", long_options, help_str,
opt_handler, NULL);
@@ -506,7 +507,7 @@ int main(int argc, char *argv[])
igt_require(data.display.n_pipes > 0);
}
- for (int pipe = 0; pipe < IGT_MAX_PIPES; pipe++) {
+ for_each_pipe_static(pipe) {
igt_subtest_group
run_tests_for_pipe(&data, pipe);
}
diff --git a/tests/kms_universal_plane.c b/tests/kms_universal_plane.c
index 31f07804b887..58f329e684c4 100644
--- a/tests/kms_universal_plane.c
+++ b/tests/kms_universal_plane.c
@@ -787,6 +787,8 @@ static data_t data;
igt_main
{
+ enum pipe pipe;
+
igt_skip_on_simulation();
igt_fixture {
@@ -799,7 +801,7 @@ igt_main
igt_display_init(&data.display, data.drm_fd);
}
- for (int pipe = 0; pipe < IGT_MAX_PIPES; pipe++) {
+ for_each_pipe_static(pipe) {
igt_subtest_group
run_tests_for_pipe(&data, pipe);
}
--
2.5.5
More information about the Intel-gfx
mailing list