diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/dm/video.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/test/dm/video.c b/test/dm/video.c index 737ab915f41..dd06b2f58e8 100644 --- a/test/dm/video.c +++ b/test/dm/video.c @@ -17,6 +17,7 @@ #include <asm/sdl.h> #include <dm/test.h> #include <dm/uclass-internal.h> +#include <test/lib.h> #include <test/test.h> #include <test/ut.h> #include <test/video.h> @@ -865,3 +866,39 @@ static int dm_test_font_measure(struct unit_test_state *uts) return 0; } DM_TEST(dm_test_font_measure, UTF_SCAN_FDT); + +/* Test silencing the video console */ +static int dm_test_video_silence(struct unit_test_state *uts) +{ + struct udevice *dev, *con; + struct stdio_dev *sdev; + + ut_assertok(uclass_first_device_err(UCLASS_VIDEO, &dev)); + + /* + * use the old console device from before when dm_test_pre_run() was + * called, since that is what is in stdio / console + */ + sdev = stdio_get_by_name("vidconsole"); + ut_assertnonnull(sdev); + con = sdev->priv; + ut_assertok(vidconsole_clear_and_reset(con)); + ut_unsilence_console(uts); + + printf("message 1: console\n"); + vidconsole_put_string(con, "message 1: video\n"); + + vidconsole_set_quiet(con, true); + printf("second message: console\n"); + vidconsole_put_string(con, "second message: video\n"); + + vidconsole_set_quiet(con, false); + printf("final message: console\n"); + vidconsole_put_string(con, "final message: video\n"); + + ut_asserteq(3892, video_compress_fb(uts, dev, false)); + ut_assertok(video_check_copy_fb(uts, dev)); + + return 0; +} +DM_TEST(dm_test_video_silence, UTF_SCAN_FDT); |