]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
expo: Create a rendering test for cedit
authorSimon Glass <sjg@chromium.org>
Fri, 2 May 2025 14:46:19 +0000 (08:46 -0600)
committerSimon Glass <sjg@chromium.org>
Fri, 30 May 2025 08:49:32 +0000 (09:49 +0100)
Add a test to check that the cedit renders as expected.

Signed-off-by: Simon Glass <sjg@chromium.org>
test/boot/cedit.c

index 4d1b99bc2eaaabfdee756b11a61f4f0bce348825..df191a09f8932c54159fa99f2356d21df9c253bd 100644 (file)
@@ -5,11 +5,13 @@
  */
 
 #include <cedit.h>
+#include <dm.h>
 #include <env.h>
 #include <expo.h>
 #include <mapmem.h>
 #include <dm/ofnode.h>
 #include <test/ut.h>
+#include <test/video.h>
 #include "bootstd_common.h"
 #include <test/cedit-test.h>
 #include "../../boot/scene_internal.h"
@@ -220,3 +222,27 @@ static int cedit_cmos(struct unit_test_state *uts)
        return 0;
 }
 BOOTSTD_TEST(cedit_cmos, UTF_CONSOLE);
+
+/* Check the cedit displays correctely */
+static int cedit_render(struct unit_test_state *uts)
+{
+       struct video_priv *vid_priv;
+       extern struct expo *cur_exp;
+       struct udevice *dev;
+       struct scene *scn;
+       struct expo *exp;
+
+       ut_assertok(run_command("cedit load hostfs - cedit.dtb", 0));
+
+       exp = cur_exp;
+       ut_assertok(uclass_first_device_err(UCLASS_VIDEO, &dev));
+       ut_asserteq(ID_SCENE1, cedit_prepare(exp, &vid_priv, &scn));
+       ut_assertok(expo_render(exp));
+       ut_asserteq(4929, video_compress_fb(uts, dev, false));
+       ut_assertok(video_check_copy_fb(uts, dev));
+       expo_destroy(exp);
+       cur_exp = NULL;
+
+       return 0;
+}
+BOOTSTD_TEST(cedit_render, UTF_DM | UTF_SCAN_FDT);