[igt-dev] [PATCH i-g-t v2] tests/i915/kms_big_fb: Move cleanup code to fixture
Karthik B S
karthik.b.s at intel.com
Wed Jun 1 05:28:34 UTC 2022
When a subtest fails, it exits from the assert and does not run the
cleanup part of the subtest. To avoid this, move the cleanup code to
igt_fixture outside the subtest.
Signed-off-by: Karthik B S <karthik.b.s at intel.com>
---
tests/i915/kms_big_fb.c | 46 ++++++++++++++++++-----------------------
1 file changed, 20 insertions(+), 26 deletions(-)
diff --git a/tests/i915/kms_big_fb.c b/tests/i915/kms_big_fb.c
index 91ad3b4d..abf974bb 100644
--- a/tests/i915/kms_big_fb.c
+++ b/tests/i915/kms_big_fb.c
@@ -264,12 +264,6 @@ static void prep_fb(data_t *data)
generate_pattern(data, &data->big_fb, 640, 480);
}
-static void cleanup_fb(data_t *data)
-{
- igt_remove_fb(data->drm_fd, &data->big_fb);
- data->big_fb.fb_id = 0;
-}
-
static void set_c8_lut(data_t *data)
{
igt_pipe_t *pipe = &data->display.pipes[data->pipe];
@@ -463,14 +457,6 @@ static bool test_pipe(data_t *data)
if (data->format == DRM_FORMAT_C8)
unset_lut(data);
- igt_pipe_crc_free(data->pipe_crc);
-
- igt_output_set_pipe(data->output, PIPE_ANY);
-
- igt_remove_fb(data->drm_fd, &data->small_fb);
-
- intel_bb_destroy(data->ibb);
-
return ret;
}
@@ -563,14 +549,6 @@ max_hw_stride_async_flip_test(data_t *data)
}
igt_reset_timeout();
- igt_pipe_crc_free(data->pipe_crc);
- igt_output_set_pipe(data->output, PIPE_NONE);
- igt_remove_fb(data->drm_fd, &data->big_fb);
- igt_remove_fb(data->drm_fd, &data->big_fb_flip[0]);
- igt_remove_fb(data->drm_fd, &data->big_fb_flip[1]);
-
- intel_bb_destroy(data->ibb);
-
return true;
}
@@ -773,6 +751,22 @@ set_max_hw_stride(data_t *data)
}
}
+static void test_cleanup(data_t *data)
+{
+ if (!data->output)
+ return;
+
+ igt_pipe_crc_free(data->pipe_crc);
+ igt_output_set_pipe(data->output, PIPE_NONE);
+ igt_remove_fb(data->drm_fd, &data->big_fb);
+ igt_remove_fb(data->drm_fd, &data->big_fb_flip[0]);
+ igt_remove_fb(data->drm_fd, &data->big_fb_flip[1]);
+ igt_remove_fb(data->drm_fd, &data->small_fb);
+
+ intel_bb_destroy(data->ibb);
+ data->output = NULL;
+}
+
static data_t data = {};
static const struct {
@@ -918,7 +912,7 @@ igt_main
}
igt_fixture
- cleanup_fb(&data);
+ test_cleanup(&data);
}
}
@@ -972,10 +966,10 @@ igt_main
test_scanout(&data);
}
data.async_flip_test = false;
- }
- igt_fixture
- cleanup_fb(&data);
+ igt_fixture
+ test_cleanup(&data);
+ }
}
}
}
--
2.22.0
More information about the igt-dev
mailing list