diff options
author | Simon Glass | 2021-11-19 13:23:58 -0700 |
---|---|---|
committer | Anatolij Gustschin | 2021-12-26 23:05:42 +0100 |
commit | c1cad06f69a8f3207bdb20ad038db930c0f5c139 (patch) | |
tree | 5419c04ba9394be18ec4ef8f0179de6adeea5284 /test | |
parent | f5aa93eb532a0ed64ad5b86b827eee71888c70b7 (diff) |
video: Add a test for 16bpp BMP files
Add a compressed 16bpp BMP file and a test to cover this.
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'test')
-rw-r--r-- | test/dm/video.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/test/dm/video.c b/test/dm/video.c index d5648f0c59b..c496b05df76 100644 --- a/test/dm/video.c +++ b/test/dm/video.c @@ -7,6 +7,7 @@ #include <common.h> #include <bzlib.h> #include <dm.h> +#include <gzip.h> #include <log.h> #include <malloc.h> #include <mapmem.h> @@ -339,6 +340,29 @@ static int dm_test_video_bmp8(struct unit_test_state *uts) } DM_TEST(dm_test_video_bmp8, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT); +/* Test drawing a bitmap file on a 16bpp display */ +static int dm_test_video_bmp16(struct unit_test_state *uts) +{ + ulong src, src_len = ~0UL; + uint dst_len = ~0U; + struct udevice *dev; + ulong dst = 0x10000; + + ut_assertok(uclass_find_first_device(UCLASS_VIDEO, &dev)); + ut_assertnonnull(dev); + ut_assertok(sandbox_sdl_set_bpp(dev, VIDEO_BPP16)); + + ut_assertok(read_file(uts, "tools/logos/denx-16bpp.bmp.gz", &src)); + ut_assertok(gunzip(map_sysmem(dst, 0), dst_len, map_sysmem(src, 0), + &src_len)); + + ut_assertok(video_bmp_display(dev, dst, 0, 0, false)); + ut_asserteq(3700, compress_frame_buffer(uts, dev)); + + return 0; +} +DM_TEST(dm_test_video_bmp16, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT); + /* Test drawing a bitmap file on a 32bpp display */ static int dm_test_video_bmp32(struct unit_test_state *uts) { |