From c1cad06f69a8f3207bdb20ad038db930c0f5c139 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Fri, 19 Nov 2021 13:23:58 -0700 Subject: [PATCH] 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 --- .gitattributes | 1 + configs/sandbox_defconfig | 1 + configs/sandbox_flattree_defconfig | 1 + test/dm/video.c | 24 ++++++++++++++++++++++++ tools/logos/denx-16bpp.bmp.gz | Bin 0 -> 4516 bytes 5 files changed, 27 insertions(+) create mode 100644 tools/logos/denx-16bpp.bmp.gz diff --git a/.gitattributes b/.gitattributes index 899473ab0f..1879a2dfb3 100644 --- a/.gitattributes +++ b/.gitattributes @@ -3,3 +3,4 @@ # Denote all files that are truly binary and should not be modified *.bmp binary *.ttf binary +*.gz binary diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig index c390afe9de..5dffc704bd 100644 --- a/configs/sandbox_defconfig +++ b/configs/sandbox_defconfig @@ -285,6 +285,7 @@ CONFIG_OSD=y CONFIG_SANDBOX_OSD=y CONFIG_SPLASH_SCREEN_ALIGN=y CONFIG_VIDEO_BMP_RLE8=y +CONFIG_BMP_16BPP=y CONFIG_W1=y CONFIG_W1_GPIO=y CONFIG_W1_EEPROM=y diff --git a/configs/sandbox_flattree_defconfig b/configs/sandbox_flattree_defconfig index f184723a89..f16d890048 100644 --- a/configs/sandbox_flattree_defconfig +++ b/configs/sandbox_flattree_defconfig @@ -198,6 +198,7 @@ CONFIG_VIDEO_SANDBOX_SDL=y CONFIG_OSD=y CONFIG_SANDBOX_OSD=y CONFIG_VIDEO_BMP_RLE8=y +CONFIG_BMP_16BPP=y CONFIG_CMD_DHRYSTONE=y CONFIG_RSA_VERIFY_WITH_PKEY=y CONFIG_TPM=y diff --git a/test/dm/video.c b/test/dm/video.c index d5648f0c59..c496b05df7 100644 --- a/test/dm/video.c +++ b/test/dm/video.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -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) { diff --git a/tools/logos/denx-16bpp.bmp.gz b/tools/logos/denx-16bpp.bmp.gz new file mode 100644 index 0000000000000000000000000000000000000000..ed99c58192e9e1ecbd3b118823f197a484cdad34 GIT binary patch literal 4516 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