From 747440d0fa95f2205a8fcef49b6c7845700b6246 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Mon, 18 Jan 2016 19:52:28 -0700 Subject: [PATCH] dm: video: test: Test that bitmap display works correctly Add a test for the 'bmp' command. Test both the uncompressed and compressed versions of the file, since they use different code paths. Signed-off-by: Simon Glass Acked-by: Anatolij Gustschin --- include/configs/sandbox.h | 2 ++ test/dm/video.c | 54 ++++++++++++++++++++++++++++++++++++++ tools/logos/denx-comp.bmp | Bin 0 -> 4148 bytes 3 files changed, 56 insertions(+) create mode 100644 tools/logos/denx-comp.bmp diff --git a/include/configs/sandbox.h b/include/configs/sandbox.h index 23ae44c8a0..6498981cef 100644 --- a/include/configs/sandbox.h +++ b/include/configs/sandbox.h @@ -163,6 +163,8 @@ #define CONFIG_SYS_CONSOLE_IS_IN_ENV #define LCD_BPP LCD_COLOR16 #define CONFIG_LCD_BMP_RLE8 +#define CONFIG_VIDEO_BMP_RLE8 +#define CONFIG_SPLASH_SCREEN_ALIGN #define CONFIG_KEYBOARD diff --git a/test/dm/video.c b/test/dm/video.c index 65db216b31..9f5e7fce37 100644 --- a/test/dm/video.c +++ b/test/dm/video.c @@ -215,3 +215,57 @@ static int dm_test_video_rotation3(struct unit_test_state *uts) return 0; } DM_TEST(dm_test_video_rotation3, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT); + +/* Read a file into memory and return a pointer to it */ +static int read_file(struct unit_test_state *uts, const char *fname, + ulong *addrp) +{ + int buf_size = 100000; + ulong addr = 0; + int size, fd; + char *buf; + + buf = map_sysmem(addr, 0); + ut_assert(buf != NULL); + fd = os_open(fname, OS_O_RDONLY); + ut_assert(fd >= 0); + size = os_read(fd, buf, buf_size); + ut_assert(size >= 0); + ut_assert(size < buf_size); + os_close(fd); + *addrp = addr; + + return 0; +} + +/* Test drawing a bitmap file */ +static int dm_test_video_bmp(struct unit_test_state *uts) +{ + struct udevice *dev; + ulong addr; + + ut_assertok(uclass_get_device(UCLASS_VIDEO, 0, &dev)); + ut_assertok(read_file(uts, "tools/logos/denx.bmp", &addr)); + + ut_assertok(video_bmp_display(dev, addr, 0, 0, false)); + ut_asserteq(1368, compress_frame_buffer(dev)); + + return 0; +} +DM_TEST(dm_test_video_bmp, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT); + +/* Test drawing a compressed bitmap file */ +static int dm_test_video_bmp_comp(struct unit_test_state *uts) +{ + struct udevice *dev; + ulong addr; + + ut_assertok(uclass_get_device(UCLASS_VIDEO, 0, &dev)); + ut_assertok(read_file(uts, "tools/logos/denx-comp.bmp", &addr)); + + ut_assertok(video_bmp_display(dev, addr, 0, 0, false)); + ut_asserteq(1368, compress_frame_buffer(dev)); + + return 0; +} +DM_TEST(dm_test_video_bmp_comp, DM_TESTF_SCAN_PDATA | DM_TESTF_SCAN_FDT); diff --git a/tools/logos/denx-comp.bmp b/tools/logos/denx-comp.bmp new file mode 100644 index 0000000000000000000000000000000000000000..89d0f471c85cf734b5f0e2bb2508d39f5b9e72b8 GIT binary patch literal 4148 zc-rk&J%}Au6h3GE@BG|(?`?MX?Y!NaKO@>0g9(D2i6Rza5U~o2Sj3;8jfF&PO<}32 zC218*sc68$6dDk*F+~cS1Z`|qv{4wpbMDN%c}cJpB*Wgh_uX^ux!?KwW=}qMd_wws z5D~qH`4Yy<7)%)k(I*Abo88b28PxWF`s3s?FT73N^Wqoo?|yyu?Ac*`?T?3A8a)xM zJ|~_%L8o3iMWB5H>=;Fs0>GG$S>B{F<=;}9D>G}`X>Bh|) zbo-avwDBe45xBhHt@2{5Hwx#>e{pbGk-#&+3NX#7Joxbik!5ncIQs9UVxqwoPR~_d}Y!U}e zVwJGPDoG%H4MS$xk6c1r%9+@~4jBhF%jI{bdjWR1jEO_cA?8G6x#JYPr|(2{IZOo= zECyoPRD(saQ;+P)TzPy^bq`yq<3ezNKpj`mitPv;&>AzcCTMIo?tv-=;wbdCu*;=g z!G#r2XLs2XZ1&#R#7Y)n9drl{Eu)wED4SUQTeWKt!^C-QPR+ zd`EZ0FB60TilF-q-BNGIt=?8h%Nt;`3^l5fJx)YN@6F{dNGzgcGQB$%pG`)61;`GU zu$71e>)7vxz&i3kBb~!Ld>3K!ICP#uO~@UG{qOW?=se)OJa7@>KE+N%Q|Mxa3a%Ba z#9)FI>N;be4MAQ^eKv7L>MJM?G%mI32Q&kwSb8J1J|fZ=!)e%#G)uNW?{Bi*>8ZvA z5f4}*l5tlt*6)|m2uZCGmfqnQ_f?hLRV2>e*V~f{ky;4)Re|#seVX2F$@k1uwBj+U ziRy(K@j&N&9S-qZq8+H`iZO}&%*)eV9E^|D+HjUD%z>{JvB3c_0zIOX$SOp9(9da( zcd43OM4Fwriyd+c)(Nzu)E6gbIFs6zNK0is(qY)uwbqHPyWdB(3xc9l%)4D(^kYr5 zBUYZ{{9(bIqFRfiju*Va%@M~9Z;*JCSI|0uOjNXAF#~6l)V#BByp_}>_`@0SH|SN& z!S_X}7HthWWj%Ez^EIOv$Al^WjQ_MI9!v9qWVRH)%V zJcoA{J4GN_NWd{>K(>QO&1`KP?wIkW)N6^%qram9Q7Le`kdDrpF4tw9V#He6Iix^t z3+2EZkw&E_3)L)K0YvDfDdMv)Q4WEAIgz(DcuP0=I9D!*#k|h6%7rbtoIxYQII0>J zQk<`iY8YA`JaEGiJ%fNT5(zO+7_OH^Fvph*_ z@oyxLM1BxiPn8>2&vWHbLmmzC5jGBbd4`%D`-HC{J&4_77}FsdrAA)jbVMT}oU*PF zo{l0axe@s$YDKb$XfAMm&c4^S`uuT@9)eUd8H3S8bD7~#^FP!7a;&TwU1d|?G|C^# zYC#tS*o!9eUx6@*&E?KqZ!QhhquSGo#(xs<8^chN9YLj zNhuvr)ZmB$n#&%ET`gajl;a8Zt?*vK@&%68`*nf;aDXh8Ufklft{2z1kzPNDQ%}hE zQ~G;`{+`v!5(o5~^SJPhu*1A(hYak1DmNztk1)%kXBKE?JIDmsDUq+%99WmUBins)uHi7U_gWB8*ac)0!&%6KCT*yrP4=t$TsQ>@~ literal 0 Hc-jL100001 -- 2.47.3