drm/exec: add test case for using a drm_exec multiple times
authorChristian König <christian.koenig@amd.com>
Mon, 31 Jul 2023 12:36:25 +0000 (14:36 +0200)
committerBoris Brezillon <boris.brezillon@collabora.com>
Thu, 10 Aug 2023 06:38:57 +0000 (08:38 +0200)
Not really a common use case, but let's make sure that we don't
accidentially break that somehow.

CC: Boris Brezillon <boris.brezillon@collabora.com>
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230731123625.3766-2-christian.koenig@amd.com
drivers/gpu/drm/tests/drm_exec_test.c

index f79c9f0..3610773 100644 (file)
@@ -167,6 +167,26 @@ static void test_prepare_array(struct kunit *test)
        drm_exec_fini(&exec);
 }
 
+static void test_multiple_loops(struct kunit *test)
+{
+       struct drm_exec exec;
+
+       drm_exec_init(&exec, DRM_EXEC_INTERRUPTIBLE_WAIT);
+       drm_exec_until_all_locked(&exec)
+       {
+               break;
+       }
+       drm_exec_fini(&exec);
+
+       drm_exec_init(&exec, DRM_EXEC_INTERRUPTIBLE_WAIT);
+       drm_exec_until_all_locked(&exec)
+       {
+               break;
+       }
+       drm_exec_fini(&exec);
+       KUNIT_SUCCEED(test);
+}
+
 static struct kunit_case drm_exec_tests[] = {
        KUNIT_CASE(sanitycheck),
        KUNIT_CASE(test_lock),
@@ -174,6 +194,7 @@ static struct kunit_case drm_exec_tests[] = {
        KUNIT_CASE(test_duplicates),
        KUNIT_CASE(test_prepare),
        KUNIT_CASE(test_prepare_array),
+       KUNIT_CASE(test_multiple_loops),
        {}
 };